Optimizing RPM Package Build Speed
This commit is contained in:
parent
c9d7d26d57
commit
b2bd2d6f7a
@ -23,7 +23,9 @@ ob_define(OB_CMAKE_RULES_CHECK ON)
|
||||
ob_define(OB_STATIC_LINK_LGPL_DEPS ON)
|
||||
ob_define(HOTFUNC_PATH "${CMAKE_SOURCE_DIR}/hotfuncs.txt")
|
||||
ob_define(OB_BUILD_CCLS OFF)
|
||||
ob_define(LTO_JOBS 16)
|
||||
ob_define(LTO_JOBS all)
|
||||
ob_define(LTO_CACHE_DIR "${CMAKE_BINARY_DIR}/cache")
|
||||
ob_define(LTO_CACHE_POLICY cache_size=100%:cache_size_bytes=0k:cache_size_files=0:prune_after=0s:prune_interval=72h)
|
||||
# get compiler from build.sh
|
||||
ob_define(OB_CC "")
|
||||
ob_define(OB_CXX "")
|
||||
@ -46,6 +48,8 @@ ob_define(OB_DISABLE_PIE OFF)
|
||||
|
||||
ob_define(OB_ENABLE_MCMODEL OFF)
|
||||
|
||||
ob_define(USE_LTO_CACHE OFF)
|
||||
|
||||
if(WITH_COVERAGE)
|
||||
# -ftest-coverage to generate .gcno file
|
||||
# -fprofile-arcs to generate .gcda file
|
||||
@ -69,6 +73,9 @@ ob_define(THIN_LTO_CONCURRENCY_LINK "")
|
||||
if(ENABLE_THIN_LTO)
|
||||
set(THIN_LTO_OPT "-flto=thin")
|
||||
set(THIN_LTO_CONCURRENCY_LINK "-Wl,--thinlto-jobs=${LTO_JOBS}")
|
||||
if(USE_LTO_CACHE)
|
||||
set(THIN_LTO_CONCURRENCY_LINK "${THIN_LTO_CONCURRENCY_LINK},--thinlto-cache-dir=${LTO_CACHE_DIR},--thinlto-cache-policy=${LTO_CACHE_POLICY}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(HOTFUNC_OPT "")
|
||||
@ -246,7 +253,7 @@ if (OB_USE_CLANG)
|
||||
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} -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_CXX_LINK_FLAGS "${LD_OPT} --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 ${PIE_OPT} ${THIN_LTO_CONCURRENCY_LINK} ${REORDER_LINK_OPT} ${CMAKE_COVERAGE_EXE_LINKER_OPTIONS}")
|
||||
else() # not clang, use gcc
|
||||
|
@ -25,8 +25,16 @@ target_link_libraries(obtable
|
||||
-Wl,--allow-multiple-definition)
|
||||
set_target_properties(obtable PROPERTIES SOVERSION 1 VERSION 1.0.0)
|
||||
|
||||
if(ENABLE_THIN_LTO AND USE_LTO_CACHE)
|
||||
add_dependencies(obtable observer)
|
||||
endif()
|
||||
|
||||
add_library(obtable_static
|
||||
STATIC
|
||||
EXCLUDE_FROM_ALL
|
||||
${CMAKE_BINARY_DIR}/src/observer/ob_version.cpp)
|
||||
target_link_libraries(obtable_static PUBLIC ${obtable_base} ${ob_objects} ${oblib_object_libraries})
|
||||
|
||||
if(ENABLE_THIN_LTO AND USE_LTO_CACHE)
|
||||
add_dependencies(obtable_static observer)
|
||||
endif()
|
||||
|
@ -10,6 +10,10 @@ ob_add_new_object_target(obcdc_tailf_objects obcdc_tailf_object_list)
|
||||
target_link_libraries(obcdc_tailf_objects PRIVATE obcdc)
|
||||
target_link_libraries(obcdc_tailf PRIVATE obcdc_tailf_objects)
|
||||
|
||||
if(ENABLE_THIN_LTO AND USE_LTO_CACHE)
|
||||
add_dependencies(obcdc_tailf observer)
|
||||
endif()
|
||||
|
||||
# obcdc_tailf_static
|
||||
add_executable(obcdc_tailf_static EXCLUDE_FROM_ALL)
|
||||
ob_add_new_object_target(obcdc_tailf_objects_static obcdc_tailf_object_list)
|
||||
|
@ -146,6 +146,10 @@ target_link_libraries(ob_sql_proxy_parser_static
|
||||
PUBLIC
|
||||
ob_sql_proxy_parser_objects)
|
||||
|
||||
if(ENABLE_THIN_LTO AND USE_LTO_CACHE)
|
||||
add_dependencies(ob_sql_proxy_parser_static observer)
|
||||
endif()
|
||||
|
||||
target_link_libraries(ob_sql_server_parser_static
|
||||
PUBLIC
|
||||
ob_sql_server_parser_objects)
|
||||
|
@ -167,3 +167,7 @@ target_link_libraries(ob_admin
|
||||
-Wl,--end-group
|
||||
-static-libgcc
|
||||
-static-libstdc++)
|
||||
|
||||
if(ENABLE_THIN_LTO AND USE_LTO_CACHE)
|
||||
add_dependencies(ob_admin observer)
|
||||
endif()
|
||||
|
Loading…
x
Reference in New Issue
Block a user