mirror of
https://github.com/cemu-project/vcpkg.git
synced 2025-02-23 11:07:10 +01:00
port for google cartographer (#2665)
* initial try to add port files * updates control and patch * minor fix * release is now built * install succeed * update to the latest commit * use cmake to export the symbols in dynamic linkage * [cartographer] Reformatting and added dependency on ceres[eigensparse]
This commit is contained in:
parent
d4004c8ac9
commit
d6ff55a735
4
ports/cartographer/CONTROL
Normal file
4
ports/cartographer/CONTROL
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Source: cartographer
|
||||||
|
Version: 0.3.0-3
|
||||||
|
Build-Depends: ceres[eigensparse], gflags, glog, lua, cairo, boost-iostreams, gtest, protobuf
|
||||||
|
Description: Google 2D & 3D SLAM package
|
146
ports/cartographer/fix-find-packages.patch
Normal file
146
ports/cartographer/fix-find-packages.patch
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
CMakeLists.txt | 45 ++++++++++++++++++++++----------------
|
||||||
|
cartographer/common/math.h | 4 +++-
|
||||||
|
cartographer/common/thread_pool.cc | 2 +-
|
||||||
|
cmake/functions.cmake | 10 ++++-----
|
||||||
|
4 files changed, 35 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 55e9adc..bc92e9b 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -26,18 +26,23 @@ option(BUILD_GRPC "build Cartographer gRPC support" false)
|
||||||
|
set(GRPC_PLUGIN_PATH "/usr/local/bin/grpc_cpp_plugin")
|
||||||
|
|
||||||
|
include("${PROJECT_SOURCE_DIR}/cmake/functions.cmake")
|
||||||
|
-google_initialize_cartographer_project()
|
||||||
|
-google_enable_testing()
|
||||||
|
+#google_initialize_cartographer_project()
|
||||||
|
+#google_enable_testing()
|
||||||
|
|
||||||
|
find_package(Boost REQUIRED COMPONENTS iostreams)
|
||||||
|
find_package(Ceres REQUIRED COMPONENTS SparseLinearAlgebraLibrary)
|
||||||
|
find_package(Eigen3 REQUIRED)
|
||||||
|
-find_package(LuaGoogle REQUIRED)
|
||||||
|
+find_package(Lua REQUIRED)
|
||||||
|
find_package(Protobuf 3.0.0 REQUIRED)
|
||||||
|
+find_package(glog REQUIRED)
|
||||||
|
+find_package(gflags REQUIRED)
|
||||||
|
|
||||||
|
-include(FindPkgConfig)
|
||||||
|
-PKG_SEARCH_MODULE(CAIRO REQUIRED cairo>=1.12.16)
|
||||||
|
-
|
||||||
|
+#include(FindPkgConfig)
|
||||||
|
+#PKG_SEARCH_MODULE(CAIRO REQUIRED cairo>=1.12.16)
|
||||||
|
+if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||||
|
+ set(CAIRO_LIB_SUFFIX d)
|
||||||
|
+endif()
|
||||||
|
+find_library(CAIRO_LIBRARY cairo${CAIRO_LIB_SUFFIX})
|
||||||
|
# Only build the documentation if we can find Sphinx.
|
||||||
|
find_package(Sphinx)
|
||||||
|
if(SPHINX_FOUND)
|
||||||
|
@@ -144,15 +149,15 @@ configure_file(
|
||||||
|
${PROJECT_SOURCE_DIR}/cartographer/common/config.h.cmake
|
||||||
|
${PROJECT_BINARY_DIR}/cartographer/common/config.h)
|
||||||
|
|
||||||
|
-google_binary(cartographer_autogenerate_ground_truth
|
||||||
|
- SRCS
|
||||||
|
- cartographer/ground_truth/autogenerate_ground_truth_main.cc
|
||||||
|
-)
|
||||||
|
-
|
||||||
|
-google_binary(cartographer_compute_relations_metrics
|
||||||
|
- SRCS
|
||||||
|
- cartographer/ground_truth/compute_relations_metrics_main.cc
|
||||||
|
-)
|
||||||
|
+#google_binary(cartographer_autogenerate_ground_truth
|
||||||
|
+# SRCS
|
||||||
|
+# cartographer/ground_truth/autogenerate_ground_truth_main.cc
|
||||||
|
+#)
|
||||||
|
+#
|
||||||
|
+#google_binary(cartographer_compute_relations_metrics
|
||||||
|
+# SRCS
|
||||||
|
+# cartographer/ground_truth/compute_relations_metrics_main.cc
|
||||||
|
+#)
|
||||||
|
|
||||||
|
if(${BUILD_GRPC})
|
||||||
|
google_binary(cartographer_grpc_server
|
||||||
|
@@ -167,7 +172,7 @@ foreach(ABS_FIL ${ALL_TESTS})
|
||||||
|
get_filename_component(FIL_WE ${REL_FIL} NAME_WE)
|
||||||
|
# Replace slashes as required for CMP0037.
|
||||||
|
string(REPLACE "/" "." TEST_TARGET_NAME "${DIR}/${FIL_WE}")
|
||||||
|
- google_test("${TEST_TARGET_NAME}" ${ABS_FIL})
|
||||||
|
+ #google_test("${TEST_TARGET_NAME}" ${ABS_FIL})
|
||||||
|
if(${BUILD_GRPC})
|
||||||
|
target_link_libraries("${TEST_TARGET_NAME}" PUBLIC grpc++)
|
||||||
|
endif()
|
||||||
|
@@ -190,8 +195,9 @@ target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC
|
||||||
|
target_link_libraries(${PROJECT_NAME} PUBLIC ${Boost_LIBRARIES})
|
||||||
|
|
||||||
|
# We expect find_package(Ceres) to have located these for us.
|
||||||
|
-target_link_libraries(${PROJECT_NAME} PUBLIC glog)
|
||||||
|
-target_link_libraries(${PROJECT_NAME} PUBLIC gflags)
|
||||||
|
+#target_link_libraries(${PROJECT_NAME} PUBLIC glog)
|
||||||
|
+#target_link_libraries(${PROJECT_NAME} PUBLIC gflags)
|
||||||
|
+target_link_libraries(${PROJECT_NAME} PUBLIC ${CAIRO_LIBRARY})
|
||||||
|
|
||||||
|
target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC
|
||||||
|
"${CAIRO_INCLUDE_DIRS}")
|
||||||
|
@@ -201,7 +207,8 @@ target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC
|
||||||
|
${PROTOBUF_INCLUDE_DIR})
|
||||||
|
# TODO(hrapp): This should not explicitly list pthread and use
|
||||||
|
# PROTOBUF_LIBRARIES, but that failed on first try.
|
||||||
|
-target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY} pthread)
|
||||||
|
+#target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY} pthread)
|
||||||
|
+target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY})
|
||||||
|
if(${BUILD_GRPC})
|
||||||
|
target_link_libraries(${PROJECT_NAME} PUBLIC grpc++)
|
||||||
|
endif()
|
||||||
|
diff --git a/cartographer/common/math.h b/cartographer/common/math.h
|
||||||
|
index f0ae9e2..d32bdbe 100644
|
||||||
|
--- a/cartographer/common/math.h
|
||||||
|
+++ b/cartographer/common/math.h
|
||||||
|
@@ -16,7 +16,9 @@
|
||||||
|
|
||||||
|
#ifndef CARTOGRAPHER_COMMON_MATH_H_
|
||||||
|
#define CARTOGRAPHER_COMMON_MATH_H_
|
||||||
|
-
|
||||||
|
+ #ifndef M_PI
|
||||||
|
+ #define M_PI 3.14159265358979323846
|
||||||
|
+ #endif
|
||||||
|
#include <cmath>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
diff --git a/cartographer/common/thread_pool.cc b/cartographer/common/thread_pool.cc
|
||||||
|
index fdda166..178472f 100644
|
||||||
|
--- a/cartographer/common/thread_pool.cc
|
||||||
|
+++ b/cartographer/common/thread_pool.cc
|
||||||
|
@@ -16,7 +16,7 @@
|
||||||
|
|
||||||
|
#include "cartographer/common/thread_pool.h"
|
||||||
|
|
||||||
|
-#include <unistd.h>
|
||||||
|
+//#include <unistd.h>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <chrono>
|
||||||
|
#include <numeric>
|
||||||
|
diff --git a/cmake/functions.cmake b/cmake/functions.cmake
|
||||||
|
index 3bfd343..b41a84e 100644
|
||||||
|
--- a/cmake/functions.cmake
|
||||||
|
+++ b/cmake/functions.cmake
|
||||||
|
@@ -118,12 +118,12 @@ macro(google_initialize_cartographer_project)
|
||||||
|
set(LIST_FILES_CMD "find ${PROJECT_SOURCE_DIR}/ -not -iwholename '*.git*' | sort | sed 's/^/#/'")
|
||||||
|
set(FILES_LIST_PATH "${PROJECT_BINARY_DIR}/AllFiles.cmake")
|
||||||
|
set(DETECT_CHANGES_CMD "bash" "-c" "${LIST_FILES_CMD} | diff -N -q ${FILES_LIST_PATH} - || ${LIST_FILES_CMD} > ${FILES_LIST_PATH}")
|
||||||
|
- add_custom_target(${PROJECT_NAME}_detect_changes ALL
|
||||||
|
- COMMAND ${DETECT_CHANGES_CMD}
|
||||||
|
- VERBATIM
|
||||||
|
- )
|
||||||
|
+ #add_custom_target(${PROJECT_NAME}_detect_changes ALL
|
||||||
|
+ # COMMAND ${DETECT_CHANGES_CMD}
|
||||||
|
+ # VERBATIM
|
||||||
|
+ #)
|
||||||
|
if(NOT EXISTS ${FILES_LIST_PATH})
|
||||||
|
- execute_process(COMMAND ${DETECT_CHANGES_CMD})
|
||||||
|
+ # execute_process(COMMAND ${DETECT_CHANGES_CMD})
|
||||||
|
endif()
|
||||||
|
include(${FILES_LIST_PATH})
|
||||||
|
endmacro()
|
39
ports/cartographer/portfile.cmake
Normal file
39
ports/cartographer/portfile.cmake
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
include(vcpkg_common_functions)
|
||||||
|
|
||||||
|
vcpkg_from_github(
|
||||||
|
OUT_SOURCE_PATH SOURCE_PATH
|
||||||
|
REPO googlecartographer/cartographer
|
||||||
|
REF a7ed7e224f98b396762c865b81b62dc3abea2e81
|
||||||
|
SHA512 2ab167c1c314591b4916baf70b8ad92ae542986c3578319d2454c904adae10f8027bc696579d6e2864d3606a6711563b82438e847527cad4ab0c2bd603a63eb7
|
||||||
|
HEAD_REF master
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_apply_patches(
|
||||||
|
SOURCE_PATH ${SOURCE_PATH}
|
||||||
|
PATCHES
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/fix-find-packages.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_configure_cmake(
|
||||||
|
SOURCE_PATH ${SOURCE_PATH}
|
||||||
|
OPTIONS
|
||||||
|
-DGFLAGS_PREFER_EXPORTED_GFLAGS_CMAKE_CONFIGURATION=OFF
|
||||||
|
-DGLOG_PREFER_EXPORTED_GLOG_CMAKE_CONFIGURATION=OFF
|
||||||
|
-Dgtest_disable_pthreads=ON
|
||||||
|
-DCMAKE_USE_PTHREADS_INIT=OFF
|
||||||
|
-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
|
||||||
|
OPTIONS_DEBUG
|
||||||
|
-DFORCE_DEBUG_BUILD=True
|
||||||
|
)
|
||||||
|
|
||||||
|
vcpkg_install_cmake()
|
||||||
|
|
||||||
|
vcpkg_copy_pdbs()
|
||||||
|
|
||||||
|
# Clean
|
||||||
|
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||||
|
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||||
|
|
||||||
|
# Handle copyright of cartographer
|
||||||
|
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cartographer)
|
||||||
|
file(RENAME ${CURRENT_PACKAGES_DIR}/share/cartographer/LICENSE ${CURRENT_PACKAGES_DIR}/share/cartographer/copyright)
|
Loading…
x
Reference in New Issue
Block a user