Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions ports/cartographer/CONTROL
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Source: cartographer
Version: 0.3.0-6
Build-Depends: ceres[eigensparse], gflags, glog, lua, cairo, boost-iostreams, gtest, protobuf
Description: Google 2D & 3D SLAM package
Version: 1.0.0
Build-Depends: ceres[suitesparse], gflags, glog, lua, cairo, boost-iostreams, gtest, protobuf
Description: Google 2D & 3D SLAM package
8 changes: 4 additions & 4 deletions ports/cartographer/disable-C2338-cartographer.patch
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bc92e9b..4c1826a 100644
index 95bb132..fbd624d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -226,7 +226,7 @@ target_include_directories(${PROJECT_NAME} SYSTEM PRIVATE
"${GMOCK_INCLUDE_DIRS}")
target_link_libraries(${PROJECT_NAME} PUBLIC ${GMOCK_LIBRARY})
@@ -237,7 +237,7 @@ if(${BUILD_PROMETHEUS})
target_compile_definitions(${PROJECT_NAME} PUBLIC USE_PROMETHEUS=1)
endif()

-set(TARGET_COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} ${GOOG_CXX_FLAGS}")
+set(TARGET_COMPILE_FLAGS "-D_DISABLE_EXTENDED_ALIGNED_STORAGE ${TARGET_COMPILE_FLAGS} ${GOOG_CXX_FLAGS}")
Expand Down
25 changes: 25 additions & 0 deletions ports/cartographer/fix-build-error.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
diff --git a/cartographer/common/internal/testing/thread_pool_for_testing.cc b/cartographer/common/internal/testing/thread_pool_for_testing.cc
index f804e13..c987f68 100644
--- a/cartographer/common/internal/testing/thread_pool_for_testing.cc
+++ b/cartographer/common/internal/testing/thread_pool_for_testing.cc
@@ -16,7 +16,7 @@

#include "cartographer/common/internal/testing/thread_pool_for_testing.h"

-#include <unistd.h>
+//#include <unistd.h>
#include <algorithm>
#include <chrono>
#include <numeric>
diff --git a/cartographer/mapping/pose_graph_interface.h b/cartographer/mapping/pose_graph_interface.h
index 6483ef4..6456720 100644
--- a/cartographer/mapping/pose_graph_interface.h
+++ b/cartographer/mapping/pose_graph_interface.h
@@ -18,6 +18,7 @@
#define CARTOGRAPHER_MAPPING_POSE_GRAPH_INTERFACE_H_

#include <vector>
+#include <array>

#include "cartographer/common/optional.h"
#include "cartographer/mapping/id.h"
327 changes: 181 additions & 146 deletions ports/cartographer/fix-find-packages.patch
Original file line number Diff line number Diff line change
@@ -1,146 +1,181 @@
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()
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2e3a686..f36f15a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,27 +25,33 @@ option(BUILD_GRPC "build Cartographer gRPC support" false)
option(BUILD_PROMETHEUS "build Prometheus monitoring support" false)

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

if (${BUILD_GRPC})
find_package(async_grpc REQUIRED)
endif()

-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)
- add_subdirectory("docs")
-endif()
+#find_package(Sphinx)
+#if(SPHINX_FOUND)
+# add_subdirectory("docs")
+#endif()

# Install catkin package.xml
install(FILES package.xml DESTINATION share/cartographer)
@@ -169,20 +175,20 @@ 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_migrate_serialization_format
- SRCS
- cartographer/io/migrate_serialization_format_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
+#)
+#
+#google_binary(cartographer_migrate_serialization_format
+# SRCS
+# cartographer/io/migrate_serialization_format_main.cc
+#)

if(${BUILD_GRPC})
google_binary(cartographer_grpc_server
@@ -213,8 +219,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}")
@@ -224,7 +231,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++)
target_link_libraries(${PROJECT_NAME} PUBLIC async_grpc)
@@ -234,7 +242,7 @@ if(${BUILD_PROMETHEUS})
target_compile_definitions(${PROJECT_NAME} PUBLIC USE_PROMETHEUS=1)
endif()

-set(TARGET_COMPILE_FLAGS "${TARGET_COMPILE_FLAGS} ${GOOG_CXX_FLAGS}")
+set(TARGET_COMPILE_FLAGS "-D_DISABLE_EXTENDED_ALIGNED_STORAGE ${TARGET_COMPILE_FLAGS} ${GOOG_CXX_FLAGS}")
set_target_properties(${PROJECT_NAME} PROPERTIES
COMPILE_FLAGS ${TARGET_COMPILE_FLAGS})

@@ -255,7 +263,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++)
target_link_libraries("${TEST_TARGET_NAME}" PUBLIC async_grpc)
@@ -263,7 +271,7 @@ foreach(ABS_FIL ${ALL_TESTS})
if(${BUILD_PROMETHEUS})
target_link_libraries("${TEST_TARGET_NAME}" PUBLIC prometheus-cpp)
endif()
- target_link_libraries("${TEST_TARGET_NAME}" PUBLIC ${TEST_LIB})
+ #target_link_libraries("${TEST_TARGET_NAME}" PUBLIC ${TEST_LIB})
endforeach()

# Add the binary directory first, so that port.h is included after it has
diff --git a/cartographer/common/math.h b/cartographer/common/math.h
index c4a77ef..0248f66 100644
--- a/cartographer/common/math.h
+++ b/cartographer/common/math.h
@@ -17,6 +17,10 @@
#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 bc3c743..db424d1 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..3d961b0 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()
9 changes: 5 additions & 4 deletions ports/cartographer/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,13 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO googlecartographer/cartographer
REF a7ed7e224f98b396762c865b81b62dc3abea2e81
SHA512 2ab167c1c314591b4916baf70b8ad92ae542986c3578319d2454c904adae10f8027bc696579d6e2864d3606a6711563b82438e847527cad4ab0c2bd603a63eb7
REF 1.0.0
SHA512 4e3b38ee40d9758cbd51f087578b82efb7d1199b4b7696d31f45938ac06250caaea2b4d85ccb0a848c958ba187a0101ee95c87323ca236c613995b23b215041c
HEAD_REF master
PATCHES
${CMAKE_CURRENT_LIST_DIR}/fix-find-packages.patch
${CMAKE_CURRENT_LIST_DIR}/disable-C2338-cartographer.patch
fix-find-packages.patch
disable-C2338-cartographer.patch
fix-build-error.patch
)

vcpkg_configure_cmake(
Expand Down