diff options
Diffstat (limited to 'src/bin_proj.cmake')
| -rw-r--r-- | src/bin_proj.cmake | 38 |
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() |
