From 809e69f1f574dad3c9b00d4f01b9ef1a492319f3 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Tue, 25 Jun 2024 16:11:13 +0300 Subject: [PATCH] CMake: Use configure_file() to copy a file I had missed this simpler method before. It does create a dependency so that if .in.h changes the copying is done again. (cherry picked from commit de215a0517645d16343f3a5336d3df884a4f665f) --- CMakeLists.txt | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f7ebb024..70435bac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1578,17 +1578,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