diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/geotrans | |
Diffstat (limited to 'vcpkg/ports/geotrans')
| -rw-r--r-- | vcpkg/ports/geotrans/CMakeLists.txt | 151 | ||||
| -rw-r--r-- | vcpkg/ports/geotrans/geotrans-config.in.cmake | 7 | ||||
| -rw-r--r-- | vcpkg/ports/geotrans/portfile.cmake | 36 | ||||
| -rw-r--r-- | vcpkg/ports/geotrans/usage | 11 | ||||
| -rw-r--r-- | vcpkg/ports/geotrans/vcpkg.json | 14 |
5 files changed, 219 insertions, 0 deletions
diff --git a/vcpkg/ports/geotrans/CMakeLists.txt b/vcpkg/ports/geotrans/CMakeLists.txt new file mode 100644 index 0000000..f2deeda --- /dev/null +++ b/vcpkg/ports/geotrans/CMakeLists.txt @@ -0,0 +1,151 @@ +cmake_minimum_required(VERSION 3.10) +project(geotrans CXX) + +file(GLOB_RECURSE DTCC_CPP CCS/src/dtcc/*.cpp) +include_directories( +CCS/src/CoordinateConversion +CCS/src/dtcc +CCS/src/dtcc/CoordinateSystemParameters +CCS/src/dtcc/CoordinateSystems +CCS/src/dtcc/CoordinateSystems/albers +CCS/src/dtcc/CoordinateSystems/azeq +CCS/src/dtcc/CoordinateSystems/bng +CCS/src/dtcc/CoordinateSystems/bonne +CCS/src/dtcc/CoordinateSystems/cassini +CCS/src/dtcc/CoordinateSystems/cyleqa +CCS/src/dtcc/CoordinateSystems/datum +CCS/src/dtcc/CoordinateSystems/eckert4 +CCS/src/dtcc/CoordinateSystems/eckert6 +CCS/src/dtcc/CoordinateSystems/ellipse +CCS/src/dtcc/CoordinateSystems/eqdcyl +CCS/src/dtcc/CoordinateSystems/gars +CCS/src/dtcc/CoordinateSystems/geocent +CCS/src/dtcc/CoordinateSystems/georef +CCS/src/dtcc/CoordinateSystems/gnomonic +CCS/src/dtcc/CoordinateSystems/grinten +CCS/src/dtcc/CoordinateSystems/lambert +CCS/src/dtcc/CoordinateSystems/loccart +CCS/src/dtcc/CoordinateSystems/locspher +CCS/src/dtcc/CoordinateSystems/mercator +CCS/src/dtcc/CoordinateSystems/mgrs +CCS/src/dtcc/CoordinateSystems/miller +CCS/src/dtcc/CoordinateSystems/misc +CCS/src/dtcc/CoordinateSystems/mollweid +CCS/src/dtcc/CoordinateSystems/neys +CCS/src/dtcc/CoordinateSystems/nzmg +CCS/src/dtcc/CoordinateSystems/omerc +CCS/src/dtcc/CoordinateSystems/orthogr +CCS/src/dtcc/CoordinateSystems/polarst +CCS/src/dtcc/CoordinateSystems/polycon +CCS/src/dtcc/CoordinateSystems/sinusoid +CCS/src/dtcc/CoordinateSystems/spherical +CCS/src/dtcc/CoordinateSystems/stereogr +CCS/src/dtcc/CoordinateSystems/threads +CCS/src/dtcc/CoordinateSystems/tranmerc +CCS/src/dtcc/CoordinateSystems/trcyleqa +CCS/src/dtcc/CoordinateSystems/ups +CCS/src/dtcc/CoordinateSystems/usng +CCS/src/dtcc/CoordinateSystems/utm +CCS/src/dtcc/CoordinateSystems/webmerc +CCS/src/dtcc/CoordinateTuples +CCS/src/dtcc/Enumerations +CCS/src/dtcc/Exception +) +set(DTCC_INCLUDES +include/CoordinateConversion +include/dtcc/ +include/dtcc/CoordinateSystemParameters +include/dtcc/CoordinateSystems +include/dtcc/CoordinateSystems/albers +include/dtcc/CoordinateSystems/azeq +include/dtcc/CoordinateSystems/bng +include/dtcc/CoordinateSystems/bonne +include/dtcc/CoordinateSystems/cassini +include/dtcc/CoordinateSystems/cyleqa +include/dtcc/CoordinateSystems/datum +include/dtcc/CoordinateSystems/eckert4 +include/dtcc/CoordinateSystems/eckert6 +include/dtcc/CoordinateSystems/ellipse +include/dtcc/CoordinateSystems/eqdcyl +include/dtcc/CoordinateSystems/gars +include/dtcc/CoordinateSystems/geocent +include/dtcc/CoordinateSystems/georef +include/dtcc/CoordinateSystems/gnomonic +include/dtcc/CoordinateSystems/grinten +include/dtcc/CoordinateSystems/lambert +include/dtcc/CoordinateSystems/loccart +include/dtcc/CoordinateSystems/locspher +include/dtcc/CoordinateSystems/mercator +include/dtcc/CoordinateSystems/mgrs +include/dtcc/CoordinateSystems/miller +include/dtcc/CoordinateSystems/misc +include/dtcc/CoordinateSystems/mollweid +include/dtcc/CoordinateSystems/neys +include/dtcc/CoordinateSystems/nzmg +include/dtcc/CoordinateSystems/omerc +include/dtcc/CoordinateSystems/orthogr +include/dtcc/CoordinateSystems/polarst +include/dtcc/CoordinateSystems/polycon +include/dtcc/CoordinateSystems/sinusoid +include/dtcc/CoordinateSystems/spherical +include/dtcc/CoordinateSystems/stereogr +include/dtcc/CoordinateSystems/threads +include/dtcc/CoordinateSystems/tranmerc +include/dtcc/CoordinateSystems/trcyleqa +include/dtcc/CoordinateSystems/ups +include/dtcc/CoordinateSystems/usng +include/dtcc/CoordinateSystems/utm +include/dtcc/CoordinateSystems/webmerc +include/dtcc/CoordinateTuples +include/dtcc/Enumerations +include/dtcc/Exception +) + +if(WIN32) + add_definitions(-DLITTLE_ENDIAN) +endif() + +add_library(MSPdtcc ${DTCC_CPP}) +add_library(MSPCoordinateConversionService CCS/src/CoordinateConversion/CoordinateConversionService.cpp ${DTCC_CPP}) + +target_include_directories(MSPdtcc INTERFACE "$<INSTALL_INTERFACE:${DTCC_INCLUDES}>") +target_include_directories(MSPCoordinateConversionService INTERFACE $<INSTALL_INTERFACE:include/CoordinateConversion>) + +if(WIN32) + if (BUILD_SHARED_LIBS) + add_definitions( + -DMSP_CCS_EXPORTS + -D_USRDLL + ) + endif() + add_definitions(-D_CRT_SECURE_NO_WARNINGS) +else() + find_package(Threads REQUIRED) + target_link_libraries(MSPdtcc PRIVATE Threads::Threads ${CMAKE_DL_LIBS}) +endif() + + +install( + TARGETS MSPdtcc + EXPORT geotrans + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +install( + TARGETS MSPCoordinateConversionService + EXPORT geotrans + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +install(DIRECTORY "${CMAKE_SOURCE_DIR}/CCS/src/" + DESTINATION "include" + CONFIGURATIONS Release + FILES_MATCHING + PATTERN "*.h" +) + +install(EXPORT geotrans NAMESPACE geotrans:: DESTINATION share/geotrans CONFIGURATIONS Release) diff --git a/vcpkg/ports/geotrans/geotrans-config.in.cmake b/vcpkg/ports/geotrans/geotrans-config.in.cmake new file mode 100644 index 0000000..f25224c --- /dev/null +++ b/vcpkg/ports/geotrans/geotrans-config.in.cmake @@ -0,0 +1,7 @@ + +if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static" AND NOT WIN32) + include(CMakeFindDependencyMacro) + find_dependency(Threads) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/geotrans.cmake) diff --git a/vcpkg/ports/geotrans/portfile.cmake b/vcpkg/ports/geotrans/portfile.cmake new file mode 100644 index 0000000..f402db9 --- /dev/null +++ b/vcpkg/ports/geotrans/portfile.cmake @@ -0,0 +1,36 @@ +set(VCPKG_LIBRARY_LINKAGE "dynamic") + +# We specify the Linux URL, but the only difference between the Windows/Linux packages are the included libraries +# which we re-build anyway. There is no source only package provided or it would be preferred (and smaller). +vcpkg_download_distfile(ARCHIVE + URLS "https://earth-info.nga.mil/php/download.php?file=wgs-mastertgz" + FILENAME "geotrans-3.10-master-501325b.tgz" + SHA512 501e25b80bd92a9651a6879ee42768abff9871cec3c79d457b0e74940e6fd3a477d98568dea0c4a4da2aa251ada11e17ab76edf5bcbdbde68e0e5cfe1813491f +) + +vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" +) + +vcpkg_cmake_install() + +configure_file( + "${CMAKE_CURRENT_LIST_DIR}/geotrans-config.in.cmake" + "${CURRENT_PACKAGES_DIR}/share/${PORT}/geotrans-config.cmake" + @ONLY +) + +configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}" @ONLY) + +# Handle copyright +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/GEOTRANS3/docs/MSP_Geotrans_Terms_Of_Use.txt") + +# Install the geo model data +file(COPY "${SOURCE_PATH}/data" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") diff --git a/vcpkg/ports/geotrans/usage b/vcpkg/ports/geotrans/usage new file mode 100644 index 0000000..13533b4 --- /dev/null +++ b/vcpkg/ports/geotrans/usage @@ -0,0 +1,11 @@ +The package geotrans provides CMake targets: + + find_package(geotrans CONFIG REQUIRED) + target_link_libraries(main PRIVATE geotrans::MSPdtcc geotrans::MSPCoordinateConversionService) + + +The geotrans library depends on being able to read it's model data so you'll need to +set an environment variable to let geotrans know where the models are installed: + +export MSPCCS_DATA=<path_to_vcpkg_installed>/share/@PORT@/data + diff --git a/vcpkg/ports/geotrans/vcpkg.json b/vcpkg/ports/geotrans/vcpkg.json new file mode 100644 index 0000000..6af264e --- /dev/null +++ b/vcpkg/ports/geotrans/vcpkg.json @@ -0,0 +1,14 @@ +{ + "name": "geotrans", + "version": "3.10", + "description": "GEOTRANS is an application that allows you to convert geographic coordinates among a wide variety of coordinate systems, map projections, grids, and datums. GEOTRANS runs in Microsoft Windows and LINUX environments.", + "homepage": "https://earth-info.nga.mil/GandG/update/index.php?action=home", + "license": null, + "supports": "!uwp & !osx", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + } + ] +} |