瀏覽代碼

Build: Use imported `LibUUID::LibUUID` target instead of variables

Also, simplify preprocessor condition to enable WIX CPack generator.
Alex Turbov 3 年之前
父節點
當前提交
626136ad4d

+ 19 - 17
Source/CMakeLists.txt

@@ -62,7 +62,6 @@ endif()
 # configure the .h file
 # configure the .h file
 configure_file(cmConfigure.cmake.h.in cmConfigure.h)
 configure_file(cmConfigure.cmake.h.in cmConfigure.h)
 configure_file(cmVersionConfig.h.in cmVersionConfig.h)
 configure_file(cmVersionConfig.h.in cmVersionConfig.h)
-configure_file(CPack/cmCPackConfigure.h.in CPack/cmCPackConfigure.h)
 
 
 # Tell CMake executable in the build tree where to find the source tree.
 # Tell CMake executable in the build tree where to find the source tree.
 configure_file(
 configure_file(
@@ -1041,18 +1040,14 @@ add_library(
   CPack/IFW/cmCPackIFWRepository.cxx
   CPack/IFW/cmCPackIFWRepository.cxx
   CPack/IFW/cmCPackIFWRepository.h
   CPack/IFW/cmCPackIFWRepository.h
   )
   )
-target_include_directories(CPackLib PUBLIC "${CMake_SOURCE_DIR}/Source/CPack")
+target_include_directories(
+  CPackLib
+  PUBLIC
+    "${CMAKE_CURRENT_SOURCE_DIR}/CPack"
+    "${CMAKE_CURRENT_BINARY_DIR}/CPack"
+  )
 target_link_libraries(CPackLib PUBLIC CMakeLib)
 target_link_libraries(CPackLib PUBLIC CMakeLib)
 
 
-if(CYGWIN)
-  target_sources(
-    CPackLib
-    PUBLIC
-      CPack/cmCPackCygwinBinaryGenerator.cxx
-      CPack/cmCPackCygwinSourceGenerator.cxx
-    )
-endif()
-
 option(CPACK_ENABLE_FREEBSD_PKG "Add FreeBSD pkg(8) generator to CPack." OFF)
 option(CPACK_ENABLE_FREEBSD_PKG "Add FreeBSD pkg(8) generator to CPack." OFF)
 
 
 if(UNIX)
 if(UNIX)
@@ -1089,9 +1084,17 @@ if(UNIX)
 endif()
 endif()
 
 
 if(CYGWIN)
 if(CYGWIN)
+  target_sources(
+    CPackLib
+    PUBLIC
+      CPack/cmCPackCygwinBinaryGenerator.cxx
+      CPack/cmCPackCygwinSourceGenerator.cxx
+    )
   find_package(LibUUID)
   find_package(LibUUID)
 endif()
 endif()
-if(WIN32 OR (CYGWIN AND LibUUID_FOUND))
+
+if(WIN32 OR (CYGWIN AND TARGET LibUUID::LibUUID))
+  set(ENABLE_BUILD_WIX_GENERATOR 1)
   target_sources(
   target_sources(
     CPackLib
     CPackLib
     PUBLIC
     PUBLIC
@@ -1118,6 +1121,7 @@ if(WIN32 OR (CYGWIN AND LibUUID_FOUND))
       CPack/WiX/cmWIXSourceWriter.cxx
       CPack/WiX/cmWIXSourceWriter.cxx
       CPack/WiX/cmWIXSourceWriter.h
       CPack/WiX/cmWIXSourceWriter.h
     )
     )
+  target_link_libraries(CPackLib PUBLIC $<TARGET_NAME_IF_EXISTS:LibUUID::LibUUID>)
 endif()
 endif()
 
 
 if(APPLE)
 if(APPLE)
@@ -1147,16 +1151,14 @@ if(APPLE)
       "See CMakeFiles/CMakeError.log for details of the failure.")
       "See CMakeFiles/CMakeError.log for details of the failure.")
   endif()
   endif()
 endif()
 endif()
