diff options
Diffstat (limited to 'src/cmake/library.cmake')
-rw-r--r-- | src/cmake/library.cmake | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cmake/library.cmake b/src/cmake/library.cmake index 06248a57aa3..a5b6c76d2d1 100644 --- a/src/cmake/library.cmake +++ b/src/cmake/library.cmake @@ -13,7 +13,7 @@ macro(add_vpp_library lib) cmake_parse_arguments(ARG - "" + "LTO" "COMPONENT" "SOURCES;MULTIARCH_SOURCES;API_FILES;LINK_LIBRARIES;INSTALL_HEADERS;DEPENDS" ${ARGN} @@ -38,6 +38,13 @@ macro(add_vpp_library lib) COMPONENT ${ARG_COMPONENT} ) + if (ARG_LTO AND VPP_USE_LTO) + set_property(TARGET ${lib} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + target_compile_options (${lib} PRIVATE "-ffunction-sections") + target_compile_options (${lib} PRIVATE "-fdata-sections") + target_link_libraries (${lib} "-Wl,--gc-sections") + endif() + if(ARG_MULTIARCH_SOURCES) vpp_library_set_multiarch_sources(${lib} "${ARG_DEPENDS}" ${ARG_MULTIARCH_SOURCES}) endif() |