]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
CMake: Use configure_file() to copy a file
authorLasse Collin <lasse.collin@tukaani.org>
Tue, 25 Jun 2024 13:11:13 +0000 (16:11 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Tue, 25 Jun 2024 13:13:39 +0000 (16:13 +0300)
I had missed this simpler method before. It does create a dependency
so that if .in.h changes the copying is done again.

CMakeLists.txt

index 011aa1999162d33dc62e22bc82a00ffab1dae5fa..1fe29febc9b6e68b8c4c913cb43bdae1ea0e2c06 100644 (file)
@@ -1685,17 +1685,14 @@ if(NOT HAVE_GETOPT_LONG)
     # the Autotools build (m4/getopt.m4).
     target_compile_definitions(libgnu PUBLIC "__GETOPT_PREFIX=rpl_")
 
-    # Create a custom copy command to copy the getopt header to the build
-    # directory and re-copy it if it is updated. (Gnulib does it this way
-    # because it allows choosing which .in.h files to actually use in the
-    # build. We need just getopt.h so this is a bit overcomplicated for
+    # Copy the getopt header to the build directory and re-copy it
+    # if it is updated. (Gnulib does it this way because it allows
+    # choosing which .in.h files to actually use in the build. We
+    # need just getopt.h so this is a bit overcomplicated for
     # a single header file only.)
-    add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/lib/getopt.h"
-        COMMAND "${CMAKE_COMMAND}" -E copy
-            "${CMAKE_CURRENT_SOURCE_DIR}/lib/getopt.in.h"
-            "${CMAKE_CURRENT_BINARY_DIR}/lib/getopt.h"
-        MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/lib/getopt.in.h"
-        VERBATIM)
+    configure_file("${CMAKE_CURRENT_SOURCE_DIR}/lib/getopt.in.h"
+                   "${CMAKE_CURRENT_BINARY_DIR}/lib/getopt.h"
+                   COPYONLY)
 
     target_sources(libgnu PRIVATE
         lib/getopt1.c