Added an "add LTO if enabled" function to all targets currently in the library

This commit is contained in:
Paul Ferrand 2019-11-29 23:32:01 +01:00
parent 31254ced32
commit 43ea796a02
4 changed files with 13 additions and 5 deletions

View file

@ -3,8 +3,10 @@ project(sfizz)
###############################
add_executable(sfzprint sfzprint.cpp)
target_link_libraries(sfzprint sfizz::parser absl::flags_parse)
sfizz_enable_lto_if_needed(sfzprint)
# install(TARGETS sfzprint DESTINATION . OPTIONAL)
add_executable(sfizz_jack jack_client.cpp)
target_link_libraries(sfizz_jack sfizz::sfizz jack absl::flags_parse)
# install(TARGETS sfizz_jack DESTINATION . OPTIONAL)
sfizz_enable_lto_if_needed(sfizz_jack)
# install(TARGETS sfizz_jack DESTINATION . OPTIONAL)

View file

@ -12,3 +12,10 @@ else()
endif()
set (ENABLE_LTO OFF)
endif()
function(SFIZZ_ENABLE_LTO_IF_NEEDED TARGET)
if (ENABLE_LTO)
message(STATUS "Enabling LTO on ${TARGET}")
set_property (TARGET ${TARGET} PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
endfunction()

View file

@ -32,10 +32,8 @@ if (UNIX)
target_link_libraries (sfizz PUBLIC atomic)
endif()
if (ENABLE_LTO)
set_property (TARGET sfizz_parser PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
set_property (TARGET sfizz PROPERTY INTERPROCEDURAL_OPTIMIZATION True)
endif()
sfizz_enable_lto_if_needed(sfizz_parser)
sfizz_enable_lto_if_needed(sfizz)
add_library (sfizz::parser ALIAS sfizz_parser)
add_library (sfizz::sfizz ALIAS sfizz)

View file

@ -37,5 +37,6 @@ if(UNIX)
endif(UNIX)
target_link_libraries(sfizz_tests PRIVATE absl::strings absl::str_format absl::flat_hash_map sndfile cnpy absl::span absl::algorithm)
target_include_directories(sfizz_tests SYSTEM PRIVATE sources)
sfizz_enable_lto_if_needed(sfizz_tests)
file(COPY "." DESTINATION ${CMAKE_BINARY_DIR}/tests)