Skip to content

Commit

Permalink
New project structure (#46)
Browse files Browse the repository at this point in the history
* Manual merge from gitlab

* Rename file
  • Loading branch information
nachovizzo authored Jan 19, 2023
1 parent f4ca4b7 commit 5fb2ceb
Show file tree
Hide file tree
Showing 50 changed files with 966 additions and 587 deletions.
2 changes: 2 additions & 0 deletions .cmake-format.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
enable_markup: false
line_width: 120
format:
max_subgroups_hwrap: 5
16 changes: 11 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,25 @@
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
cmake_minimum_required(VERSION 3.16...3.24)
project(kiss_icp VERSION 0.0.14 LANGUAGES CXX)
cmake_minimum_required(VERSION 3.20...3.24)
project(kiss_icp VERSION 0.1.0 LANGUAGES CXX)

# Set build options
option(USE_SYSTEM_PYBIND11 "Use system pre-installed pybind11" ON)
option(BUILD_PYTHON_BINDINGS "Build the python module" OFF)
option(BUILD_ROS_WRAPPER "Build the ROS wrapper module" OFF)

# Set build type
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

add_subdirectory(src/cpp)
# Build always core library
add_subdirectory(src/cpp/kiss_icp)

if(BUILD_PYTHON_BINDINGS)
add_subdirectory(src/pybind)
add_subdirectory(src/cpp/kiss_icp_pybind)
endif()

if(BUILD_ROS_WRAPPER)
add_subdirectory(src/cpp/kiss_icp_ros)
endif()
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ docker-push:
@docker push gitlab.ipb.uni-bonn.de:4567/ipb-team/ipb-tools/kiss_icp

license:
@addlicense -f LICENSE -v -ignore **/*.yaml -v .
@addlicense -f LICENSE -ignore **/*.yaml -v .
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[metadata]
name = kiss_icp
version = 0.0.14
version = 0.1.0
author = Ignacio Vizzo
author_email = ignaciovizzo@gmail.com
description = Simple yet effective 3D LiDAR-Odometry registration pipeline
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ ExternalProject_Add(
external_eigen
PREFIX eigen
URL https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.bz2
URL_HASH
SHA256=b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626
URL_HASH SHA256=b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
Expand All @@ -36,7 +35,6 @@ ExternalProject_Add(
ExternalProject_Get_Property(external_eigen SOURCE_DIR)
add_library(libEigenHelper INTERFACE)
add_dependencies(libEigenHelper external_eigen)
target_include_directories(libEigenHelper SYSTEM
INTERFACE $<BUILD_INTERFACE:${SOURCE_DIR}>)
target_include_directories(libEigenHelper SYSTEM INTERFACE $<BUILD_INTERFACE:${SOURCE_DIR}>)
set_property(TARGET libEigenHelper PROPERTY EXPORT_NAME Eigen3::Eigen)
add_library(Eigen3::Eigen ALIAS libEigenHelper)
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,16 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

# CMake arguments for configuring ExternalProjects.
set(ExternalProject_CMAKE_ARGS
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
-DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON)

# Silence timestamp warning
if(CMAKE_VERSION VERSION_GREATER 3.24)
cmake_policy(SET CMP0135 OLD)
endif()

# CMake arguments for configuring ExternalProjects.
set(ExternalProject_CMAKE_ARGS
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
-DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON)

# tsl_robin is fast to fetch, don't ask for system-wise installation
include(${CMAKE_CURRENT_LIST_DIR}/tsl_robin/tsl_robin.cmake)

Expand All @@ -51,4 +50,3 @@ if(NOT USE_SYSTEM_TBB OR NOT TBB_FOUND)
set(USE_SYSTEM_TBB OFF)
include(${CMAKE_CURRENT_LIST_DIR}/tbb/tbb.cmake)
endif()

File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ ExternalProject_Add(
external_tbb
PREFIX tbb
URL https://github.com/nachovizzo/tbb/archive/refs/tags/tbbstatic.tar.gz
URL_HASH
SHA256=db5ede77c4bd10ad12fab11ed38b7e8cf80aba85db16a57514073c383e6c8630
URL_HASH SHA256=db5ede77c4bd10ad12fab11ed38b7e8cf80aba85db16a57514073c383e6c8630
UPDATE_COMMAND ""
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
${ExternalProject_CMAKE_ARGS}
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,15 @@
# SOFTWARE.
include(FetchContent)

FetchContent_Declare(
tessil
URL https://github.com/Tessil/robin-map/archive/refs/tags/v1.0.1.tar.gz)
FetchContent_Declare(tessil URL https://github.com/Tessil/robin-map/archive/refs/tags/v1.0.1.tar.gz)
if(NOT tessil_POPULATED)
set(BUILD_TESTING OFF)
FetchContent_Populate(tessil)
add_library(robin_map INTERFACE)
add_library(tsl::robin_map ALIAS robin_map)
target_include_directories(
robin_map INTERFACE "$<BUILD_INTERFACE:${tessil_SOURCE_DIR}/include>")
list(
APPEND
headers
"${tessil_SOURCE_DIR}/include/tsl/robin_growth_policy.h"
"${tessil_SOURCE_DIR}/include/tsl/robin_hash.h"
"${tessil_SOURCE_DIR}/include/tsl/robin_map.h"
"${tessil_SOURCE_DIR}/include/tsl/robin_set.h")
target_include_directories(robin_map INTERFACE "$<BUILD_INTERFACE:${tessil_SOURCE_DIR}/include>")
list(APPEND headers "${tessil_SOURCE_DIR}/include/tsl/robin_growth_policy.h"
"${tessil_SOURCE_DIR}/include/tsl/robin_hash.h" "${tessil_SOURCE_DIR}/include/tsl/robin_map.h"
"${tessil_SOURCE_DIR}/include/tsl/robin_set.h")
target_sources(robin_map INTERFACE "$<BUILD_INTERFACE:${headers}>")
endif()
26 changes: 17 additions & 9 deletions src/cpp/kiss_icp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,20 @@
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
add_library(kiss_icp STATIC)
add_library(kiss_icp::kiss_icp ALIAS kiss_icp)
target_sources(kiss_icp PRIVATE Registration.cpp Deskew.cpp VoxelHashMap.cpp Preprocessing.cpp)
target_compile_features(kiss_icp PUBLIC cxx_std_17)
target_compile_options(kiss_icp PRIVATE -Wall -Wextra)
target_include_directories(
kiss_icp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
target_link_libraries(kiss_icp PUBLIC Eigen3::Eigen tsl::robin_map TBB::tbb)
cmake_minimum_required(VERSION 3.20...3.24)
project(kiss_icp VERSION 0.1.0 LANGUAGES CXX)

# Setup build options
option(USE_SYSTEM_EIGEN3 "Use system pre-installed eigen3" ON)
option(USE_SYSTEM_TBB "Use system pre-installed oneAPI/tbb" ON)

# Set build type (repeat here for C++ only consumers)
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

include(3rdparty/find_dependencies.cmake)
include(cmake/CompilerOptions.cmake)

add_subdirectory(metrics)
add_subdirectory(core)
161 changes: 0 additions & 161 deletions src/cpp/kiss_icp/Map.hpp

This file was deleted.

Loading

0 comments on commit 5fb2ceb

Please sign in to comment.