aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2024-02-17 15:35:35 +0200
committerLasse Collin <lasse.collin@tukaani.org>2024-02-19 12:21:37 +0200
commit998d0b29536094a89cf385a3b894e157db1ccefe (patch)
treec296dce60c7f5528f699521f80d267832609ff6a
parentCMake: Add test_scripts.sh to the tests. (diff)
downloadxz-998d0b29536094a89cf385a3b894e157db1ccefe.tar.xz
CMake: Build lzmadec.
-rw-r--r--CMakeLists.txt76
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()