diff options
Diffstat (limited to 'vcpkg/ports/gtsam')
| -rw-r--r-- | vcpkg/ports/gtsam/build-fixes.patch | 73 | ||||
| -rw-r--r-- | vcpkg/ports/gtsam/path-fixes.patch | 33 | ||||
| -rw-r--r-- | vcpkg/ports/gtsam/portfile.cmake | 39 | ||||
| -rw-r--r-- | vcpkg/ports/gtsam/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/gtsam/vcpkg.json | 34 |
5 files changed, 183 insertions, 0 deletions
diff --git a/vcpkg/ports/gtsam/build-fixes.patch b/vcpkg/ports/gtsam/build-fixes.patch new file mode 100644 index 0000000..70d9a32 --- /dev/null +++ b/vcpkg/ports/gtsam/build-fixes.patch @@ -0,0 +1,73 @@ +diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in +index cc2a7df8f..e11de1815 100644 +--- a/cmake/Config.cmake.in ++++ b/cmake/Config.cmake.in +@@ -25,6 +25,14 @@ if(@GTSAM_USE_SYSTEM_EIGEN@) + find_dependency(Eigen3 REQUIRED) + endif() + ++if(@GTSAM_USE_SYSTEM_METIS@) ++find_dependency(metis REQUIRED) ++endif() ++ ++if(@GTSAM_USE_TBB@) ++find_dependency(TBB REQUIRED) ++endif() ++ + # Load exports + include(${OUR_CMAKE_DIR}/@PACKAGE_NAME@-exports.cmake) + +diff --git a/cmake/FindTBB.cmake b/cmake/FindTBB.cmake +index 0ecd4ca0e..725589a2d 100644 +--- a/cmake/FindTBB.cmake ++++ b/cmake/FindTBB.cmake +@@ -1,3 +1,4 @@ ++if(0) + # The MIT License (MIT) + # + # Copyright (c) 2015 Justus Calvin +@@ -321,3 +322,4 @@ if(NOT TBB_FOUND) + unset(TBB_DEFAULT_SEARCH_DIR) + + endif() ++endif() +\ No newline at end of file +diff --git a/cmake/HandleMetis.cmake b/cmake/HandleMetis.cmake +index 5cbec4ff5..10dbb53de 100644 +--- a/cmake/HandleMetis.cmake ++++ b/cmake/HandleMetis.cmake +@@ -13,10 +13,9 @@ option(GTSAM_USE_SYSTEM_METIS "Find and use system-installed libmetis. If 'off', + if(GTSAM_USE_SYSTEM_METIS) + # Debian package: libmetis-dev + +- find_path(METIS_INCLUDE_DIR metis.h REQUIRED) +- find_library(METIS_LIBRARY metis REQUIRED) ++ find_package(metis CONFIG REQUIRED) + +- if(METIS_INCLUDE_DIR AND METIS_LIBRARY) ++ if(metis_FOUND) + mark_as_advanced(METIS_INCLUDE_DIR) + mark_as_advanced(METIS_LIBRARY) + +@@ -27,7 +26,7 @@ if(GTSAM_USE_SYSTEM_METIS) + $<BUILD_INTERFACE:${GTSAM_SOURCE_DIR}/gtsam/3rdparty/metis/libmetis> + $<BUILD_INTERFACE:${GTSAM_SOURCE_DIR}/gtsam/3rdparty/metis/GKlib> + ) +- target_link_libraries(metis-gtsam-if INTERFACE ${METIS_LIBRARY}) ++ target_link_libraries(metis-gtsam-if INTERFACE ${METIS_LIBRARY} metis) + endif() + else() + # Bundled version: +diff --git a/cmake/HandleTBB.cmake b/cmake/HandleTBB.cmake +index fb944ba5b..393aeb345 100644 +--- a/cmake/HandleTBB.cmake ++++ b/cmake/HandleTBB.cmake +@@ -14,7 +14,7 @@ if (GTSAM_WITH_TBB) + endif() + # all definitions and link requisites will go via imported targets: + # tbb & tbbmalloc +- list(APPEND GTSAM_ADDITIONAL_LIBRARIES tbb tbbmalloc) ++ list(APPEND GTSAM_ADDITIONAL_LIBRARIES TBB::tbb TBB::tbbmalloc) + else() + set(GTSAM_USE_TBB 0) # This will go into config.h + endif() diff --git a/vcpkg/ports/gtsam/path-fixes.patch b/vcpkg/ports/gtsam/path-fixes.patch new file mode 100644 index 0000000..5fc9784 --- /dev/null +++ b/vcpkg/ports/gtsam/path-fixes.patch @@ -0,0 +1,33 @@ +diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in +index e11de1815..a25a9883d 100644 +--- a/cmake/Config.cmake.in ++++ b/cmake/Config.cmake.in +@@ -4,13 +4,8 @@ + + # Compute paths + get_filename_component(OUR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +-if(EXISTS "${OUR_CMAKE_DIR}/CMakeCache.txt") +- # In build tree +- set(@PACKAGE_NAME@_INCLUDE_DIR @GTSAM_SOURCE_DIR@ CACHE PATH "@PACKAGE_NAME@ include directory") +-else() +- # Find installed library +- set(@PACKAGE_NAME@_INCLUDE_DIR "${OUR_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@" CACHE PATH "@PACKAGE_NAME@ include directory") +-endif() ++# Find installed library ++set(@PACKAGE_NAME@_INCLUDE_DIR "${OUR_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@" CACHE PATH "@PACKAGE_NAME@ include directory") + + # Find dependencies, required by cmake exported targets: + include(CMakeFindDependencyMacro) +diff --git a/gtsam/config.h.in b/gtsam/config.h.in +index d47329a62..60ca62931 100644 +--- a/gtsam/config.h.in ++++ b/gtsam/config.h.in +@@ -25,7 +25,7 @@ + #define GTSAM_VERSION_STRING "@GTSAM_VERSION_STRING@" + + // Paths to example datasets distributed with GTSAM +-#define GTSAM_SOURCE_TREE_DATASET_DIR "@GTSAM_SOURCE_DIR@/examples/Data" ++#define GTSAM_SOURCE_TREE_DATASET_DIR "" + #define GTSAM_INSTALLED_DATASET_DIR "@GTSAM_TOOLBOX_INSTALL_PATH@/gtsam_examples/Data" + + // Whether GTSAM is compiled to use quaternions for Rot3 (otherwise uses rotation matrices) diff --git a/vcpkg/ports/gtsam/portfile.cmake b/vcpkg/ports/gtsam/portfile.cmake new file mode 100644 index 0000000..32e36fa --- /dev/null +++ b/vcpkg/ports/gtsam/portfile.cmake @@ -0,0 +1,39 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO borglab/gtsam + REF ${VERSION} + SHA512 c0e5de8d86ea8241b49449bd291999ec0d6530bc9943b213e7c650b0ab29894ab53636bd1a0ed82d9d9d148dfc399ebff28e108b060d2d2176b584823bd722cd + HEAD_REF develop + PATCHES + build-fixes.patch + path-fixes.patch +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DGTSAM_BUILD_TESTS=OFF + -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF + -DGTSAM_BUILD_TIMING_ALWAYS=OFF + -DGTSAM_BUILD_UNSTABLE=OFF + -DGTSAM_UNSTABLE_BUILD_PYTHON=OFF + -DGTSAM_USE_SYSTEM_EIGEN=ON + -DGTSAM_USE_SYSTEM_METIS=ON + -DGTSAM_INSTALL_CPPUNITLITE=OFF + -DGTSAM_BUILD_TYPE_POSTFIXES=OFF + -DCMAKE_CXX_STANDARD=14 # Boost-math require C++14 +) + +vcpkg_cmake_install() +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_cmake_config_fixup(PACKAGE_NAME GTSAM CONFIG_PATH CMake) +else() + vcpkg_cmake_config_fixup(PACKAGE_NAME GTSAM CONFIG_PATH lib/cmake/GTSAM) +endif() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/LICENSE.BSD") +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") diff --git a/vcpkg/ports/gtsam/usage b/vcpkg/ports/gtsam/usage new file mode 100644 index 0000000..d184d35 --- /dev/null +++ b/vcpkg/ports/gtsam/usage @@ -0,0 +1,4 @@ +The package gtsam is compatible with built-in CMake targets: + + find_package(GTSAM CONFIG REQUIRED) + target_link_libraries(main PRIVATE gtsam) diff --git a/vcpkg/ports/gtsam/vcpkg.json b/vcpkg/ports/gtsam/vcpkg.json new file mode 100644 index 0000000..b70de3b --- /dev/null +++ b/vcpkg/ports/gtsam/vcpkg.json @@ -0,0 +1,34 @@ +{ + "name": "gtsam", + "version": "4.2.0", + "port-version": 1, + "description": "GTSAM is a library of C++ classes that implement smoothing and mapping (SAM) in robotics and vision, using factor graphs and Bayes networks as the underlying computing paradigm rather than sparse matrices.", + "homepage": "https://github.com/borglab/gtsam", + "license": "BSD-3-Clause", + "dependencies": [ + "boost-assign", + "boost-bimap", + "boost-date-time", + "boost-filesystem", + "boost-format", + "boost-graph", + "boost-math", + "boost-program-options", + "boost-regex", + "boost-serialization", + "boost-system", + "boost-thread", + "boost-timer", + "eigen3", + "metis", + "tbb", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |