From: Dexter Castor Döpping Date: Sun, 22 Dec 2024 12:44:03 +0000 (+0100) Subject: CMake: Disable unity builds project-wide X-Git-Tag: v5.7.1alpha~56 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf6da9a573a780cd1a7fb1728ef55d09e58dad11;p=thirdparty%2Fxz.git CMake: Disable unity builds project-wide liblzma and xz can't be compiled as a unity/jumbo build because of redeclarations and type name reuse. The CMake documentation recommends setting UNITY_BUILD to false in this case. This is especially important if we're compiled as a subproject and the consumer wants to use CMAKE_UNITY_BUILD=ON for the rest of their code base. Closes: https://github.com/tukaani-project/xz/pull/158 --- diff --git a/CMakeLists.txt b/CMakeLists.txt index f800396d..fab4fb71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -161,6 +161,12 @@ set(CMAKE_C_STANDARD 11) # On Apple OSes, don't build executables as bundles: set(CMAKE_MACOSX_BUNDLE OFF) +# The targets defined here don't support compiling as a unity build. Encoder +# and decoder source files define different types with the same name, and some +# internal header files don't have header guards leading to redeclaration +# errors. +set(CMAKE_UNITY_BUILD OFF) + # Set CMAKE_INSTALL_LIBDIR and friends. This needs to be done before # the LOCALEDIR_DEFINITION workaround below. include(GNUInstallDirs)