aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin_geod.cmake32
-rw-r--r--src/bin_proj.cmake32
2 files changed, 64 insertions, 0 deletions
diff --git a/src/bin_geod.cmake b/src/bin_geod.cmake
index 4ec28b04..4d91628a 100644
--- a/src/bin_geod.cmake
+++ b/src/bin_geod.cmake
@@ -18,3 +18,35 @@ install(TARGETS geod
if(MSVC AND BUILD_SHARED_LIBS)
target_compile_definitions(geod PRIVATE PROJ_MSVC_DLL_IMPORT=1)
endif()
+
+# invgeod target: symlink or copy of geod executable
+
+set(link_target "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/invgeod${CMAKE_EXECUTABLE_SUFFIX}")
+set(link_source "geod${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 geod
+ COMMENT "Generating invgeod"
+ 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 geod
+ COMMENT "Generating invgeod"
+ VERBATIM
+ )
+endif()
+
+add_custom_target(invgeod ALL DEPENDS ${link_target})
+
+install(FILES ${link_target} DESTINATION ${BINDIR})
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})