aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin_geod.cmake35
-rw-r--r--src/bin_proj.cmake38
2 files changed, 41 insertions, 32 deletions
diff --git a/src/bin_geod.cmake b/src/bin_geod.cmake
index 4d91628a..3f3f9bf5 100644
--- a/src/bin_geod.cmake
+++ b/src/bin_geod.cmake
@@ -21,10 +21,11 @@ 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)
+
+ set(link_target "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/invgeod${CMAKE_EXECUTABLE_SUFFIX}")
+ set(link_source "geod${CMAKE_EXECUTABLE_SUFFIX}")
+
add_custom_command(
OUTPUT ${link_target}
COMMAND ${CMAKE_COMMAND} -E create_symlink ${link_source} ${link_target}
@@ -33,20 +34,22 @@ if(UNIX)
COMMENT "Generating invgeod"
VERBATIM
)
+
+ add_custom_target(invgeod ALL DEPENDS ${link_target})
+
+ install(FILES ${link_target} DESTINATION ${BINDIR})
+
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_executable(invgeod ${GEOD_SRC} ${GEOD_INCLUDE})
+ target_link_libraries(invgeod PRIVATE ${PROJ_LIBRARIES})
+ target_compile_options(invgeod PRIVATE ${PROJ_CXX_WARN_FLAGS})
-add_custom_target(invgeod ALL DEPENDS ${link_target})
+ install(TARGETS invgeod
+ DESTINATION ${BINDIR})
-install(FILES ${link_target} DESTINATION ${BINDIR})
+ if(MSVC AND BUILD_SHARED_LIBS)
+ target_compile_definitions(invgeod PRIVATE PROJ_MSVC_DLL_IMPORT=1)
+ endif()
+
+endif()
diff --git a/src/bin_proj.cmake b/src/bin_proj.cmake
index 2976b3da..163303f8 100644
--- a/src/bin_proj.cmake
+++ b/src/bin_proj.cmake
@@ -22,10 +22,11 @@ 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)
+
+ set(link_target "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/invproj${CMAKE_EXECUTABLE_SUFFIX}")
+ set(link_source "proj${CMAKE_EXECUTABLE_SUFFIX}")
+
add_custom_command(
OUTPUT ${link_target}
COMMAND ${CMAKE_COMMAND} -E create_symlink ${link_source} ${link_target}
@@ -34,20 +35,25 @@ if(UNIX)
COMMENT "Generating invproj"
VERBATIM
)
+
+ add_custom_target(invproj ALL DEPENDS ${link_target})
+
+ install(FILES ${link_target} DESTINATION ${BINDIR})
+
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_executable(invproj ${PROJ_SRC})
+ set_target_properties(invproj
+ PROPERTIES
+ RUNTIME_OUTPUT_NAME proj)
+ target_link_libraries(invproj PRIVATE ${PROJ_LIBRARIES})
+ target_compile_options(invproj PRIVATE ${PROJ_CXX_WARN_FLAGS})
-add_custom_target(invproj ALL DEPENDS ${link_target})
+ install(TARGETS invproj
+ DESTINATION ${BINDIR})
-install(FILES ${link_target} DESTINATION ${BINDIR})
+ if(MSVC AND BUILD_SHARED_LIBS)
+ target_compile_definitions(invproj PRIVATE PROJ_MSVC_DLL_IMPORT=1)
+ endif()
+
+endif()