vcpkg/ports/cartographer/fix-find-packages.patch
mmazat d6ff55a735 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]
2018-02-19 06:46:02 -08:00

147 lines
5.2 KiB
Diff

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