forked from geometryprocessing/algebraic-contours
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
executable file
·82 lines (68 loc) · 2.34 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
cmake_minimum_required(VERSION 3.25)
project(AlgebraicContours VERSION 0.0.1)
set (CMAKE_CXX_STANDARD 17)
set (CMAKE_CXX_STANDARD_REQUIRED ON)
# Fix thread issue
set(CMAKE_THREAD_LIBS_INIT "-lpthread")
set(CMAKE_HAVE_THREADS_LIBRARY 1)
set(CMAKE_USE_WIN32_THREADS_INIT 0)
set(CMAKE_USE_PTHREADS_INIT 1)
set(THREADS_PREFER_PTHREAD_FLAG ON)
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
endif()
# Get required packages
list(PREPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
# Set compile definitions
add_compile_definitions(EIGEN_STACK_ALLOCATION_LIMIT=0)
add_compile_definitions(CHECK_VALIDITY)
# Fetch libigl
option(LIBIGL_PREDICATES "Use Predicates" ON)
option(RENDER_TEXTURE "Render results" ON)
option(LIBIGL_OPENGL "Use OpenGL" ON)
option(LIBIGL_GLFW "Use GLFW" ON)
option(LIBIGL_PNG "Use PNG" ON)
option(LIBIGL_EMBREE "Use EMBREE" ON)
# Fetch other dependencies
include(conformal_ideal_delaunay)
include(hidden_cones)
include(libigl)
include(polyscope)
include(eigen)
include(spdlog)
include(suitesparse)
include(cli11)
add_subdirectory(${PROJECT_SOURCE_DIR}/ext/svg)
# Install executables to bin directory
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# Build main library
add_subdirectory(src/core)
add_subdirectory(src/quadratic_spline_surface)
add_subdirectory(src/contour_network)
target_include_directories(QuadraticContoursCoreLib PUBLIC ${PROJECT_SOURCE_DIR}/ext )
add_library(QuadraticContoursLib INTERFACE)
target_link_libraries(QuadraticContoursLib INTERFACE
QuadraticContoursCoreLib
QuadraticSplineSurfaceLib
ContourNetworkLib
)
# Build utility library
add_subdirectory(src/util)
# Optionally build executables
option(BUILD_EXECUTABLES "Build algebraic contour executables" ON)
if (BUILD_EXECUTABLES)
add_subdirectory(src/exec)
endif()
# Optionally build experiments
option(BUILD_FIGURE_EXECUTABLES "Build executables to generate paper figures" ON)
if (BUILD_FIGURE_EXECUTABLES)
message("Building figure executables")
add_subdirectory(src/figures)
endif()
# Optionally build tests
option(BUILD_TESTS "Build contour tests" ON)
if (BUILD_TESTS)
message("Building tests")
add_subdirectory(src/tests)
endif()