-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
81 lines (70 loc) · 1.98 KB
/
CMakeLists.txt
File metadata and controls
81 lines (70 loc) · 1.98 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "" FORCE)
endif()
cmake_minimum_required(VERSION 3.25)
set(CMAKE_OSX_ARCHITECTURES arm64 x86_64)
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT Embedded)
project(thirdparty-ceres C CXX)
if(TOOLCHAIN_TRIPLE STREQUAL aarch64-linux-gnu)
# Hack around opensdk not having the wrong arch and Ceres not being able to detect the Eigen version when on aarch64
set(CMAKE_SYSTEM_PROCESSOR ARM64)
endif()
set(BUILD_SHARED_LIBS OFF)
set(BUILD_TESTING OFF)
set(BUILD_EXAMPLES OFF)
set(NO_CBLAS ON)
set(NO_LAPACKE ON)
set(C_LAPACK ON)
set(USE_LOCKING ON)
set(USE_THREAD OFF)
set(NOFORTRAN ON)
set(SUITESPARSE_ENABLE_PROJECTS cholmod)
set(SUITESPARSE_USE_CUDA OFF)
set(SUITESPARSE_USE_FORTRAN OFF)
set(SUITESPARSE_USE_OPENMP OFF)
set(SUITESPARSE_USE_PYTHON OFF)
set(CHOLMOD_GPL OFF)
if(NOT APPLE)
set(BLA_VENDOR OpenBLAS)
endif()
set(EIGEN_BUILD_CMAKE_PACKAGE ON)
set(WITH_GFLAGS OFF)
set(WITH_GTEST OFF)
set(BUILD_BENCHMARKS OFF)
set(MINIGLOG ON)
set(PROVIDE_UNINSTALL_TARGET OFF)
set(SUITESPARSE OFF)
# We don't use the SPARSE_SCHUR solver, so the generated code is just file size bloat
set(SCHUR_SPECIALIZATIONS OFF)
include(FetchContent)
# We need PIC for this to work as a shared library
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
if(NOT APPLE)
fetchcontent_declare(
BLAS
GIT_REPOSITORY https://github.com/OpenMathLib/OpenBLAS.git
GIT_TAG v0.3.30
OVERRIDE_FIND_PACKAGE
)
endif()
fetchcontent_declare(
SuiteSparse
GIT_REPOSITORY https://github.com/DrTimothyAldenDavis/SuiteSparse.git
GIT_TAG v7.11.0
OVERRIDE_FIND_PACKAGE
)
fetchcontent_declare(
Eigen3
GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
GIT_TAG 5.0.1
OVERRIDE_FIND_PACKAGE
)
fetchcontent_declare(
Ceres
GIT_REPOSITORY https://github.com/ceres-solver/ceres-solver.git
GIT_TAG 2.2.0
)
if(NOT APPLE)
fetchcontent_makeavailable(BLAS)
endif()
fetchcontent_makeavailable(SuiteSparse Eigen3 Ceres)