42 lines
1.7 KiB
CMake
42 lines
1.7 KiB
CMake
# The example programs. Each one is guarded by the adapter it needs, so
|
|
# -DPLOT_BUILD_EXAMPLES=ON without -DPLOT_BUILD_GLFW=ON is a no-op rather than a
|
|
# configure error.
|
|
find_package(Threads REQUIRED) # the GLFW demo's producer thread
|
|
|
|
if(TARGET plot::glfw)
|
|
add_executable(plot_glfw_demo glfw_demo.cpp)
|
|
target_link_libraries(plot_glfw_demo PRIVATE plot::glfw Threads::Threads)
|
|
plot_apply_warnings(plot_glfw_demo)
|
|
endif()
|
|
|
|
if(TARGET plot::imgui)
|
|
# The demo owns the window, the ImGui context and the frame loop itself, so it
|
|
# links the toolkit and its backends directly; the adapter is only the widget.
|
|
plot_find_glfw(plot_imgui_demo_glfw_dep)
|
|
add_executable(plot_imgui_demo imgui_demo.cpp)
|
|
target_link_libraries(plot_imgui_demo PRIVATE
|
|
plot::imgui
|
|
imgui
|
|
${plot_imgui_demo_glfw_dep}
|
|
Threads::Threads)
|
|
plot_apply_warnings(plot_imgui_demo)
|
|
endif()
|
|
|
|
if(TARGET plot::qt6)
|
|
# The demo owns the QApplication, the QMainWindow and the toolbar; the adapter is
|
|
# only the widget, which the window adopts as its central widget. No macro
|
|
# processing is needed here: the demo declares no Qt class of its own.
|
|
add_executable(plot_qt_demo qt_demo.cpp)
|
|
target_link_libraries(plot_qt_demo PRIVATE plot::qt6 Threads::Threads)
|
|
plot_apply_warnings(plot_qt_demo)
|
|
endif()
|
|
|
|
if(TARGET plot::gtk4)
|
|
# The demo owns the GtkApplication, the window and the header bar; the adapter is
|
|
# only the plot area, which the window adopts as its content. GTK's include
|
|
# directories come with plot::gtk4 (see the adapter's CMakeLists).
|
|
add_executable(plot_gtk_demo gtk_demo.cpp)
|
|
target_link_libraries(plot_gtk_demo PRIVATE plot::gtk4 Threads::Threads)
|
|
plot_apply_warnings(plot_gtk_demo)
|
|
endif()
|