aboutsummaryrefslogtreecommitdiff
path: root/src/bin_proj.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin_proj.cmake')
-rw-r--r--src/bin_proj.cmake32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/bin_proj.cmake b/src/bin_proj.cmake
index b5a4c140..2976b3da 100644
--- a/src/bin_proj.cmake
+++ b/src/bin_proj.cmake
@@ -19,3 +19,35 @@ install(TARGETS binproj
if(MSVC AND BUILD_SHARED_LIBS)
target_compile_definitions(binproj PRIVATE PROJ_MSVC_DLL_IMPORT=1)
endif()
+
+# invproj target: symlink or copy of proj executable
+
+set(link_target "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/invproj${CMAKE_EXECUTABLE_SUFFIX}")
+set(link_source "proj${CMAKE_EXECUTABLE_SUFFIX}")
+
+if(UNIX)
+ add_custom_command(
+ OUTPUT ${link_target}
+ COMMAND ${CMAKE_COMMAND} -E create_symlink ${link_source} ${link_target}
+ WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
+ DEPENDS binproj
+ COMMENT "Generating invproj"
+ VERBATIM
+ )
+else()
+ # symlinks are supported on Windows in cmake >= 3.17, but
+ # symlinks on Windows are a bit tricky, so just copy
+
+ add_custom_command(
+ OUTPUT ${link_target}
+ COMMAND ${CMAKE_COMMAND} -E copy ${link_source} ${link_target}
+ WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
+ DEPENDS binproj
+ COMMENT "Generating invproj"
+ VERBATIM
+ )
+endif()
+
+add_custom_target(invproj ALL DEPENDS ${link_target})
+
+install(FILES ${link_target} DESTINATION ${BINDIR})