@ -266,6 +266,32 @@ function(merge_static_libs TARGET_NAME)
endif ( WIN32 )
endfunction ( merge_static_libs )
function ( check_coverage_opt TARGET_NAME SRCS )
if ( WITH_COVERAGE )
if ( "$ENV{PADDLE_GIT_DIFF_H_FILE}" STREQUAL "" )
if ( NOT ( "$ENV{PADDLE_GIT_DIFF_CC_FILE}" STREQUAL "" ) )
string ( REPLACE "," ";" CC_FILE_LIST $ENV{ PADDLE_GIT_DIFF_CC_FILE } )
set ( use_coverage_opt FALSE )
FOREACH ( cc_file ${ CC_FILE_LIST } )
if ( "${SRCS};" MATCHES "${cc_file}" )
set ( use_coverage_opt TRUE )
break ( )
endif ( )
ENDFOREACH ( cc_file )
if ( use_coverage_opt )
message ( STATUS "cc changed, add coverage opt for ${TARGET_NAME}" )
target_compile_options ( ${ TARGET_NAME } PRIVATE -g -O0 -fprofile-arcs -ftest-coverage )
target_link_libraries ( ${ TARGET_NAME } -fprofile-arcs )
get_target_property ( WH_TARGET_COMPILE_OPTIONS ${ TARGET_NAME } COMPILE_OPTIONS )
message ( STATUS "property for ${TARGET_NAME} is ${WH_TARGET_COMPILE_OPTIONS}" )
endif ( )
endif ( )
endif ( )
endif ( )
endfunction ( check_coverage_opt )
function ( cc_library TARGET_NAME )
set ( options STATIC static SHARED shared INTERFACE interface )
set ( oneValueArgs "" )
@ -325,6 +351,9 @@ function(cc_library TARGET_NAME)
list ( APPEND cc_library_HEADERS ${ CMAKE_CURRENT_SOURCE_DIR } / ${ source } .h )
endif ( )
endforeach ( )
check_coverage_opt ( ${ TARGET_NAME } ${ cc_library_SRCS } )
else ( cc_library_SRCS )
if ( cc_library_DEPS )
list ( REMOVE_DUPLICATES cc_library_DEPS )
@ -352,6 +381,9 @@ function(cc_binary TARGET_NAME)
endif ( )
get_property ( os_dependency_modules GLOBAL PROPERTY OS_DEPENDENCY_MODULES )
target_link_libraries ( ${ TARGET_NAME } ${ os_dependency_modules } )
check_coverage_opt ( ${ TARGET_NAME } ${ cc_binary_SRCS } )
endfunction ( cc_binary )
function ( cc_test_build TARGET_NAME )
@ -371,6 +403,9 @@ function(cc_test_build TARGET_NAME)
add_dependencies ( ${ TARGET_NAME } ${ cc_test_DEPS } paddle_gtest_main lod_tensor memory gtest gflags glog )
common_link ( ${ TARGET_NAME } )
endif ( )
check_coverage_opt ( ${ TARGET_NAME } ${ cc_test_SRCS } )
endfunction ( )
function ( cc_test_run TARGET_NAME )
@ -532,6 +567,9 @@ function(hip_library TARGET_NAME)
list ( APPEND hip_library_HEADERS ${ CMAKE_CURRENT_SOURCE_DIR } / ${ source } .h )
endif ( )
endforeach ( )
check_coverage_opt ( ${ TARGET_NAME } ${ hip_library_SRCS } )
else ( hip_library_SRCS )
if ( hip_library_DEPS )
merge_static_libs ( ${ TARGET_NAME } ${ hip_library_DEPS } )
@ -555,6 +593,9 @@ function(hip_binary TARGET_NAME)
common_link ( ${ TARGET_NAME } )
endif ( )
endif ( )
check_coverage_opt ( ${ TARGET_NAME } ${ hip_binary_SRCS } )
endfunction ( hip_binary )
function ( hip_test TARGET_NAME )
@ -576,6 +617,9 @@ function(hip_test TARGET_NAME)
common_link ( ${ TARGET_NAME } )
add_test ( ${ TARGET_NAME } ${ TARGET_NAME } )
endif ( )
check_coverage_opt ( ${ TARGET_NAME } ${ hip_test_SRCS } )
endfunction ( hip_test )
function ( go_library TARGET_NAME )
@ -655,6 +699,9 @@ function(go_binary TARGET_NAME)
W O R K I N G _ D I R E C T O R Y " $ { P A D D L E _ I N _ G O P A T H } / g o " )
add_custom_target ( ${ TARGET_NAME } ALL DEPENDS go_vendor ${ TARGET_NAME } _timestamp ${ go_binary_DEPS } )
install ( PROGRAMS ${ CMAKE_CURRENT_BINARY_DIR } / ${ TARGET_NAME } DESTINATION bin )
check_coverage_opt ( ${ TARGET_NAME } ${ go_binary_SRCS } )
endfunction ( go_binary )
function ( go_test TARGET_NAME )
@ -743,13 +790,23 @@ function(py_test TARGET_NAME)
cmake_parse_arguments ( py_test "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ ARGN } )
if ( WITH_COVERAGE )
add_test ( NAME ${ TARGET_NAME }
C O M M A N D $ { C M A K E _ C O M M A N D } - E e n v F L A G S _ i n i t _ a l l o c a t e d _ m e m = t r u e F L A G S _ c u d n n _ d e t e r m i n i s t i c = t r u e
F L A G S _ c p u _ d e t e r m i n i s t i c = t r u e
P Y T H O N P A T H = $ { P A D D L E _ B I N A R Y _ D I R } / p y t h o n $ { p y _ t e s t _ E N V S }
C O V E R A G E _ F I L E = $ { P A D D L E _ B I N A R Y _ D I R } / p y t h o n - c o v e r a g e . d a t a
$ { P Y T H O N _ E X E C U T A B L E } - m c o v e r a g e r u n - - b r a n c h - p $ { p y _ t e s t _ S R C S } $ { p y _ t e s t _ A R G S }
W O R K I N G _ D I R E C T O R Y $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } )
if ( "$ENV{PADDLE_GIT_DIFF_PY_FILE}" STREQUAL "" )
add_test ( NAME ${ TARGET_NAME }
C O M M A N D $ { C M A K E _ C O M M A N D } - E e n v F L A G S _ i n i t _ a l l o c a t e d _ m e m = t r u e F L A G S _ c u d n n _ d e t e r m i n i s t i c = t r u e
F L A G S _ c p u _ d e t e r m i n i s t i c = t r u e
P Y T H O N P A T H = $ { P A D D L E _ B I N A R Y _ D I R } / p y t h o n $ { p y _ t e s t _ E N V S }
$ { P Y T H O N _ E X E C U T A B L E } - u $ { p y _ t e s t _ S R C S } $ { p y _ t e s t _ A R G S }
W O R K I N G _ D I R E C T O R Y $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } )
else ( )
add_test ( NAME ${ TARGET_NAME }
C O M M A N D $ { C M A K E _ C O M M A N D } - E e n v F L A G S _ i n i t _ a l l o c a t e d _ m e m = t r u e F L A G S _ c u d n n _ d e t e r m i n i s t i c = t r u e
F L A G S _ c p u _ d e t e r m i n i s t i c = t r u e
P Y T H O N P A T H = $ { P A D D L E _ B I N A R Y _ D I R } / p y t h o n $ { p y _ t e s t _ E N V S }
C O V E R A G E _ F I L E = $ { P A D D L E _ B I N A R Y _ D I R } / p y t h o n - c o v e r a g e . d a t a
$ { P Y T H O N _ E X E C U T A B L E } - m c o v e r a g e r u n - - b r a n c h - p - - i n c l u d e = $ E N V { P A D D L E _ G I T _ D I F F _ P Y _ F I L E } $ { p y _ t e s t _ S R C S } $ { p y _ t e s t _ A R G S }
W O R K I N G _ D I R E C T O R Y $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } )
endif ( )
else ( )
add_test ( NAME ${ TARGET_NAME }
C O M M A N D $ { C M A K E _ C O M M A N D } - E e n v F L A G S _ i n i t _ a l l o c a t e d _ m e m = t r u e F L A G S _ c u d n n _ d e t e r m i n i s t i c = t r u e