-if(CYGWIN AND LibUUID_FOUND)
-  target_include_directories(CPackLib PUBLIC ${LibUUID_INCLUDE_DIRS})
-  target_link_libraries(CPackLib PUBLIC ${LibUUID_LIBRARIES})
-  set_property(SOURCE CPack/cmCPackGeneratorFactory.cxx PROPERTY COMPILE_DEFINITIONS HAVE_LIBUUID)
-endif()
 if(CPACK_ENABLE_FREEBSD_PKG AND FREEBSD_PKG_INCLUDE_DIRS AND FREEBSD_PKG_LIBRARIES)
 if(CPACK_ENABLE_FREEBSD_PKG AND FREEBSD_PKG_INCLUDE_DIRS AND FREEBSD_PKG_LIBRARIES)
   target_include_directories(CPackLib PUBLIC ${FREEBSD_PKG_INCLUDE_DIRS})
   target_include_directories(CPackLib PUBLIC ${FREEBSD_PKG_INCLUDE_DIRS})
   target_link_libraries(CPackLib PUBLIC ${FREEBSD_PKG_LIBRARIES})
   target_link_libraries(CPackLib PUBLIC ${FREEBSD_PKG_LIBRARIES})
   target_compile_definitions(CPackLib PUBLIC HAVE_FREEBSD_PKG)
   target_compile_definitions(CPackLib PUBLIC HAVE_FREEBSD_PKG)
 endif()
 endif()
+# Render config header file for CPackLib
+configure_file(CPack/cmCPackConfigure.h.in CPack/cmCPackConfigure.h)
+
 
 
 # Build CMake executable
 # Build CMake executable
 add_executable(cmake cmakemain.cxx cmcmd.cxx cmcmd.h)
 add_executable(cmake cmakemain.cxx cmcmd.cxx cmcmd.h)

+ 3 - 0
Source/CPack/cmCPackConfigure.h.in

@@ -1,2 +1,5 @@
 /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
    file Copyright.txt or https://cmake.org/licensing for details.  */
    file Copyright.txt or https://cmake.org/licensing for details.  */
+#pragma once
+
+#cmakedefine01 ENABLE_BUILD_WIX_GENERATOR

+ 2 - 2
Source/CPack/cmCPackGeneratorFactory.cxx

@@ -34,7 +34,7 @@
 #  include "cmCPackRPMGenerator.h"
 #  include "cmCPackRPMGenerator.h"
 #endif
 #endif
 
 
-#if defined(_WIN32) || (defined(__CYGWIN__) && defined(HAVE_LIBUUID))
+#if ENABLE_BUILD_WIX_GENERATOR
 #  include "WiX/cmCPackWIXGenerator.h"
 #  include "WiX/cmCPackWIXGenerator.h"
 #endif
 #endif
 
 
@@ -80,7 +80,7 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory()
                             cmCPackCygwinSourceGenerator::CreateGenerator);
                             cmCPackCygwinSourceGenerator::CreateGenerator);
   }
   }
 #endif
 #endif
-#if defined(_WIN32) || (defined(__CYGWIN__) && defined(HAVE_LIBUUID))
+#if ENABLE_BUILD_WIX_GENERATOR
   if (cmCPackWIXGenerator::CanGenerate()) {
   if (cmCPackWIXGenerator::CanGenerate()) {
     this->RegisterGenerator("WIX", "MSI file format via WiX tools",
     this->RegisterGenerator("WIX", "MSI file format via WiX tools",
                             cmCPackWIXGenerator::CreateGenerator);
                             cmCPackWIXGenerator::CreateGenerator);

+ 2 - 0
Source/CPack/cmCPackGeneratorFactory.h

@@ -8,6 +8,8 @@
 #include <memory>
 #include <memory>
 #include <string>
 #include <string>
 
 
+#include "cmCPackConfigure.h" // IWYU pragma: keep
+
 class cmCPackGenerator;
 class cmCPackGenerator;
 class cmCPackLog;
 class cmCPackLog;