diff --git a/ports/geographiclib/CONTROL b/ports/geographiclib/CONTROL deleted file mode 100644 index a1c1aeff643c31..00000000000000 --- a/ports/geographiclib/CONTROL +++ /dev/null @@ -1,4 +0,0 @@ -Source: geographiclib -Version: 1.47-patch1-16 -Homepage: https://sourceforge.net/projects/geographiclib/ -Description: a small set of C++ classes for performing conversions between geographic, UTM, UPS, MGRS, geocentric, and local cartesian coordinates, for gravity (e.g., EGM2008), geoid height, and geomagnetic field (e.g., WMM2010) calculations, and for solving geodesic problems. diff --git a/ports/geographiclib/cxx-library-only.patch b/ports/geographiclib/cxx-library-only.patch new file mode 100644 index 00000000000000..88ffc812527b38 --- /dev/null +++ b/ports/geographiclib/cxx-library-only.patch @@ -0,0 +1,130 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 30875ddb..34aa6515 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -464,12 +464,12 @@ endif () + # documentation files into the source tree. Skip Apple here because + # man/makeusage.sh uses "head --lines -4" to drop the last 4 lines of a + # file and there's no simple equivalent for MacOSX +-if (NOT WIN32 AND NOT APPLE) ++if (NOT WIN32 AND NOT APPLE AND FALSE) + find_program (HAVE_POD2MAN pod2man) + find_program (HAVE_POD2HTML pod2html) + find_program (HAVE_COL col) + endif () +-if (HAVE_POD2MAN AND HAVE_POD2HTML AND HAVE_COL) ++if (HAVE_POD2MAN AND HAVE_POD2HTML AND HAVE_COL AND FALSE) + set (MAINTAINER ON) + else () + set (MAINTAINER OFF) +@@ -496,25 +496,34 @@ if (WIN32) + set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin") + endif () + ++if (SKIP_TOOLS) ++ set (TOOLS) ++ set (SCRIPTS) ++else () + # The list of tools (to be installed into, e.g., /usr/local/bin) + set (TOOLS CartConvert ConicProj GeodesicProj GeoConvert GeodSolve + GeoidEval Gravity MagneticField Planimeter RhumbSolve TransverseMercatorProj) + # The list of scripts (to be installed into, e.g., /usr/local/sbin) + set (SCRIPTS geographiclib-get-geoids geographiclib-get-gravity + geographiclib-get-magnetic) ++endif () + + set_property (GLOBAL PROPERTY USE_FOLDERS ON) + + # The list of subdirectories to process + add_subdirectory (src) + add_subdirectory (include/GeographicLib) ++if (NOT SKIP_TOOLS) + add_subdirectory (tools) ++endif () ++if (FALSE) + add_subdirectory (man) + add_subdirectory (doc) + add_subdirectory (js) + add_subdirectory (matlab) + add_subdirectory (python/geographiclib) + add_subdirectory (examples) ++endif () + if (MSVC AND BUILD_NETGEOGRAPHICLIB) + if (GEOGRAPHICLIB_PRECISION EQUAL 2) + set (NETGEOGRAPHICLIB_LIBRARIES NETGeographicLib) +diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt +index 90e773ba..c9a303b0 100644 +--- a/cmake/CMakeLists.txt ++++ b/cmake/CMakeLists.txt +@@ -33,10 +33,10 @@ configure_file (project-config.cmake.in + configure_file (project-config-version.cmake.in + "${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config-version.cmake" @ONLY) + export (TARGETS +- ${PROJECT_ALL_LIBRARIES} ${TOOLS} ++ ${PROJECT_ALL_LIBRARIES} + FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-targets.cmake") + export (TARGETS +- ${PROJECT_ALL_LIBRARIES} ${TOOLS} ++ ${PROJECT_ALL_LIBRARIES} + NAMESPACE ${PROJECT_NAME}:: + FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-namespace-targets.cmake") + +@@ -44,15 +44,9 @@ export (TARGETS + # ${INSTALL_CMAKE_DIR} and @PROJECT_ROOT_DIR@ is the relative + # path to the root from there. (Note that the whole install tree can + # be relocated.) +-if (COMMON_INSTALL_PATH) +- # Install under lib${LIB_SUFFIX} so that 32-bit and 64-bit packages +- # can be installed on a single machine. +- set (INSTALL_CMAKE_DIR "lib${LIB_SUFFIX}/cmake/${PROJECT_NAME}") +- set (PROJECT_ROOT_DIR "../../..") +-else () +- set (INSTALL_CMAKE_DIR "cmake") +- set (PROJECT_ROOT_DIR "..") +-endif () ++ set (INSTALL_CMAKE_DIR "share/${PROJECT_NAME_LOWER}") ++ set (PROJECT_ROOT_DIR "../..") ++ + # @PROJECT_INCLUDE_DIRS@ is not used in the install tree; reset + # it to prevent the source and build paths appearing in the installed + # config files +diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt +index b8c028c7..26e4ba14 100644 +--- a/tools/CMakeLists.txt ++++ b/tools/CMakeLists.txt +@@ -1,7 +1,7 @@ + # Build the tools... + + # Where to find the *.usage files for the --help option. +-include_directories (${PROJECT_BINARY_DIR}/man) ++include_directories (${PROJECT_SOURCE_DIR}/man) + # Only needed if target_compile_definitions is not supported + add_definitions (${PROJECT_DEFINITIONS}) + +@@ -16,7 +16,7 @@ foreach (TOOL ${TOOLS}) + add_dependencies (tools ${TOOL}) + + set_source_files_properties (${TOOL}.cpp PROPERTIES +- OBJECT_DEPENDS ${PROJECT_BINARY_DIR}/man/${TOOL}.usage) ++ OBJECT_DEPENDS ${PROJECT_SOURCE_DIR}/man/${TOOL}.usage) + + target_link_libraries (${TOOL} ${PROJECT_LIBRARIES} ${HIGHPREC_LIBRARIES}) + +@@ -35,7 +35,7 @@ if (APPLE) + endif () + + # Specify where the tools are installed, adding them to the export targets +-install (TARGETS ${TOOLS} EXPORT targets DESTINATION bin) ++install (TARGETS ${TOOLS} DESTINATION tools) + + if (MSVC AND PACKAGE_DEBUG_LIBS) + # Possibly don't EXPORT the debug versions of the tools and then this +@@ -55,7 +55,7 @@ set_property (TARGET tools ${TOOLS} PROPERTY FOLDER tools) + # systems. This needs to substitute ${GEOGRAPHICLIB_DATA} as the + # default data directory. These are installed under sbin, because it is + # expected to be run with write access to /usr/local. +-if (NOT WIN32) ++if (NOT WIN32 AND FALSE) + foreach (SCRIPT ${SCRIPTS}) + configure_file (${SCRIPT}.sh scripts/${SCRIPT} @ONLY) + add_custom_command (OUTPUT ${SCRIPT} diff --git a/ports/geographiclib/fix-usage.patch b/ports/geographiclib/fix-usage.patch deleted file mode 100644 index 9b558edf03b640..00000000000000 --- a/ports/geographiclib/fix-usage.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/cmake/project-config-version.cmake.in b/cmake/project-config-version.cmake.in -index 1f207b8..d469658 100644 ---- a/cmake/project-config-version.cmake.in -+++ b/cmake/project-config-version.cmake.in -@@ -22,9 +22,9 @@ elseif (NOT (APPLE OR (NOT DEFINED CMAKE_SIZEOF_VOID_P) OR - # Reject if there's a mismatch in MSVC compiler versions - # set (REASON "_MSC_VER = @MSVC_VERSION@") - # set (PACKAGE_VERSION_UNSUITABLE TRUE) --elseif (NOT CMAKE_CROSSCOMPILING STREQUAL "@CMAKE_CROSSCOMPILING@") -+elseif (NOT CMAKE_CROSSCOMPILING STREQUAL FALSE) - # Reject if there's a mismatch in ${CMAKE_CROSSCOMPILING} -- set (REASON "cross-compiling = @CMAKE_CROSSCOMPILING@") -+ set (REASON "cross-compiling = FALSE") - set (PACKAGE_VERSION_UNSUITABLE TRUE) - elseif (CMAKE_CROSSCOMPILING AND - NOT (CMAKE_SYSTEM_NAME STREQUAL "@CMAKE_SYSTEM_NAME@" AND diff --git a/ports/geographiclib/portfile.cmake b/ports/geographiclib/portfile.cmake index 8a2e8b0cbb4abf..988aef10b58290 100644 --- a/ports/geographiclib/portfile.cmake +++ b/ports/geographiclib/portfile.cmake @@ -1,46 +1,59 @@ -vcpkg_from_sourceforge( +vcpkg_from_sourceforge ( OUT_SOURCE_PATH SOURCE_PATH - REPO geographiclib/distrib - REF archive - FILENAME "GeographicLib-1.47-patch1.zip" - SHA512 d8fdfd7ae093057ec1a4ab922457fe71a3fb9975df5b673c276d62a0e9c4f212dc63652830b9d89e3890bc96aafd335992943cf6a1bce8260acf932d1eb7abfd - PATCHES - remove-tools-and-fix-version.patch - fix-usage.patch + REPO geographiclib + REF distrib + FILENAME "GeographicLib-1.50.1.tar.gz" + SHA512 1db874f30957a0edb8a1df3eee6db73cc993629e3005fe912e317a4ba908e7d7580ce483bb0054c4b46370b8edaec989609fb7e4eb6ba00c80182db43db436f1 + PATCHES cxx-library-only.patch ) -if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) - vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - OPTIONS -DGEOGRAPHICLIB_LIB_TYPE=SHARED - PREFER_NINJA # Disable this option if project cannot be built with Ninja - # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 - # OPTIONS_RELEASE -DOPTIMIZE=1 - # OPTIONS_DEBUG -DDEBUGGABLE=1 - ) -else() - vcpkg_configure_cmake( - SOURCE_PATH ${SOURCE_PATH} - OPTIONS -DGEOGRAPHICLIB_LIB_TYPE=STATIC - PREFER_NINJA # Disable this option if project cannot be built with Ninja - # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 - # OPTIONS_RELEASE -DOPTIMIZE=1 - # OPTIONS_DEBUG -DDEBUGGABLE=1 - ) -endif() - -vcpkg_install_cmake() - -if (VCPKG_TARGET_IS_WINDOWS) - vcpkg_fixup_cmake_targets(CONFIG_PATH cmake) -else() - vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/GeographicLib) -endif() -vcpkg_copy_pdbs() - -file(COPY ${CURRENT_PACKAGES_DIR}/lib/pkgconfig DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/pkgconfig) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) - -file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file +vcpkg_check_features ( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + INVERTED_FEATURES + "tools" SKIP_TOOLS +) + +if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + set (LIB_TYPE "SHARED") +else () + set (LIB_TYPE "STATIC") +endif () + +if (tools IN_LIST FEATURES) + vcpkg_fail_port_install ( + MESSAGE "Cannot build GeographicLib tools for UWP" + ON_TARGET uwp + ) +endif () + +vcpkg_configure_cmake ( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + "-DGEOGRAPHICLIB_LIB_TYPE=${LIB_TYPE}" + ${FEATURE_OPTIONS} + PREFER_NINJA # Disable this option if project cannot be built with Ninja +) + +vcpkg_install_cmake () +vcpkg_fixup_cmake_targets (CONFIG_PATH share/geographiclib) +vcpkg_copy_pdbs () + +file (GLOB TOOL_LIST LIST_DIRECTORIES false + ${CURRENT_PACKAGES_DIR}/tools/*) +if (TOOL_LIST) + file (INSTALL ${TOOL_LIST} + DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") + vcpkg_copy_tool_dependencies (${CURRENT_PACKAGES_DIR}/tools/${PORT}) + file (REMOVE ${TOOL_LIST}) +endif () + +file (REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file (REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file (REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools) +file (INSTALL ${SOURCE_PATH}/LICENSE.txt + DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} + RENAME copyright) + +# Install usage +configure_file (${CMAKE_CURRENT_LIST_DIR}/usage + ${CURRENT_PACKAGES_DIR}/share/${PORT}/usage @ONLY) diff --git a/ports/geographiclib/remove-tools-and-fix-version.patch b/ports/geographiclib/remove-tools-and-fix-version.patch deleted file mode 100644 index d4f94e02c000b9..00000000000000 --- a/ports/geographiclib/remove-tools-and-fix-version.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e79923b..3448362 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -437,13 +437,13 @@ set_property (GLOBAL PROPERTY USE_FOLDERS ON) - # The list of subdirectories to process - add_subdirectory (src) - add_subdirectory (include/GeographicLib) --add_subdirectory (tools) --add_subdirectory (man) --add_subdirectory (doc) --add_subdirectory (js) --add_subdirectory (matlab) --add_subdirectory (python/geographiclib) --add_subdirectory (examples) -+# add_subdirectory (tools) -+# add_subdirectory (man) -+# add_subdirectory (doc) -+# add_subdirectory (js) -+# add_subdirectory (matlab) -+# add_subdirectory (python/geographiclib) -+# add_subdirectory (examples) - if (MSVC AND BUILD_NETGEOGRAPHICLIB) - if (GEOGRAPHICLIB_PRECISION EQUAL 2) - set (NETGEOGRAPHICLIB_LIBRARIES NETGeographicLib) -diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt -index 0c8ad64..7dc4096 100644 ---- a/cmake/CMakeLists.txt -+++ b/cmake/CMakeLists.txt -@@ -14,10 +14,10 @@ configure_file (project-config.cmake.in - configure_file (project-config-version.cmake.in - "${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config-version.cmake" @ONLY) - export (TARGETS -- ${PROJECT_SHARED_LIBRARIES} ${PROJECT_STATIC_LIBRARIES} ${TOOLS} -+ ${PROJECT_SHARED_LIBRARIES} ${PROJECT_STATIC_LIBRARIES} - FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-targets.cmake") - export (TARGETS -- ${PROJECT_SHARED_LIBRARIES} ${PROJECT_STATIC_LIBRARIES} ${TOOLS} -+ ${PROJECT_SHARED_LIBRARIES} ${PROJECT_STATIC_LIBRARIES} - NAMESPACE ${PROJECT_NAME}:: - FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-namespace-targets.cmake") - -diff --git a/cmake/project-config-version.cmake.in b/cmake/project-config-version.cmake.in -index 3b3b9e8..bc2ce19 100644 ---- a/cmake/project-config-version.cmake.in -+++ b/cmake/project-config-version.cmake.in -@@ -18,10 +18,10 @@ elseif (NOT (APPLE OR (NOT DEFINED CMAKE_SIZEOF_VOID_P) OR - # since a multi-architecture library is built for that platform). - set (REASON "sizeof(*void) = @CMAKE_SIZEOF_VOID_P@") - set (PACKAGE_VERSION_UNSUITABLE TRUE) --elseif (MSVC AND NOT MSVC_VERSION STREQUAL "@MSVC_VERSION@") -+#elseif (MSVC AND NOT MSVC_VERSION STREQUAL "@MSVC_VERSION@") - # Reject if there's a mismatch in MSVC compiler versions -- set (REASON "_MSC_VER = @MSVC_VERSION@") -- set (PACKAGE_VERSION_UNSUITABLE TRUE) -+# set (REASON "_MSC_VER = @MSVC_VERSION@") -+# set (PACKAGE_VERSION_UNSUITABLE TRUE) - elseif (NOT CMAKE_CROSSCOMPILING STREQUAL "@CMAKE_CROSSCOMPILING@") - # Reject if there's a mismatch in ${CMAKE_CROSSCOMPILING} - set (REASON "cross-compiling = @CMAKE_CROSSCOMPILING@") diff --git a/ports/geographiclib/usage b/ports/geographiclib/usage index 7ba01a433dd809..b4834435d5954b 100644 --- a/ports/geographiclib/usage +++ b/ports/geographiclib/usage @@ -1,8 +1,4 @@ -The package geographiclib:x64-linux provides CMake targets: - - find_package(GeographicLib CONFIG REQUIRED) - #dynamic - target_link_libraries(main PRIVATE GeographicLib GeographicLib::GeographicLib) - #static - target_link_libraries(main PRIVATE GeographicLib_STATIC GeographicLib::GeographicLib_STATIC) - \ No newline at end of file +The package @PORT@:@TARGET_TRIPLET@ provides CMake targets: + + find_package (GeographicLib CONFIG REQUIRED) + target_link_libraries (main PRIVATE ${GeographicLib_LIBRARIES}) diff --git a/ports/geographiclib/vcpkg.json b/ports/geographiclib/vcpkg.json new file mode 100644 index 00000000000000..a60a5e7db2e1dc --- /dev/null +++ b/ports/geographiclib/vcpkg.json @@ -0,0 +1,12 @@ +{ + "name": "geographiclib", + "version-string": "1.50.1", + "homepage": "https://geographiclib.sourceforge.io", + "description": "GeographicLib, a C++ library for performing geographic conversions", + "features": [ + { + "name": "tools", + "description": "The GeographicLib tools" + } + ] +}