CMake: Add xz symlinks.

These are a minor thing especially since the xz build has
some real problems still like lack of large file support
on 32-bit systems but I'll commit this since the code exists.

Thanks to Jia Tan.
This commit is contained in:
Lasse Collin 2022-08-31 16:42:04 +03:00
parent 3523b6ebb5
commit 5875a45be0
1 changed files with 37 additions and 1 deletions

View File

@ -13,7 +13,6 @@
# - No replacement getopt_long(), libc must have it # - No replacement getopt_long(), libc must have it
# - No sandboxing support # - No sandboxing support
# - No translations # - No translations
# - No xz symlinks are installed
# #
# Other missing things: # Other missing things:
# - No xzgrep or other scripts or their symlinks # - No xzgrep or other scripts or their symlinks
@ -682,5 +681,42 @@ if(NOT MSVC AND HAVE_GETOPT_LONG)
install(FILES src/xz/xz.1 install(FILES src/xz/xz.1
DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
COMPONENT xz) COMPONENT xz)
option(CREATE_XZ_SYMLINKS "Create unxz and xzcat symlinks" ON)
option(CREATE_LZMA_SYMLINKS "Create lzma, unlzma, and lzcat symlinks"
ON)
set(XZ_LINKS)
if(CREATE_XZ_SYMLINKS)
list(APPEND XZ_LINKS "unxz" "xzcat")
endif()
if(CREATE_LZMA_SYMLINKS)
list(APPEND XZ_LINKS "lzma" "unlzma" "lzcat")
endif()
# Create symlinks in the build directory and then install them.
#
# FIXME? On OSes where executables have a suffix like .exe, this
# will create links like unxz -> xz.exe which is correct on Cygwin
# but perhaps on some other cases unxz.suffix -> xz.suffix would
# be the corrent thing?
foreach(LINK IN LISTS XZ_LINKS)
add_custom_target("${LINK}" ALL
"${CMAKE_COMMAND}" -E create_symlink
"$<TARGET_FILE_NAME:xz>" "${LINK}"
BYPRODUCTS "${LINK}"
VERBATIM)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${LINK}"
DESTINATION "${CMAKE_INSTALL_BINDIR}"
COMPONENT xz)
add_custom_target("${LINK}.1" ALL
"${CMAKE_COMMAND}" -E create_symlink "xz.1" "${LINK}.1"
BYPRODUCTS "${LINK}.1"
VERBATIM)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${LINK}.1"
DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
COMPONENT xz)
endforeach()
endif() endif()
endif() endif()