diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2024-02-17 15:35:35 +0200 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2024-02-19 12:21:37 +0200 |
commit | 998d0b29536094a89cf385a3b894e157db1ccefe (patch) | |
tree | c296dce60c7f5528f699521f80d267832609ff6a | |
parent | CMake: Add test_scripts.sh to the tests. (diff) | |
download | xz-998d0b29536094a89cf385a3b894e157db1ccefe.tar.xz |
CMake: Build lzmadec.
-rw-r--r-- | CMakeLists.txt | 76 |
1 files changed, 42 insertions, 34 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index fae52cd1..043c3151 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,7 @@ # - liblzma_Development # - xz (on some platforms only) # - xzdec (on some platforms only) +# - lzmadec (on some platforms only) # # To find the target liblzma::liblzma from other packages, use the CONFIG # option with find_package() to avoid a conflict with the FindLibLZMA module @@ -772,7 +773,7 @@ endif() set(SUPPORTED_SANDBOX_METHODS ON OFF capsicum pledge landlock) set(ENABLE_SANDBOX ON CACHE STRING - "Sandboxing method to use in 'xz' and 'xzdec'") + "Sandboxing method to use in 'xz', 'xzdec', and 'lzmadec'") set_property(CACHE ENABLE_SANDBOX PROPERTY STRINGS "${SUPPORTED_SANDBOX_METHODS}") @@ -1387,50 +1388,57 @@ endif() ############################################################################# -# xzdec +# xzdec and lzmadec ############################################################################# if(HAVE_DECODERS AND (NOT MSVC OR MSVC_VERSION GREATER_EQUAL 1900)) - add_executable(xzdec - src/common/sysdefs.h - src/common/tuklib_common.h - src/common/tuklib_config.h - src/common/tuklib_exit.c - src/common/tuklib_exit.h - src/common/tuklib_gettext.h - src/common/tuklib_progname.c - src/common/tuklib_progname.h - src/xzdec/xzdec.c - ) + foreach(XZDEC xzdec lzmadec) + add_executable("${XZDEC}" + src/common/sysdefs.h + src/common/tuklib_common.h + src/common/tuklib_config.h + src/common/tuklib_exit.c + src/common/tuklib_exit.h + src/common/tuklib_gettext.h + src/common/tuklib_progname.c + src/common/tuklib_progname.h + src/xzdec/xzdec.c + ) - target_include_directories(xzdec PRIVATE - src/common - src/liblzma/api - ) + target_include_directories("${XZDEC}" PRIVATE + src/common + src/liblzma/api + ) - target_link_libraries(xzdec PRIVATE liblzma libgnu) + target_link_libraries("${XZDEC}" PRIVATE liblzma libgnu) - if(WIN32) - # Add the Windows resource file for xzdec.exe. - target_sources(xzdec PRIVATE src/xzdec/xzdec_w32res.rc) - set_target_properties(xzdec PROPERTIES - LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/common/common_w32res.rc" - ) - endif() + if(WIN32) + # Add the Windows resource file for xzdec.exe or lzmadec.exe. + target_sources("${XZDEC}" PRIVATE src/xzdec/xzdec_w32res.rc) + set_target_properties("${XZDEC}" PROPERTIES + LINK_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/common/common_w32res.rc" + ) + endif() - if(SANDBOX_COMPILE_DEFINITION) - target_compile_definitions(xzdec PRIVATE - "${SANDBOX_COMPILE_DEFINITION}") - endif() + if(SANDBOX_COMPILE_DEFINITION) + target_compile_definitions("${XZDEC}" PRIVATE + "${SANDBOX_COMPILE_DEFINITION}") + endif() - tuklib_progname(xzdec) + tuklib_progname("${XZDEC}") - install(TARGETS xzdec - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - COMPONENT xzdec) + install(TARGETS "${XZDEC}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + COMPONENT "${XZDEC}") + endforeach() + + # This is the only build-time difference with lzmadec. + target_compile_definitions(lzmadec PRIVATE "LZMADEC") if(UNIX) - my_install_man(xzdec src/xzdec/xzdec.1 "") + # FIXME? This puts the lzmadec symlinks into xzdec target. + # But doing them separately isn't trivial. + my_install_man(xzdec src/xzdec/xzdec.1 lzmadec) endif() endif() |