11## Copyright 2019-2021 Intel Corporation
22## SPDX-License-Identifier: Apache-2.0
33
4- ## OpenGL dependency ##
5-
6- set (OpenGL_GL_PREFERENCE "LEGACY" )
7- find_package (OpenGL 2 REQUIRED )
8-
9- ## GLFW dependency ##
10-
11- find_package (glfw3 REQUIRED )
12-
13- ## Example renderers ##
14-
15- include_directories_ispc (
16- ${CMAKE_SOURCE_DIR} /openvkl/include
17- ${CMAKE_SOURCE_DIR} /openvkl/devices/cpu/math
18- ${RKCOMMON_INCLUDE_DIRS}
19- )
20-
21- openvkl_add_library_ispc (vkl_example_renderers STATIC
22- renderers/Renderer.cpp
23- renderers/Renderer.ih
24- renderers/Renderer.ispc
25-
26- renderers/DensityPathTracer.cpp
27- renderers/DensityPathTracer.ispc
28- renderers/HitIterator.cpp
29- renderers/HitIterator.ispc
30- renderers/IntervalIteratorDebug.cpp
31- renderers/IntervalIteratorDebug.ispc
32- renderers/RayMarchIterator.cpp
33- renderers/RayMarchIterator.ispc
34- )
35-
36- target_include_directories (vkl_example_renderers PUBLIC ${ISPC_TARGET_DIR} )
37-
38- target_link_libraries (vkl_example_renderers PUBLIC openvkl openvkl_testing rkcommon::rkcommon )
39-
40-
41-
42- set (OPENVKL_IMGUI_ROOT "${CMAKE_CURRENT_LIST_DIR} /imgui-1.81"
43- CACHE PATH "Path to imgui." )
44-
45- add_library (imgui STATIC
46- ${OPENVKL_IMGUI_ROOT} /imgui.cpp
47- ${OPENVKL_IMGUI_ROOT} /imgui_draw.cpp
48- ${OPENVKL_IMGUI_ROOT} /imgui_tables.cpp
49- ${OPENVKL_IMGUI_ROOT} /imgui_widgets.cpp
50- ${OPENVKL_IMGUI_ROOT} /backends/imgui_impl_glfw.cpp
51- ${OPENVKL_IMGUI_ROOT} /backends/imgui_impl_opengl2.cpp )
52-
53- target_include_directories (imgui PUBLIC ${OPENVKL_IMGUI_ROOT} )
54- target_link_libraries (imgui PUBLIC glfw )
55-
56- ## Interactive example app ##
57-
58- add_executable (vklExamples
59- window/ArcballCamera.cpp
60- window/VKLWindow.cpp
61- window/GLFWVKLWindow.cpp
62- vklExamples.cpp
63- window/TransferFunctionWidget.cpp
64-
65- ${VKL_RESOURCE}
66- )
4+ add_subdirectory (renderer )
5+
6+ ### vklExamples app ##
7+
8+ set (OpenGL_GL_PREFERENCE "GLVND" ) # Request new ABI, but this is only a hint.
9+ find_package (OpenGL 2 )
10+
11+ if (OPENGL_FOUND)
12+ add_library (vkl_opengl INTERFACE )
13+ target_compile_definitions (vkl_opengl INTERFACE GL_SILENCE_DEPRECATION )
14+ if (TARGET OpenGL::GL)
15+ target_link_libraries (vkl_opengl INTERFACE OpenGL::GL )
16+ else ()
17+ # Old versions of cmake do not create the GL targets.
18+ target_link_libraries (vkl_opengl INTERFACE ${OPENGL_LIBRARIES} )
19+ target_include_directories (vkl_opengl INTERFACE ${OPENGL_INCLUDE_DIR} )
20+ endif ()
21+
22+ find_package (glfw3 REQUIRED )
23+
24+ set (OPENVKL_IMGUI_ROOT "${CMAKE_CURRENT_LIST_DIR} /imgui-1.83"
25+ CACHE PATH "Path to imgui." )
26+
27+ add_library (imgui STATIC
28+ ${OPENVKL_IMGUI_ROOT} /imgui.cpp
29+ ${OPENVKL_IMGUI_ROOT} /imgui_draw.cpp
30+ ${OPENVKL_IMGUI_ROOT} /imgui_tables.cpp
31+ ${OPENVKL_IMGUI_ROOT} /imgui_widgets.cpp
32+ ${OPENVKL_IMGUI_ROOT} /backends/imgui_impl_glfw.cpp
33+ ${OPENVKL_IMGUI_ROOT} /backends/imgui_impl_opengl2.cpp )
34+
35+ target_include_directories (imgui PUBLIC ${OPENVKL_IMGUI_ROOT} )
36+ target_link_libraries (imgui PUBLIC glfw vkl_opengl )
37+ target_compile_definitions (imgui PUBLIC VKL_HAVE_IMGUI )
38+ endif ()
6739
68- target_link_libraries (vklExamples PRIVATE
69- openvkl_utility
70- openvkl_testing
71- imgui
72- vkl_example_renderers
73- ${OPENGL_LIBRARIES}
74- )
40+ if (TARGET imgui)
41+ add_executable (vklExamples
42+ vklExamples.cpp
43+ BatchApplication.cpp
44+ InteractiveApplication.cpp
45+ ParameterGui.cpp
46+ RenderView.cpp
47+ TransferFunctionWidget.cpp
48+ ${VKL_RESOURCE}
49+ )
7550
76- target_include_directories (vklExamples PRIVATE ${CMAKE_CURRENT_LIST_DIR} )
77- target_compile_definitions (vklExamples PRIVATE GL_SILENCE_DEPRECATION )
51+ target_link_libraries (vklExamples
52+ PRIVATE
53+ imgui
54+ vkl_example_renderers
55+ )
7856
79- install (TARGETS vklExamples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} )
57+ install (TARGETS vklExamples
58+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
59+ )
60+ endif ()
8061
81- ## Benchmark app ##
62+ ### vklBenchmark app ##
8263
8364if (BUILD_BENCHMARKS)
8465 add_executable (vklBenchmark
85- window/ArcballCamera.cpp
86- window/VKLWindow.cpp
8766 vklBenchmark.cpp
88-
8967 ${VKL_RESOURCE}
9068 )
9169
@@ -96,7 +74,5 @@ if (BUILD_BENCHMARKS)
9674 vkl_example_renderers
9775 )
9876
99- target_include_directories (vklBenchmark PRIVATE ${CMAKE_CURRENT_LIST_DIR} )
100-
10177 install (TARGETS vklBenchmark RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} )
10278endif ()
0 commit comments