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