aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt (follow)
AgeCommit message (Collapse)AuthorFilesLines
2023-03-11CMake/Windows: Add a workaround for windres from GNU binutils.Lasse Collin1-1/+31
This is combined from the following commits in the master branch: 443dfebced041adc88f10d824188eeef5b5821a9 6b117d3b1fe91eb26d533ab16a2e552f84148d47 5e34774c31d1b7509b5cb77a3be9973adec59ea0 Thanks to Iouri Kharon for the bug report, the original patch, and testing.
2023-03-11CMake: Update cmake_minimum_required from 3.13...3.16 to 3.13...3.25.Lasse Collin1-1/+1
The changes listed on cmake-policies(7) for versions 3.17 to 3.25 shouldn't affect this project.
2023-03-11CMake: Fix a copypaste error in xzdec Windows resource file handling.Lasse Collin1-2/+2
It was my mistake. Thanks to Iouri Kharon for the bug report.
2023-03-11CMake/Windows: Add resource files to xz.exe and xzdec.exe.Lasse Collin1-0/+16
The command line tools cannot be built with MSVC for now but they can be built with MinGW-w64. Thanks to Iouri Kharon for the bug report and the original patch.
2022-11-30Change the bug report address.Lasse Collin1-1/+1
It forwards to me and Jia Tan. Also update the IRC reference in README as #tukaani was moved to Libera Chat long ago.
2022-11-24Build: Don't put GNU/Linux-specific symbol versions into static liblzma.Lasse Collin1-1/+4
It not only makes no sense to put symbol versions into a static library but it can also cause breakage. By default Libtool #defines PIC if building a shared library and doesn't define it for static libraries. This is documented in the Libtool manual. It can be overriden using --with-pic or --without-pic. configure.ac detects if --with-pic or --without-pic is used and then gives an error if neither --disable-shared nor --disable-static was used at the same time. Thus, in normal situations it works to build both shared and static library at the same time on GNU/Linux, only --with-pic or --without-pic requires that only one type of library is built. Thanks to John Paul Adrian Glaubitz from Debian for reporting the problem that occurred on ia64: https://www.mail-archive.com/xz-devel@tukaani.org/msg00610.html
2022-11-24CMake: Don't use symbol versioning with static library.Lasse Collin1-3/+7
2022-09-16CMake: Clarify a comment about Windows symlinks without file extension.Jia Tan1-4/+3
2022-09-16CMake: Update for liblzma_*.map files and fix wrong common_w32res.rc dep.Lasse Collin1-5/+19
The previous commit split liblzma.map into liblzma_linux.map and liblzma_generic.map. This commit updates the CMake build for those. common_w32res.rc dependency was listed under Linux/FreeBSD while obviously it belongs to Windows when building a DLL.
2022-09-16CMake: Add xz symlinks.Lasse Collin1-1/+37
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.
2022-09-16CMake: Put xz man page install under if(UNIX) like is for xzdec.Lasse Collin1-3/+5
Thanks to Jia Tan.
2022-07-12CMake: Keep compatible with Windows 95 for 32-bit build.huangqinjin1-1/+11
2022-07-12CMake: Use interface library for better FindLibLZMA compatibility.Lasse Collin1-2/+9
https://www.mail-archive.com/xz-devel@tukaani.org/msg00446.html Thanks to Markus Rickert.
2022-07-12CMake: Try to improve compatibility with the FindLibLZMA module.Lasse Collin1-8/+13
The naming conflict with FindLibLZMA module gets worse. Not avoiding it in the first place was stupid. Normally find_package(LibLZMA) will use the module and find_package(liblzma 5.2.5 REQUIRED CONFIG) will use the config file even with a case insensitive file system. However, if CMAKE_FIND_PACKAGE_PREFER_CONFIG is TRUE and the file system is case insensitive, find_package(LibLZMA) will find our liblzma config file instead of using FindLibLZMA module. One big problem with this is that FindLibLZMA uses LibLZMA::LibLZMA and we use liblzma::liblzma as the target name. With target names CMake happens to be case sensitive. To workaround this, this commit adds add_library(LibLZMA::LibLZMA ALIAS liblzma::liblzma) to the config file. Then both spellings work. To make the behavior consistent between case sensitive and insensitive file systems, the config and related files are renamed from liblzmaConfig.cmake to liblzma-config.cmake style. With this style CMake looks for lowercase version of the package name so find_package(LiBLzmA 5.2.5 REQUIRED CONFIG) will work to find our config file. There are other differences between our config file and FindLibLZMA so it's still possible that things break for reasons other than the spelling of the target name. Hopefully those situations aren't too common. When the config file is available, it should always give as good or better results as FindLibLZMA so this commit doesn't affect the recommendation to use find_package(liblzma 5.2.5 REQUIRED CONFIG) which explicitly avoids FindLibLZMA. Thanks to Markus Rickert.
2022-07-12Build: Don't build bundles on Apple OSes.Lasse Collin1-0/+3
Thanks to Daniel Packard.
2022-07-12CMake: Fix compatibility with CMake 3.13.Lasse Collin1-1/+1
The syntax "if(DEFINED CACHE{FOO})" requires CMake 3.14. In some other places the code treats the cache variables like normal variables already (${FOO} or if(FOO) is used, not ${CACHE{FOO}). Thanks to ygrek for reporting the bug on IRC.
2020-03-11Build: Add very limited experimental CMake support.Lasse Collin1-0/+659
This version matches CMake files in the master branch (commit 265daa873c0d871f5f23f9b56e133a6f20045a0a) except that this omits two source files that aren't in v5.2 and in the beginning of CMakeLists.txt the first paragraph in the comment is slightly different to point out possible issues in building shared liblzma.