@ -30,6 +30,7 @@ set(ECLAIR_ANALYSIS_ECL_DIR "${ZEPHYR_BASE}/cmake/sca/eclair/ECL")
@@ -30,6 +30,7 @@ set(ECLAIR_ANALYSIS_ECL_DIR "${ZEPHYR_BASE}/cmake/sca/eclair/ECL")
set ( ECLAIR_DIAGNOSTICS_OUTPUT "${ECLAIR_OUTPUT_DIR}/DIAGNOSTIC.txt" )
set ( ECLAIR_ANALYSIS_DATA_DIR "${ECLAIR_OUTPUT_DIR}/analysis_data" )
set ( ECLAIR_PROJECT_ECD "${ECLAIR_OUTPUT_DIR}/PROJECT.ecd" )
set ( ECLAIR_WORKSPACE "${ECLAIR_OUTPUT_DIR}/eclair_workspace" )
set ( CC_ALIASES "${CMAKE_C_COMPILER}" )
set ( CXX_ALIASES "${CMAKE_CXX_COMPILER}" )
set ( AS_ALIASES "${CMAKE_AS}" )
@ -43,7 +44,14 @@ set(ECLAIR_REPORT_ADDITIONAL_OPTIONS "")
@@ -43,7 +44,14 @@ set(ECLAIR_REPORT_ADDITIONAL_OPTIONS "")
set ( ECLAIR_RULESET first_analysis )
# E C L A I R e n v
if ( ECLAIR_RULESET_FIRST_ANALYSIS )
if ( ECLAIR_RULESET_USER )
set ( ECLAIR_RULESET ${ ECLAIR_USER_RULESET_NAME } )
if ( IS_ABSOLUTE ${ ECLAIR_USER_RULESET_PATH } )
set ( ECLAIR_ANALYSIS_ECL_DIR ${ ECLAIR_USER_RULESET_PATH } )
else ( )
set ( ECLAIR_ANALYSIS_ECL_DIR ${ APPLICATION_CONFIG_DIR } / ${ ECLAIR_USER_RULESET_PATH } )
endif ( )
elseif ( ECLAIR_RULESET_FIRST_ANALYSIS )
set ( ECLAIR_RULESET first_analysis )
elseif ( ECLAIR_RULESET_STU )
set ( ECLAIR_RULESET STU )
@ -53,13 +61,6 @@ elseif(ECLAIR_RULESET_WP)
@@ -53,13 +61,6 @@ elseif(ECLAIR_RULESET_WP)
set ( ECLAIR_RULESET WP )
elseif ( ECLAIR_RULESET_STD_LIB )
set ( ECLAIR_RULESET std_lib )
elseif ( ECLAIR_RULESET_USER )
set ( ECLAIR_RULESET ${ ECLAIR_USER_RULESET_NAME } )
if ( IS_ABSOLUTE ${ ECLAIR_USER_RULESET_PATH } )
set ( ECLAIR_ANALYSIS_ECL_DIR ${ ECLAIR_USER_RULESET_PATH } )
else ( )
set ( ECLAIR_ANALYSIS_ECL_DIR ${ APPLICATION_CONFIG_DIR } / ${ ECLAIR_USER_RULESET_PATH } )
endif ( )
endif ( )
# E C L A I R r e p o r t
@ -106,20 +107,47 @@ endif()
@@ -106,20 +107,47 @@ endif()
message ( STATUS "ECLAIR outputs have been written to: ${ECLAIR_OUTPUT_DIR}" )
message ( STATUS "ECLAIR ECB files have been written to: ${ECLAIR_ANALYSIS_DATA_DIR}" )
list ( APPEND ECLAIR_CLEAN_ARGS
+ c l e a n
- p r o j e c t _ n a m e = $ { E C L A I R _ P R O J E C T _ N A M E } - p r o j e c t _ r o o t = $ { Z E P H Y R _ B A S E }
- e v a l _ f i l e = $ { E C L A I R _ E C L _ D I R } / a n a l y s i s . e c l
- e v a l _ f i l e = $ { E C L A I R _ A N A L Y S I S _ E C L _ D I R } / a n a l y s i s _ $ { E C L A I R _ R U L E S E T } . e c l
$ { E C L A I R _ E N V _ A D D I T I O N A L _ O P T I O N S } )
add_custom_target ( eclair_setup_analysis_dir ALL
C O M M A N D $ { C M A K E _ C O M M A N D } - E r e m o v e _ d i r e c t o r y $ { E C L A I R _ A N A L Y S I S _ D A T A _ D I R }
C O M M A N D $ { C M A K E _ C O M M A N D } - E m a k e _ d i r e c t o r y $ { E C L A I R _ A N A L Y S I S _ D A T A _ D I R }
C O M M A N D $ { C M A K E _ C O M M A N D } - E e n v
E C L A I R _ D I A G N O S T I C S _ O U T P U T = $ { E C L A I R _ D I A G N O S T I C S _ O U T P U T }
E C L A I R _ D A T A _ D I R = $ { E C L A I R _ A N A L Y S I S _ D A T A _ D I R }
$ { E C L A I R _ E N V } $ { E C L A I R _ C L E A N _ A R G S } - -
V E R B A T I M
U S E S _ T E R M I N A L
)
# c o n f i g u r e t h e c a m k e s c r i p t w h i c h w i l l b e u s e d t o r e p l a c e t h e c o m p i l e r c a l l w i t h t h e e c l a i r _ e n v
# c o n f i g u r e t h e c m a k e s c r i p t w h i c h w i l l b e u s e d t o r e p l a c e t h e c o m p i l e r c a l l w i t h t h e e c l a i r _ e n v
# c a l l w h i c h c a l l s t h e c o m p i l e r a n d t o g e n e r a t e a n a l y s i s f i l e s .
configure_file ( ${ CMAKE_CURRENT_LIST_DIR } /eclair.template ${ ECLAIR_OUTPUT_DIR } /eclair.cmake @ONLY )
set ( launch_environment ${ CMAKE_COMMAND } -P ${ ECLAIR_OUTPUT_DIR } /eclair.cmake -- )
set ( CMAKE_C_COMPILER_LAUNCHER ${ launch_environment } CACHE INTERNAL "" )
list ( APPEND ECLAIR_PROJECT_ARGS
+ p r o j e c t
- p r o j e c t _ n a m e = $ { E C L A I R _ P R O J E C T _ N A M E } - p r o j e c t _ r o o t = $ { Z E P H Y R _ B A S E }
- e v a l _ f i l e = $ { E C L A I R _ E C L _ D I R } / a n a l y s i s . e c l
- e v a l _ f i l e = $ { E C L A I R _ A N A L Y S I S _ E C L _ D I R } / a n a l y s i s _ $ { E C L A I R _ R U L E S E T } . e c l
$ { E C L A I R _ E N V _ A D D I T I O N A L _ O P T I O N S } )
add_custom_target ( eclair_project_analysis ALL
C O M M A N D $ { C M A K E _ C O M M A N D } - E e n v
E C L A I R _ D I A G N O S T I C S _ O U T P U T = $ { E C L A I R _ D I A G N O S T I C S _ O U T P U T }
E C L A I R _ D A T A _ D I R = $ { E C L A I R _ A N A L Y S I S _ D A T A _ D I R }
$ { E C L A I R _ E N V } $ { E C L A I R _ P R O J E C T _ A R G S } - -
V E R B A T I M
U S E S _ T E R M I N A L
)
# T h i s t a r g e t i s u s e d t o g e n e r a t e t h e E C L A I R d a t a b a s e w h e n a l l t h e c o m p i l a t i o n i s d o n e a n d t h e
# e l f f i l e w a s g e n e r a t e d w i t h t h i s w e c a n e m a k e s u r e t h a t t h e a n a l y s i s i s c o m p l e t e d .
add_custom_target ( eclair_report ALL
@ -141,4 +169,6 @@ add_custom_target(eclair_summary_print ALL
@@ -141,4 +169,6 @@ add_custom_target(eclair_summary_print ALL
- o v e r a l l _ t x t = $ { E C L A I R _ O U T P U T _ D I R } / s u m m a r y _ o v e r a l l . t x t
C O M M A N D $ { C M A K E _ C O M M A N D } - E c a t $ { E C L A I R _ O U T P U T _ D I R } / s u m m a r y _ o v e r a l l . t x t
)
add_dependencies ( eclair_report eclair_project_analysis )
add_dependencies ( eclair_summary_print eclair_report )