mirror of https://github.com/koide3/small_gicp.git
enable packages at the beginning (#16)
* enable packages at the beginning
This commit is contained in:
parent
81829663cb
commit
d09f9202bb
|
|
@ -23,7 +23,7 @@ jobs:
|
|||
- name: Install Dependencies
|
||||
run: |
|
||||
sudo apt-get -y update
|
||||
sudo apt-get install -y build-essential cmake python3-pip pybind11-dev libeigen3-dev libfmt-dev libtbb-dev libomp-dev libpcl-dev libgtest-dev lcov
|
||||
sudo apt-get install --no-install-recommends -y build-essential cmake python3-pip pybind11-dev libeigen3-dev libfmt-dev libtbb-dev libomp-dev libpcl-dev libgtest-dev lcov
|
||||
pip install -U setuptools pytest pytest-cov numpy scipy
|
||||
|
||||
- name: Build (C++)
|
||||
|
|
@ -40,7 +40,7 @@ jobs:
|
|||
|
||||
- name: Build (Python)
|
||||
run: |
|
||||
python3 setup.py build && python3 setup.py install --user
|
||||
pip install . --user
|
||||
|
||||
- name: Test (Python)
|
||||
run: |
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ on:
|
|||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
test:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
|
|
@ -23,7 +23,7 @@ jobs:
|
|||
- name: Install Dependencies
|
||||
run: |
|
||||
sudo apt-get -y update
|
||||
sudo apt-get install -y build-essential cmake python3-pip pybind11-dev libeigen3-dev libfmt-dev libtbb-dev libomp-dev libpcl-dev libgtest-dev
|
||||
sudo apt-get install --no-install-recommends -y build-essential cmake python3-pip pybind11-dev libeigen3-dev libfmt-dev libtbb-dev libomp-dev libpcl-dev libgtest-dev
|
||||
pip install -U setuptools pytest numpy scipy
|
||||
|
||||
- name: Build
|
||||
|
|
@ -33,5 +33,5 @@ jobs:
|
|||
cmake --build . -j$(nproc)
|
||||
ctest -j$(nproc)
|
||||
cd ..
|
||||
python3 setup.py build && python3 setup.py install --user
|
||||
pip install . --user
|
||||
pytest src/example/basic_registration.py
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
cmake_minimum_required(VERSION 3.16)
|
||||
project(small_gicp VERSION 0.0.1 LANGUAGES CXX)
|
||||
project(small_gicp VERSION 0.0.1 LANGUAGES C CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
||||
|
|
@ -13,18 +13,31 @@ option(BUILD_SHARED_LIBS "Build shared libraries" ON)
|
|||
option(CMAKE_POSITION_INDEPENDENT_CODE "Generate position-independent code" ON)
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
|
||||
# Build options
|
||||
option(BUILD_HELPER "Build helper library" ON)
|
||||
option(BUILD_TESTS "Build tests" OFF)
|
||||
option(BUILD_EXAMPLES "Build examples" OFF)
|
||||
option(BUILD_BENCHMARKS "Build benchmarks" OFF)
|
||||
option(BUILD_PYTHON_BINDINGS "Build python bindings" OFF)
|
||||
option(ENABLE_COVERAGE "Enable coverage" OFF)
|
||||
|
||||
# Dependency options
|
||||
set(BUILD_WITH_OPENMP CACHE STRING "Build with OpenMP" "auto")
|
||||
option(BUILD_WITH_TBB "Build with TBB" ON)
|
||||
option(BUILD_WITH_TBB "Build with TBB" OFF)
|
||||
option(BUILD_WITH_PCL "Build with PCL (required for benchmark and test only)" OFF)
|
||||
option(BUILD_WITH_FAST_GICP "Build with fast_gicp (required for benchmark and test only)" OFF)
|
||||
option(BUILD_WITH_IRIDESCENCE "Build with Iridescence (required for benchmark)" OFF)
|
||||
option(BUILD_WITH_MARCH_NATIVE "Build with -march=native" OFF)
|
||||
option(ENABLE_COVERAGE "Enable coverage" OFF)
|
||||
option(BUILD_PYTHON_BINDINGS "Build python bindings" OFF)
|
||||
|
||||
# Set mandatory dependencies of optional features
|
||||
if(BUILD_TESTS OR BUILD_EXAMPLES OR BUILD_BENCHMARKS)
|
||||
find_package(fmt REQUIRED)
|
||||
set(BUILD_HELPER ON CACHE BOOL "Helper library is required" FORCE)
|
||||
set(BUILD_WITH_TBB ON CACHE BOOL "TBB is required" FORCE)
|
||||
endif()
|
||||
if(BUILD_TESTS OR BUILD_EXAMPLES)
|
||||
set(BUILD_WITH_PCL ON CACHE BOOL "PCL is required" FORCE)
|
||||
endif()
|
||||
|
||||
# Eigen is the sole mandatory dependency
|
||||
find_package(Eigen3 REQUIRED CONFIG)
|
||||
|
|
@ -36,6 +49,34 @@ elseif(BUILD_WITH_OPENMP)
|
|||
find_package(OpenMP REQUIRED)
|
||||
endif()
|
||||
|
||||
if (BUILD_WITH_TBB)
|
||||
find_package(TBB REQUIRED)
|
||||
add_compile_definitions(BUILD_WITH_TBB)
|
||||
endif()
|
||||
|
||||
if (BUILD_WITH_PCL)
|
||||
find_package(PCL REQUIRED)
|
||||
add_compile_definitions(BUILD_WITH_PCL)
|
||||
if (NOT TARGET PCL::PCL)
|
||||
add_library(PCL::PCL INTERFACE IMPORTED)
|
||||
set_target_properties(PCL::PCL PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${PCL_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${PCL_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (BUILD_WITH_IRIDESCENCE)
|
||||
find_package(Iridescence REQUIRED)
|
||||
add_compile_definitions(BUILD_WITH_IRIDESCENCE)
|
||||
endif()
|
||||
|
||||
if (BUILD_WITH_FAST_GICP)
|
||||
# set(FAST_GICP_INCLUDE_DIR /home/koide/workspace/fast_gicp/include)
|
||||
set(FAST_GICP_INCLUDE_DIR $ENV{FAST_GICP_INCLUDE_DIR})
|
||||
add_compile_definitions(BUILD_WITH_FAST_GICP)
|
||||
endif()
|
||||
|
||||
if(BUILD_WITH_MARCH_NATIVE)
|
||||
add_compile_options(-march=native)
|
||||
endif()
|
||||
|
|
@ -93,32 +134,6 @@ endif()
|
|||
## Benchmark ##
|
||||
###############
|
||||
if(BUILD_BENCHMARKS)
|
||||
find_package(fmt REQUIRED)
|
||||
if (BUILD_WITH_TBB)
|
||||
find_package(TBB REQUIRED)
|
||||
add_compile_definitions(BUILD_WITH_TBB)
|
||||
endif()
|
||||
if (BUILD_WITH_PCL)
|
||||
find_package(PCL REQUIRED)
|
||||
add_compile_definitions(BUILD_WITH_PCL)
|
||||
if (NOT TARGET PCL::PCL)
|
||||
add_library(PCL::PCL INTERFACE IMPORTED)
|
||||
set_target_properties(PCL::PCL PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${PCL_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${PCL_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
if (BUILD_WITH_IRIDESCENCE)
|
||||
find_package(Iridescence REQUIRED)
|
||||
add_compile_definitions(BUILD_WITH_IRIDESCENCE)
|
||||
endif()
|
||||
if (BUILD_WITH_FAST_GICP)
|
||||
# set(FAST_GICP_INCLUDE_DIR /home/koide/workspace/fast_gicp/include)
|
||||
set(FAST_GICP_INCLUDE_DIR $ENV{FAST_GICP_INCLUDE_DIR})
|
||||
add_compile_definitions(BUILD_WITH_FAST_GICP)
|
||||
endif()
|
||||
|
||||
# Odometry benchmark
|
||||
add_executable(odometry_benchmark
|
||||
src/small_gicp/benchmark/benchmark_odom.cpp
|
||||
|
|
@ -143,10 +158,10 @@ if(BUILD_BENCHMARKS)
|
|||
fmt::fmt
|
||||
Eigen3::Eigen
|
||||
$<TARGET_NAME_IF_EXISTS:OpenMP::OpenMP_CXX>
|
||||
Iridescence::Iridescence
|
||||
TBB::tbb
|
||||
TBB::tbbmalloc
|
||||
PCL::PCL
|
||||
$<TARGET_NAME_IF_EXISTS:Iridescence::Iridescence>
|
||||
$<TARGET_NAME_IF_EXISTS:TBB::tbb>
|
||||
$<TARGET_NAME_IF_EXISTS:TBB::tbbmalloc>
|
||||
$<TARGET_NAME_IF_EXISTS:PCL::PCL>
|
||||
)
|
||||
|
||||
# KdTree construction benchmark
|
||||
|
|
@ -157,8 +172,8 @@ if(BUILD_BENCHMARKS)
|
|||
fmt::fmt
|
||||
Eigen3::Eigen
|
||||
$<TARGET_NAME_IF_EXISTS:OpenMP::OpenMP_CXX>
|
||||
TBB::tbb
|
||||
TBB::tbbmalloc
|
||||
$<TARGET_NAME_IF_EXISTS:TBB::tbb>
|
||||
$<TARGET_NAME_IF_EXISTS:TBB::tbbmalloc>
|
||||
)
|
||||
|
||||
if(BUILD_WITH_PCL)
|
||||
|
|
@ -170,8 +185,8 @@ if(BUILD_BENCHMARKS)
|
|||
fmt::fmt
|
||||
Eigen3::Eigen
|
||||
$<TARGET_NAME_IF_EXISTS:OpenMP::OpenMP_CXX>
|
||||
TBB::tbb
|
||||
TBB::tbbmalloc
|
||||
$<TARGET_NAME_IF_EXISTS:TBB::tbb>
|
||||
$<TARGET_NAME_IF_EXISTS:TBB::tbbmalloc>
|
||||
PCL::PCL
|
||||
)
|
||||
endif()
|
||||
|
|
@ -181,10 +196,6 @@ endif()
|
|||
## Example ##
|
||||
#############
|
||||
if(BUILD_EXAMPLES)
|
||||
find_package(fmt REQUIRED)
|
||||
find_package(PCL REQUIRED)
|
||||
find_package(TBB REQUIRED)
|
||||
|
||||
file(GLOB EXAMPLE_SOURCES "src/example/*.cpp")
|
||||
foreach(EXAMPLE_SOURCE ${EXAMPLE_SOURCES})
|
||||
get_filename_component(EXAMPLE_NAME ${EXAMPLE_SOURCE} NAME_WE)
|
||||
|
|
@ -203,9 +214,6 @@ endif()
|
|||
## Test ##
|
||||
##########
|
||||
if(BUILD_TESTS)
|
||||
find_package(fmt REQUIRED)
|
||||
find_package(PCL REQUIRED)
|
||||
find_package(TBB REQUIRED)
|
||||
find_package(GTest REQUIRED)
|
||||
|
||||
enable_testing()
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
find_path(GTSAM_INCLUDE_DIRS gtsam/inference/FactorGraph.h
|
||||
HINTS /usr/local/include /usr/include
|
||||
DOC "GTSAM include directories")
|
||||
|
||||
find_library(GTSAM_LIB NAMES gtsam
|
||||
HINTS /usr/local/lib /usr/lib
|
||||
DOC "GTSAM libraries")
|
||||
|
||||
find_library(GTSAM_UNSTABLE_LIB NAMES gtsam_unstable
|
||||
HINTS /usr/local/lib /usr/lib
|
||||
DOC "GTSAM_UNSTABLE libraries")
|
||||
|
||||
find_dependency(TBB REQUIRED)
|
||||
|
||||
add_library(gtsam INTERFACE IMPORTED GLOBAL)
|
||||
set_target_properties(gtsam PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GTSAM_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${GTSAM_LIB} TBB::tbb TBB::tbbmalloc")
|
||||
|
||||
add_library(gtsam_unstable INTERFACE IMPORTED GLOBAL)
|
||||
set_target_properties(gtsam_unstable PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GTSAM_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${GTSAM_UNSTABLE_LIB} gtsam")
|
||||
|
||||
if(GTSAM_LIB AND GTSAM_UNSTABLE_LIB AND TARGET TBB::tbb AND TARGET TBB::tbbmalloc)
|
||||
set(GTSAM_LIBRARIES gtsam gtsam_unstable)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(GTSAM DEFAULT_MSG GTSAM_INCLUDE_DIRS GTSAM_LIBRARIES)
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
find_path(TBB_INCLUDE_DIRS tbb/tbb.h
|
||||
HINTS /usr/local/include /usr/include
|
||||
DOC "oneTBB include directories")
|
||||
|
||||
find_library(TBB_LIB NAMES tbb
|
||||
HINTS /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu
|
||||
DOC "TBB libraries")
|
||||
|
||||
find_library(TBB_MALLOC_LIB NAMES tbbmalloc
|
||||
HINTS /usr/local/lib /usr/lib
|
||||
DOC "TBB malloc libraries")
|
||||
|
||||
if(TARGET TBB::tbb)
|
||||
return()
|
||||
endif()
|
||||
|
||||
add_library(TBB::tbb INTERFACE IMPORTED GLOBAL)
|
||||
set_target_properties(TBB::tbb PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${TBB_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${TBB_LIB}")
|
||||
|
||||
add_library(TBB::tbbmalloc INTERFACE IMPORTED GLOBAL)
|
||||
set_target_properties(TBB::tbbmalloc PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${TBB_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${TBB_MALLOC_LIB}")
|
||||
|
||||
if(TBB_LIB AND TBB_MALLOC_LIB)
|
||||
set(TBB_LIBRARIES TBB::tbb TBB::tbbmalloc)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(TBB DEFAULT_MSG TBB_INCLUDE_DIRS TBB_LIBRARIES)
|
||||
|
|
@ -17,15 +17,12 @@ COPY . /root/small_gicp
|
|||
WORKDIR /root/small_gicp/build
|
||||
RUN rm -rf ./*
|
||||
|
||||
RUN cmake .. -DBUILD_WITH_TBB=ON
|
||||
RUN cmake --build . -j$(nproc)
|
||||
|
||||
RUN cmake .. -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_BENCHMARKS=ON -DBUILD_WITH_TBB=ON -DBUILD_WITH_PCL=ON
|
||||
RUN cmake --build . -j$(nproc)
|
||||
RUN ctest -j$(nproc)
|
||||
|
||||
WORKDIR /root/small_gicp
|
||||
RUN python3 setup.py build && python3 setup.py install
|
||||
RUN pip install .
|
||||
RUN pytest src/example/basic_registration.py
|
||||
|
||||
WORKDIR /
|
||||
|
|
|
|||
|
|
@ -27,15 +27,12 @@ COPY . /root/small_gicp
|
|||
WORKDIR /root/small_gicp/build
|
||||
RUN rm -rf ./*
|
||||
|
||||
RUN cmake .. -DBUILD_WITH_TBB=ON
|
||||
RUN cmake --build . -j$(nproc)
|
||||
|
||||
RUN cmake .. -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_BENCHMARKS=ON -DBUILD_WITH_TBB=ON -DBUILD_WITH_PCL=ON
|
||||
RUN cmake --build . -j$(nproc)
|
||||
RUN ctest -j$(nproc)
|
||||
|
||||
WORKDIR /root/small_gicp
|
||||
RUN python3 setup.py build && python3 setup.py install
|
||||
RUN pip install .
|
||||
RUN pytest src/example/basic_registration.py
|
||||
|
||||
WORKDIR /
|
||||
|
|
|
|||
Loading…
Reference in New Issue