[geotrans] add new port (#5498)

This commit is contained in:
Todd 2019-03-08 15:39:22 -06:00 committed by Victor Romero
parent 1d8e65482f
commit 350f70031b
5 changed files with 204 additions and 0 deletions

View File

@ -0,0 +1,142 @@
cmake_minimum_required(VERSION 3.10)
project(geotrans CXX)
file(GLOB_RECURSE DTCC_CPP CCS/src/dtcc/*.cpp)
include_directories(
CCS/src/dtcc
CCS/src/dtcc/Enumerations
CCS/src/dtcc/Exception
CCS/src/dtcc/CoordinateSystemParameters
CCS/src/dtcc/CoordinateSystems
CCS/src/dtcc/CoordinateSystems/albers
CCS/src/dtcc/CoordinateSystems/bonne
CCS/src/dtcc/CoordinateSystems/datum
CCS/src/dtcc/CoordinateSystems/ellipse
CCS/src/dtcc/CoordinateSystems/geocent
CCS/src/dtcc/CoordinateSystems/grinten
CCS/src/dtcc/CoordinateSystems/mercator
CCS/src/dtcc/CoordinateSystems/misc
CCS/src/dtcc/CoordinateSystems/nzmg
CCS/src/dtcc/CoordinateSystems/polarst
CCS/src/dtcc/CoordinateSystems/stereogr
CCS/src/dtcc/CoordinateSystems/trcyleqa
CCS/src/dtcc/CoordinateSystems/utm
CCS/src/dtcc/CoordinateSystems/azeq
CCS/src/dtcc/CoordinateSystems/cassini
CCS/src/dtcc/CoordinateSystems/eckert4
CCS/src/dtcc/CoordinateSystems/eqdcyl
CCS/src/dtcc/CoordinateSystems/georef
CCS/src/dtcc/CoordinateSystems/lambert
CCS/src/dtcc/CoordinateSystems/mgrs
CCS/src/dtcc/CoordinateSystems/mollweid
CCS/src/dtcc/CoordinateSystems/omerc
CCS/src/dtcc/CoordinateSystems/polycon
CCS/src/dtcc/CoordinateSystems/threads
CCS/src/dtcc/CoordinateSystems/ups
CCS/src/dtcc/CoordinateSystems/webmerc
CCS/src/dtcc/CoordinateSystems/bng
CCS/src/dtcc/CoordinateSystems/cyleqa
CCS/src/dtcc/CoordinateSystems/eckert6
CCS/src/dtcc/CoordinateSystems/gars
CCS/src/dtcc/CoordinateSystems/gnomonic
CCS/src/dtcc/CoordinateSystems/loccart
CCS/src/dtcc/CoordinateSystems/miller
CCS/src/dtcc/CoordinateSystems/neys
CCS/src/dtcc/CoordinateSystems/orthogr
CCS/src/dtcc/CoordinateSystems/sinusoid
CCS/src/dtcc/CoordinateSystems/tranmerc
CCS/src/dtcc/CoordinateSystems/usng
CCS/src/dtcc/CoordinateTuples
)
set(DTCC_INCLUDES
include/dtcc/
include/dtcc/Enumerations
include/dtcc/Exception
include/dtcc/CoordinateSystemParameters
include/dtcc/CoordinateSystems
include/dtcc/CoordinateSystems/albers
include/dtcc/CoordinateSystems/bonne
include/dtcc/CoordinateSystems/datum
include/dtcc/CoordinateSystems/ellipse
include/dtcc/CoordinateSystems/geocent
include/dtcc/CoordinateSystems/grinten
include/dtcc/CoordinateSystems/mercator
include/dtcc/CoordinateSystems/misc
include/dtcc/CoordinateSystems/nzmg
include/dtcc/CoordinateSystems/polarst
include/dtcc/CoordinateSystems/stereogr
include/dtcc/CoordinateSystems/trcyleqa
include/dtcc/CoordinateSystems/utm
include/dtcc/CoordinateSystems/azeq
include/dtcc/CoordinateSystems/cassini
include/dtcc/CoordinateSystems/eckert4
include/dtcc/CoordinateSystems/eqdcyl
include/dtcc/CoordinateSystems/georef
include/dtcc/CoordinateSystems/lambert
include/dtcc/CoordinateSystems/mgrs
include/dtcc/CoordinateSystems/mollweid
include/dtcc/CoordinateSystems/omerc
include/dtcc/CoordinateSystems/polycon
include/dtcc/CoordinateSystems/threads
include/dtcc/CoordinateSystems/ups
include/dtcc/CoordinateSystems/webmerc
include/dtcc/CoordinateSystems/bng
include/dtcc/CoordinateSystems/cyleqa
include/dtcc/CoordinateSystems/eckert6
include/dtcc/CoordinateSystems/gars
include/dtcc/CoordinateSystems/gnomonic
include/dtcc/CoordinateSystems/loccart
include/dtcc/CoordinateSystems/miller
include/dtcc/CoordinateSystems/neys
include/dtcc/CoordinateSystems/orthogr
include/dtcc/CoordinateSystems/sinusoid
include/dtcc/CoordinateSystems/tranmerc
include/dtcc/CoordinateSystems/usng
include/dtcc/CoordinateTuples
)
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)

3
ports/geotrans/CONTROL Normal file
View File

@ -0,0 +1,3 @@
Source: geotrans
Version: 3.7
Description: Geotrans is a library that allows you convert geographic coordinates among a wide variety of coordinate systems, map projections, and datums.

View File

@ -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)

View File

@ -0,0 +1,41 @@
include(vcpkg_common_functions)
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 "http://earth-info.nga.mil/GandG/geotrans/geotrans3.7/linux_dev.tgz"
FILENAME "geotrans-3.7.tgz"
SHA512 20bdc870026e95154f1d7f9560cbfa2c0b2dc39042aa544f093b502a0609121cb47df5729248e0d79ccf8f9908bf01bbcea8e777ae4f45e25472b7ce2bcb9742
)
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
)
vcpkg_install_cmake()
configure_file(
${CMAKE_CURRENT_LIST_DIR}/geotrans-config.in.cmake
${CURRENT_PACKAGES_DIR}/share/geotrans/geotrans-config.cmake
@ONLY
)
configure_file(${CMAKE_CURRENT_LIST_DIR}/usage ${CURRENT_PACKAGES_DIR}/share/${PORT} @ONLY)
# Handle copyright
file(INSTALL ${SOURCE_PATH}/GEOTRANS3/docs/MSP_Geotrans_Terms_Of_Use.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/geotrans RENAME copyright)
# Install the geo model data
file(COPY ${SOURCE_PATH}/data DESTINATION ${CURRENT_PACKAGES_DIR}/share/geotrans)

11
ports/geotrans/usage Normal file
View File

@ -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=@CURRENT_INSTALLED_DIR@/share/@PORT@/data