cmake_minimum_required(VERSION 3.24) project(plot VERSION 0.1.0 LANGUAGES CXX) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") include(plot_options) add_library(plot_core src/core/status.cpp src/math/transform.cpp src/data/minmax_pyramid.cpp src/data/series.cpp src/data/array_series.cpp src/data/stream_series.cpp src/gl/loader.cpp src/gl/handle.cpp src/render/shaders.cpp src/render/bitmap_font.cpp src/render/primitives.cpp src/render/buffer.cpp src/render/vertex_array.cpp src/render/program.cpp src/plot/ticks.cpp src/plot/axis.cpp src/plot/grid.cpp src/plot/measure.cpp src/plot/plot.cpp src/input/controller.cpp ) add_library(plot::core ALIAS plot_core) target_include_directories(plot_core PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") target_compile_features(plot_core PUBLIC cxx_std_20) target_link_libraries(plot_core PRIVATE ${CMAKE_DL_LIBS}) plot_apply_warnings(plot_core) if(PLOT_BUILD_TESTS) # Test-only: counts the pyramid's covering-decomposition entries so a test can # pin its O(log n) cost, which no query answer reveals. Off in every non-test # build (see include/plot/data/detail/cover_count.hpp). target_compile_definitions(plot_core PRIVATE PLOT_PYRAMID_COUNT_COVERS) enable_testing() add_subdirectory(tests) endif()