-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
105 lines (88 loc) · 2.28 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
option(UFOVIZ_BUILD_DOCS "Generate documentation" OFF)
option(UFOVIZ_BUILD_TESTS "Unit testing" OFF)
option(UFOVIZ_BUILD_COVERAGE "Test Coverage" OFF)
add_subdirectory(apps)
add_subdirectory(glfw_webgpu)
add_library(Viz
src/viz.cpp
)
add_library(UFO::Viz ALIAS Viz)
set_target_properties(Viz
PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
CXX_STANDARD 17
CXX_EXTENSIONS OFF
OUTPUT_NAME "UFOViz"
)
# add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/imgui")
target_link_libraries(Viz
PUBLIC
UFO::Compute
UFO::Map
UFO::Math
UFO::Plan
UFO::Vision
# imgui
PRIVATE
glfw_webgpu
)
include(GNUInstallDirs)
target_include_directories(Viz
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
if(UFO_DEV_MODE)
# In dev mode, we load resources from the source tree
target_compile_definitions(Viz PUBLIC
UFOVIZ_SHADER_DIR="${CMAKE_CURRENT_SOURCE_DIR}/shaders"
)
else()
# In release mode, we just load resources relatively to wherever the
# executable is launched from, so that the binary is portable
target_compile_definitions(Viz PUBLIC
UFOVIZ_SHADER_DIR="./shaders"
)
endif()
if(UFO_BUILD_TESTS OR UFOVIZ_BUILD_TESTS)
add_subdirectory(tests)
endif()
if(UFO_BUILD_DOCS OR UFOVIZ_BUILD_DOCS)
add_subdirectory(docs)
endif()
install(TARGETS Viz glfw_webgpu EXPORT Viz-targets
COMPONENT Viz
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
INCLUDES DESTINATION include
)
install(EXPORT Viz-targets
FILE "Viz-targets.cmake"
NAMESPACE UFO::
DESTINATION lib/cmake/${PROJECT_NAME}
COMPONENT Viz
)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/Viz-config-version.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/Viz-config.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/Viz-config.cmake"
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
)
install(
FILES
"${CMAKE_CURRENT_BINARY_DIR}/Viz-config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/Viz-config-version.cmake"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
COMPONENT Viz
)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include
COMPONENT Viz
DESTINATION ${CMAKE_INSTALL_PREFIX}
)