]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
CMake: Add the resource files to the Cygwin and MSYS2 builds
authorLasse Collin <lasse.collin@tukaani.org>
Sat, 28 Sep 2024 17:09:50 +0000 (20:09 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Sat, 28 Sep 2024 22:26:45 +0000 (01:26 +0300)
Autotools-based build has always done this so this is for consistency.

However, the CMake build won't create the DEF file when building
for Cygwin or MSYS2 because in that context it should be useless.
(If Cygwin or MSYS2 is used to host building of normal Windows
binaries then the DEF file is still created.)

CMakeLists.txt

index 16ee4d5d529462835bd8fa1e9c96d935d2b43c6d..163e92a1def4105847ce74357e387982b3128c7c 100644 (file)
@@ -1370,7 +1370,7 @@ else()
     target_compile_definitions(liblzma PRIVATE HAVE_VISIBILITY=0)
 endif()
 
-if(WIN32)
+if(WIN32 OR CYGWIN)
     if(BUILD_SHARED_LIBS)
         # Add the Windows resource file for liblzma.dll.
         target_sources(liblzma PRIVATE src/liblzma/liblzma_w32res.rc)
@@ -1382,8 +1382,12 @@ if(WIN32)
         # Export the public API symbols with __declspec(dllexport).
         target_compile_definitions(liblzma PRIVATE DLL_EXPORT)
 
-        if(NOT MSVC)
-            # Create a DEF file. The linker puts the ordinal numbers there
+        if(NOT MSVC AND NOT CYGWIN)
+            # Create a DEF file. The Autotools-based build creates a DEF file
+            # under Cygwin & MSYS2 too but it almost certainly is a useless
+            # file in that context, so the CMake build omits it.
+            #
+            # The linker puts the ordinal numbers in the DEF file
             # too so the output from the linker isn't our final file.
             target_link_options(liblzma PRIVATE
                                 "-Wl,--output-def,liblzma.def.in")
@@ -1848,7 +1852,7 @@ if(HAVE_DECODERS)
 
         target_link_libraries("${XZDEC}" PRIVATE liblzma libgnu)
 
-        if(WIN32)
+        if(WIN32 OR CYGWIN)
             # Add the Windows resource file for xzdec.exe or lzmadec.exe.
             target_sources("${XZDEC}" PRIVATE "src/xzdec/${XZDEC}_w32res.rc")
             set_source_files_properties(
@@ -1917,7 +1921,7 @@ if(XZ_TOOL_LZMAINFO AND HAVE_DECODERS)
 
     target_link_libraries(lzmainfo PRIVATE liblzma libgnu)
 
-    if(WIN32)
+    if(WIN32 OR CYGWIN)
         # Add the Windows resource file for lzmainfo.exe.
         target_sources(lzmainfo PRIVATE src/lzmainfo/lzmainfo_w32res.rc)
         set_source_files_properties(src/lzmainfo/lzmainfo_w32res.rc PROPERTIES
@@ -2030,7 +2034,7 @@ if(XZ_TOOL_XZ)
 this many MiB of RAM if xz cannot determine the amount at runtime")
     target_compile_definitions(xz PRIVATE "ASSUME_RAM=${XZ_ASSUME_RAM}")
 
-    if(WIN32)
+    if(WIN32 OR CYGWIN)
         # Add the Windows resource file for xz.exe.
         target_sources(xz PRIVATE src/xz/xz_w32res.rc)
         set_source_files_properties(src/xz/xz_w32res.rc PROPERTIES