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.cmake38
1 files changed, 22 insertions, 16 deletions
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()