Use installed Abseil. (#1570)
parent
a5aa03b776
commit
ade7605fac
|
@ -29,7 +29,7 @@ include("${PROJECT_SOURCE_DIR}/cmake/functions.cmake")
|
||||||
google_initialize_cartographer_project()
|
google_initialize_cartographer_project()
|
||||||
google_enable_testing()
|
google_enable_testing()
|
||||||
|
|
||||||
find_package(Abseil REQUIRED)
|
find_package(absl REQUIRED)
|
||||||
set(BOOST_COMPONENTS iostreams)
|
set(BOOST_COMPONENTS iostreams)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
list(APPEND BOOST_COMPONENTS zlib)
|
list(APPEND BOOST_COMPONENTS zlib)
|
||||||
|
@ -268,7 +268,20 @@ target_include_directories(${PROJECT_NAME} SYSTEM PUBLIC
|
||||||
${PROTOBUF_INCLUDE_DIR})
|
${PROTOBUF_INCLUDE_DIR})
|
||||||
# TODO(hrapp): This should not explicitly list pthread and use
|
# TODO(hrapp): This should not explicitly list pthread and use
|
||||||
# PROTOBUF_LIBRARIES, but that failed on first try.
|
# PROTOBUF_LIBRARIES, but that failed on first try.
|
||||||
target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY} standalone_absl)
|
target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY}
|
||||||
|
absl::algorithm
|
||||||
|
absl::base
|
||||||
|
absl::debugging
|
||||||
|
absl::flat_hash_map
|
||||||
|
absl::memory
|
||||||
|
absl::meta
|
||||||
|
absl::numeric
|
||||||
|
absl::str_format
|
||||||
|
absl::strings
|
||||||
|
absl::synchronization
|
||||||
|
absl::time
|
||||||
|
absl::utility
|
||||||
|
)
|
||||||
if (NOT WIN32)
|
if (NOT WIN32)
|
||||||
target_link_libraries(${PROJECT_NAME} PUBLIC pthread)
|
target_link_libraries(${PROJECT_NAME} PUBLIC pthread)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -28,6 +28,8 @@ RUN apt-get update && apt-get install -y sudo apt-utils tzdata && rm -rf /var/li
|
||||||
|
|
||||||
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
||||||
|
COPY scripts/install_abseil.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_abseil.sh && rm -rf /var/lib/apt/lists/*
|
||||||
COPY scripts/install_proto3.sh cartographer/scripts/
|
COPY scripts/install_proto3.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_proto3.sh && rm -rf protobuf
|
RUN cartographer/scripts/install_proto3.sh && rm -rf protobuf
|
||||||
COPY scripts/install_grpc.sh cartographer/scripts/
|
COPY scripts/install_grpc.sh cartographer/scripts/
|
||||||
|
|
|
@ -28,5 +28,7 @@ RUN apt-get update && apt-get install -y sudo apt-utils tzdata && rm -rf /var/li
|
||||||
|
|
||||||
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
||||||
|
COPY scripts/install_abseil.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_abseil.sh && rm -rf /var/lib/apt/lists/*
|
||||||
COPY . cartographer
|
COPY . cartographer
|
||||||
RUN cartographer/scripts/install_cartographer_cmake.sh && rm -rf cartographer
|
RUN cartographer/scripts/install_cartographer_cmake.sh && rm -rf cartographer
|
||||||
|
|
|
@ -26,6 +26,8 @@ RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
||||||
|
COPY scripts/install_abseil.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_abseil.sh && rm -rf /var/lib/apt/lists/*
|
||||||
COPY scripts/install_ceres.sh cartographer/scripts/
|
COPY scripts/install_ceres.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_ceres.sh && rm -rf ceres-solver
|
RUN cartographer/scripts/install_ceres.sh && rm -rf ceres-solver
|
||||||
COPY scripts/install_proto3.sh cartographer/scripts/
|
COPY scripts/install_proto3.sh cartographer/scripts/
|
||||||
|
|
|
@ -26,6 +26,8 @@ RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
||||||
|
COPY scripts/install_abseil.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_abseil.sh && rm -rf /var/lib/apt/lists/*
|
||||||
COPY scripts/install_ceres.sh cartographer/scripts/
|
COPY scripts/install_ceres.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_ceres.sh && rm -rf ceres-solver
|
RUN cartographer/scripts/install_ceres.sh && rm -rf ceres-solver
|
||||||
COPY scripts/install_proto3.sh cartographer/scripts/
|
COPY scripts/install_proto3.sh cartographer/scripts/
|
||||||
|
|
|
@ -27,6 +27,8 @@ RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
COPY scripts/install_debs_cmake.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
RUN cartographer/scripts/install_debs_cmake.sh && rm -rf /var/lib/apt/lists/*
|
||||||
|
COPY scripts/install_abseil.sh cartographer/scripts/
|
||||||
|
RUN cartographer/scripts/install_abseil.sh && rm -rf /var/lib/apt/lists/*
|
||||||
COPY scripts/install_ceres.sh cartographer/scripts/
|
COPY scripts/install_ceres.sh cartographer/scripts/
|
||||||
RUN cartographer/scripts/install_ceres.sh && rm -rf ceres-solver
|
RUN cartographer/scripts/install_ceres.sh && rm -rf ceres-solver
|
||||||
COPY scripts/install_proto3.sh cartographer/scripts/
|
COPY scripts/install_proto3.sh cartographer/scripts/
|
||||||
|
|
|
@ -1,95 +0,0 @@
|
||||||
# Copyright 2018 The Cartographer Authors
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.2)
|
|
||||||
|
|
||||||
if(NOT TARGET standalone_absl)
|
|
||||||
set(prefix ${CMAKE_STATIC_LIBRARY_PREFIX})
|
|
||||||
set(suffix ${CMAKE_STATIC_LIBRARY_SUFFIX})
|
|
||||||
include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)
|
|
||||||
set(ABSEIL_PROJECT_NAME abseil)
|
|
||||||
set(ABSEIL_PROJECT_SRC_DIR
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${ABSEIL_PROJECT_NAME}/src/${ABSEIL_PROJECT_NAME})
|
|
||||||
set(ABSEIL_PROJECT_BUILD_DIR
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${ABSEIL_PROJECT_NAME}/src/${ABSEIL_PROJECT_NAME}-build)
|
|
||||||
set(ABSEIL_INCLUDE_DIRS ${ABSEIL_PROJECT_SRC_DIR})
|
|
||||||
set(ABSEIL_LIBRARY_PATH
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/synchronization/${prefix}absl_synchronization${suffix}")
|
|
||||||
set(ABSEIL_DEPENDENT_LIBRARIES
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/debugging/${prefix}absl_symbolize${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/time/${prefix}absl_time${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/strings/${prefix}str_format_internal${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/strings/${prefix}str_format_extension_internal${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/strings/${prefix}absl_str_format${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/strings/${prefix}absl_strings${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/hash/${prefix}absl_hash${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/algorithm/${prefix}absl_algorithm${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/base/${prefix}absl_base${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/base/${prefix}absl_dynamic_annotations${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/base/${prefix}absl_internal_malloc_internal${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/base/${prefix}absl_internal_spinlock_wait${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/base/${prefix}absl_internal_throw_delegate${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/container/${prefix}absl_container${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/container/${prefix}test_instance_tracker_lib${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/debugging/${prefix}absl_debugging${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/debugging/${prefix}absl_examine_stack${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/debugging/${prefix}absl_failure_signal_handler${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/debugging/${prefix}absl_leak_check${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/debugging/${prefix}absl_stack_consumption${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/debugging/${prefix}absl_stacktrace${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/memory/${prefix}absl_memory${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/meta/${prefix}absl_meta${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/numeric/${prefix}absl_int128${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/numeric/${prefix}absl_numeric${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/types/${prefix}absl_any${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/types/${prefix}absl_bad_any_cast${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/types/${prefix}absl_bad_optional_access${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/types/${prefix}absl_optional${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/types/${prefix}absl_span${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/types/${prefix}absl_variant${suffix}"
|
|
||||||
"${ABSEIL_PROJECT_BUILD_DIR}/absl/utility/${prefix}absl_utility${suffix}"
|
|
||||||
)
|
|
||||||
ExternalProject_Add(${ABSEIL_PROJECT_NAME}
|
|
||||||
PREFIX ${ABSEIL_PROJECT_NAME}
|
|
||||||
GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
|
|
||||||
GIT_TAG 7b46e1d31a6b08b1c6da2a13e7b151a20446fa07
|
|
||||||
INSTALL_COMMAND ""
|
|
||||||
BUILD_COMMAND ${CMAKE_COMMAND} --build "${ABSEIL_PROJECT_BUILD_DIR}"
|
|
||||||
CMAKE_CACHE_ARGS "-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON;-DBUILD_TESTING:BOOL=OFF;-DCMAKE_BUILD_TYPE:STRING=Release"
|
|
||||||
BUILD_BYPRODUCTS "${ABSEIL_LIBRARY_PATH};${ABSEIL_DEPENDENT_LIBRARIES}"
|
|
||||||
)
|
|
||||||
add_library(standalone_absl STATIC IMPORTED GLOBAL)
|
|
||||||
set_target_properties(standalone_absl
|
|
||||||
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
|
|
||||||
${ABSEIL_INCLUDE_DIRS}
|
|
||||||
)
|
|
||||||
set_target_properties(standalone_absl
|
|
||||||
PROPERTIES IMPORTED_LOCATION
|
|
||||||
${ABSEIL_LIBRARY_PATH}
|
|
||||||
INTERFACE_LINK_LIBRARIES
|
|
||||||
"${ABSEIL_DEPENDENT_LIBRARIES}"
|
|
||||||
)
|
|
||||||
if(MSVC)
|
|
||||||
# /wd4005 macro-redefinition
|
|
||||||
# /wd4068 unknown pragma
|
|
||||||
# /wd4244 conversion from 'type1' to 'type2'
|
|
||||||
# /wd4267 conversion from 'size_t' to 'type2'
|
|
||||||
# /wd4800 force value to bool 'true' or 'false' (performance warning)
|
|
||||||
target_compile_options(standalone_absl INTERFACE /wd4005 /wd4068 /wd4244 /wd4267 /wd4800)
|
|
||||||
target_compile_definitions(standalone_absl INTERFACE -DNOMINMAX -DWIN32_LEAN_AND_MEAN=1 -D_CRT_SECURE_NO_WARNINGS)
|
|
||||||
endif()
|
|
||||||
add_dependencies(standalone_absl ${ABSEIL_PROJECT_NAME})
|
|
||||||
unset(prefix)
|
|
||||||
unset(suffix)
|
|
||||||
endif()
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Copyright 2019 The Cartographer Authors
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o verbose
|
||||||
|
|
||||||
|
git clone https://github.com/abseil/abseil-cpp.git
|
||||||
|
cd abseil-cpp
|
||||||
|
git checkout d902eb869bcfacc1bad14933ed9af4bed006d481
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -G Ninja \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr/local/stow/absl \
|
||||||
|
..
|
||||||
|
ninja
|
||||||
|
sudo ninja install
|
||||||
|
cd /usr/local/stow
|
||||||
|
sudo stow absl
|
|
@ -45,7 +45,8 @@ sudo apt-get install -y \
|
||||||
libgoogle-glog-dev \
|
libgoogle-glog-dev \
|
||||||
liblua5.2-dev \
|
liblua5.2-dev \
|
||||||
libsuitesparse-dev \
|
libsuitesparse-dev \
|
||||||
ninja-build
|
ninja-build \
|
||||||
|
stow
|
||||||
|
|
||||||
if [[ "$(lsb_release -sc)" = "focal" ]]
|
if [[ "$(lsb_release -sc)" = "focal" ]]
|
||||||
then
|
then
|
||||||
|
|
Loading…
Reference in New Issue