-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathCMakeLists.txt
64 lines (47 loc) · 1.74 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
cmake_minimum_required(VERSION 2.6)
enable_testing()
project(clamp CXX C)
# version indicator
set(CLAMP_VERSION_MAJOR 1)
set(CLAMP_VERSION_MINOR 0)
set(CLAMP_VERSION_PATCH 0)
set(CLAMP_VERSION_STRING "${CLAMP_VERSION_MAJOR}.${CLAMP_VERSION_MINOR}.${CLAMP_VERSION_PATCH}")
# option: whether turn on Matlab toolbox
option(CLAMP_BUILD_MATLAB_TOOLBOX "whether build matlab toolbox" OFF)
# Find GTSAM components
find_package(GTSAM REQUIRED) # Uses installed package
include_directories(${GTSAM_INCLUDE_DIR})
set(GTSAM_LIBRARIES gtsam)
find_package(GTSAMCMakeTools)
include(GtsamMakeConfigFile)
include(GtsamBuildTypes)
include(GtsamTesting)
# for unittest scripts
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${GTSAM_DIR}/../GTSAMCMakeTools")
# Boost - same requirement as gtsam
find_package(Boost 1.50 REQUIRED)
find_package(Boost COMPONENTS filesystem REQUIRED)
find_package(Boost COMPONENTS system REQUIRED)
find_package(Boost COMPONENTS thread REQUIRED)
find_package(Boost COMPONENTS serialization REQUIRED)
include_directories(${Boost_INCLUDE_DIR})
# Find GPMP2
find_package(gpmp2 REQUIRED)
include_directories(${GPMP2_INCLUDE_DIR})
set(GPMP2_LIBRARIES gpmp2)
# include current source folder, at the very beginning
include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR})
# Process source subdirs
add_subdirectory(clamp)
# Wrapping to MATLAB
if(CLAMP_BUILD_MATLAB_TOOLBOX)
# wrap
include(GtsamMatlabWrap)
wrap_and_install_library(clamp.h ${PROJECT_NAME} "${CMAKE_CURRENT_SOURCE_DIR}" "")
# install matlab functions and scripts
add_subdirectory(matlab)
endif()
# Install config and export files
GtsamMakeConfigFile(clamp)
export(TARGETS ${clamp_EXPORTED_TARGETS} FILE clamp-exports.cmake)
set_target_properties(clamp PROPERTIES LINKER_LANGUAGE CXX)