[fix] support latest code support coverage build
This commit is contained in:
parent
3004e827fe
commit
3a063b1508
@ -39,7 +39,10 @@ if(WITH_COVERAGE)
|
||||
# -ftest-coverage to generate .gcno file
|
||||
# -fprofile-arcs to generate .gcda file
|
||||
# -DDBUILD_COVERAGE marco use to mark 'coverage build type' and to handle some speical case
|
||||
set(CMAKE_COVERAGE_FLAG "-ftest-coverage -fprofile-arcs -Xclang -coverage-version='502*' -DBUILD_COVERAGE")
|
||||
set(CMAKE_COVERAGE_COMPILE_OPTIONS -ftest-coverage -fprofile-arcs -Xclang -coverage-version=408R -DBUILD_COVERAGE)
|
||||
set(CMAKE_COVERAGE_EXE_LINKER_OPTIONS "-ftest-coverage -fprofile-arcs")
|
||||
|
||||
add_compile_options(${CMAKE_COVERAGE_COMPILE_OPTIONS})
|
||||
set(DEBUG_PREFIX "")
|
||||
endif()
|
||||
|
||||
@ -97,11 +100,11 @@ if (OB_USE_CLANG)
|
||||
set(REORDER_LINK_OPT "-Wl,--no-rosegment,--build-id=sha1,--no-warn-symbol-ordering,--symbol-ordering-file,${HOTFUNC_PATH}")
|
||||
set(OB_LD_BIN "${DEVTOOLS_DIR}/bin/ld.lld")
|
||||
endif()
|
||||
set(CMAKE_CXX_FLAGS "--gcc-toolchain=${GCC9} ${DEBUG_PREFIX} ${AUTO_FDO_OPT} ${THIN_LTO_OPT} -fcolor-diagnostics ${REORDER_COMP_OPT} -fmax-type-align=8 ${CMAKE_ASAN_FLAG} ${CMAKE_COVERAGE_FLAG} -std=gnu++11")
|
||||
set(CMAKE_C_FLAGS "--gcc-toolchain=${GCC9} ${DEBUG_PREFIX} ${AUTO_FDO_OPT} ${THIN_LTO_OPT} -fcolor-diagnostics ${REORDER_COMP_OPT} -fmax-type-align=8 ${CMAKE_ASAN_FLAG} ${CMAKE_COVERAGE_FLAG}")
|
||||
set(CMAKE_CXX_FLAGS "--gcc-toolchain=${GCC9} ${DEBUG_PREFIX} ${AUTO_FDO_OPT} ${THIN_LTO_OPT} -fcolor-diagnostics ${REORDER_COMP_OPT} -fmax-type-align=8 ${CMAKE_ASAN_FLAG} -std=gnu++11")
|
||||
set(CMAKE_C_FLAGS "--gcc-toolchain=${GCC9} ${DEBUG_PREFIX} ${AUTO_FDO_OPT} ${THIN_LTO_OPT} -fcolor-diagnostics ${REORDER_COMP_OPT} -fmax-type-align=8 ${CMAKE_ASAN_FLAG}")
|
||||
set(CMAKE_CXX_LINK_FLAGS "${LD_OPT} ${THIN_LTO_CONCURRENCY_LINK} --gcc-toolchain=${GCC9} ${DEBUG_PREFIX} ${AUTO_FDO_OPT}")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${LD_OPT} -Wl,-z,noexecstack ${THIN_LTO_CONCURRENCY_LINK} ${REORDER_LINK_OPT}")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${LD_OPT} -Wl,-z,noexecstack ${THIN_LTO_CONCURRENCY_LINK} ${REORDER_LINK_OPT} ${OB_EXE_LINKER_OPT}")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${LD_OPT} -Wl,-z,noexecstack ${THIN_LTO_CONCURRENCY_LINK} ${REORDER_LINK_OPT} ${OB_EXE_LINKER_OPT} ${CMAKE_COVERAGE_EXE_LINKER_OPTIONS}")
|
||||
else() # not clang, use gcc
|
||||
message("gcc9 not support currently, please set OB_USE_CLANG ON and we will finish it as soon as possible")
|
||||
endif()
|
||||
|
@ -85,6 +85,15 @@ function(config_ccls_flag target)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(config_remove_coverage_flag target)
|
||||
# 针对于特定的目标,由于某种写法会命中clang的DAG解析的bug,将少量文件不参与coverage编译
|
||||
if (WITH_COVERAGE)
|
||||
get_target_property(EXTLIB_COMPILE_FLAGS ${target} COMPILE_OPTIONS)
|
||||
list(REMOVE_ITEM EXTLIB_COMPILE_FLAGS ${CMAKE_COVERAGE_COMPILE_OPTIONS})
|
||||
set_target_properties(${target} PROPERTIES COMPILE_OPTIONS "${EXTLIB_COMPILE_FLAGS}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(ob_add_object_target target)
|
||||
add_library(${target} OBJECT "${${target}_cache_objects_}")
|
||||
config_target_unity(${target})
|
||||
|
@ -84,6 +84,12 @@ add_library(ob_sql_server_parser_objects OBJECT
|
||||
target_link_libraries(ob_sql_proxy_parser_objects PUBLIC ob_base ob_sql_parser_base)
|
||||
target_link_libraries(ob_sql_server_parser_objects PUBLIC ob_base)
|
||||
|
||||
if (WITH_COVERAGE)
|
||||
# 排除少量sql解析文件,不参与coverage编译,clang针对于特殊语法文件会core
|
||||
config_remove_coverage_flag(ob_sql_proxy_parser_objects)
|
||||
config_remove_coverage_flag(ob_sql_server_parser_objects)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(ob_sql_proxy_parser_objects PUBLIC SQL_PARSER_COMPILATION)
|
||||
|
||||
add_library(ob_sql_proxy_parser_static
|
||||
|
Loading…
x
Reference in New Issue
Block a user