You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

35 lines
1.5 KiB

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -115,14 +115,26 @@ install(FILES AUTHORS COPYING ChangeLog
# Ensure the file gets CRLF line endings on Windows.
file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/stubby.yml INPUT ${CMAKE_CURRENT_SOURCE_DIR}/stubby.yml.example)
-# Copy to destination iff no destination file exists.
+
+# Copy stubby.yml to destination iff no destination file exists.
+# This is complicated by (a) not being able to use generators, due to
+# CMake minimum version requirement, and (b) to account for DESTDIR.
+# And in the latter case, if we're adding DESTDIR to the start of the
+# path, we must on Windows remove any initial drive letter. That's what
+# INSTALL appears to do.
install(CODE "\
- set(targetdir ${STUBBYCONFDIR})\n\
- if (\$ENV{DESTDIR})\n\
- set(targetdir \$ENV{DESTDIR}/\${targetdir})\n\
+ set(targetdir \"${STUBBYCONFDIR}\")\n\
+ set(destdir \"\$ENV{DESTDIR}\")\n\
+ if (destdir)\n\
+ string(REGEX REPLACE \"^([A-Z]:)?/(.*)\" \"\\\\2\" newtarget \"\${targetdir}\")\n\
+ if (newtarget)\n\
+ set(targetdir \"\${newtarget}\")\n\
+ endif ()\n\
+ set(targetdir \"\${destdir}/\${newtarget}\")\n\
endif ()\n\
- if (NOT EXISTS \${targetdir}/stubby.yml)\n\
- file(COPY ${CMAKE_CURRENT_BINARY_DIR}/stubby.yml DESTINATION \${targetdir})\n\
+ if (NOT EXISTS \"\${targetdir}/stubby.yml\")\n\
+ file(COPY \"${CMAKE_CURRENT_BINARY_DIR}/stubby.yml\" DESTINATION \"\${targetdir}\")\n\
+ message(\"-- Installing: \${targetdir}/stubby.yml\")\n\
endif ()")
if (APPLE)