33# SPDX-License-Identifier: MIT
44
55cmake_minimum_required (VERSION 3.28)
6- file (READ "${CMAKE_SOURCE_DIR} / package.json" PACKAGE_JSON)
6+ file (READ "package.json" PACKAGE_JSON)
77string (JSON PACKAGE_JSON_PROJECT_VERSION GET "${PACKAGE_JSON} " version )
88string (
99 REGEX REPLACE
@@ -28,6 +28,7 @@ include(GenerateExportHeader)
2828include (FeatureSummary)
2929include (GNUInstallDirs)
3030include (GetGitRevisionDescription)
31+ include (CMakeDependentOption)
3132
3233set (CMAKE_CXX_SCAN_FOR_MODULES OFF )
3334set (CMAKE_CXX_EXTENSIONS OFF )
@@ -36,13 +37,36 @@ set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
3637set (CMAKE_POSITION_INDEPENDENT_CODE ON )
3738set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR} /runtime" )
3839
39- option (QUITE_BUILD_PROBES "Decides if the probes should be build" ON )
40+ option (QUITE_INSTALL "If ON the libraries will be exported" ON )
41+ option (QUITE_BUILD_PROBE_QT "Decides if the probes should be build" ON )
42+ option (QUITE_BUILD_TEST_API "Decides if the testing API should be build" ON )
43+ cmake_dependent_option(
44+ QUITE_BUILD_PYTHON_TEST_API
45+ "Decides if the python testing API should be build"
46+ ON
47+ QUITE_BUILD_TEST_API
48+ OFF
49+ )
50+ option (
51+ QUITE_BUILD_REMOTE_MANAGER
52+ "Decides if the remote manager should be build"
53+ ON
54+ )
55+
56+ add_feature_info(QtProbe QUITE_BUILD_PROBE_QT "Build probeqt" )
57+ add_feature_info(TestingApi QUITE_BUILD_TEST_API "Build testing API" )
4058add_feature_info(
41- Studio
42- QUITE_BUILD_STUDIO
43- "The studio provides a way to interactively explore the objects in the app. "
59+ TestingPythonApi
60+ QUITE_BUILD_PYTHON_TEST_API
61+ "Build testing API "
4462)
45- add_feature_info(Testing BUILD_TESTING "Build all tests." )
63+ add_feature_info(
64+ RemoteManager
65+ QUITE_BUILD_REMOTE_MANAGER
66+ "Build remote manager"
67+ )
68+
69+ add_feature_info(Testing BUILD_TESTING "Build all tests" )
4670add_feature_info(
4771 SharedLibraries
4872 BUILD_SHARED_LIBS
@@ -56,61 +80,67 @@ message(STATUS "git_branch: ${git_branch}")
5680find_package (Sanitizers REQUIRED)
5781### NOTE: Set CPM_USE_LOCAL_PACKAGES or CPM_LOCAL_PACKAGES_ONLY to true if you want to use system packages or a package manager like vcpkg.
5882include (get_cpm)
59- set (BOOST_VERSION "1.88 .0" )
83+ set (BOOST_VERSION "1.89 .0" )
6084list (APPEND BOOST_INCLUDE_LIBRARIES asio process)
6185cpmaddpackage(
6286 NAME Boost
6387 VERSION "${BOOST_VERSION} "
6488 URL https://github.com/boostorg/boost/releases/download/boost-${BOOST_VERSION} /boost-${BOOST_VERSION} -cmake.tar.xz
65- URL_HASH SHA256=f48b48390380cfb94a629872346e3a81370dc498896f16019ade727ab72eb1ec
89+ URL_HASH SHA256=67acec02d0d118b5de9eb441f5fb707b3a1cdd884be00ca24b9a73c995511f74
6690 EXCLUDE_FROM_ALL ON
6791 SYSTEM ON
6892 FIND_PACKAGE_ARGUMENTS "CONFIG"
6993 OPTIONS "BOOST_ENABLE_CMAKE ON" "BOOST_PROCESS_USE_STD_FS ON" "BOOST_SKIP_INSTALL_RULES ${CMAKE_SKIP_INSTALL_RULES} "
7094)
7195cpmaddpackage("gh:fmtlib/fmt#11.2.0" )
72- cpmaddpackage("gh:odygrd/quill@10.0.1 " )
96+ cpmaddpackage("gh:odygrd/quill@10.1.0 " )
7397cpmaddpackage(URI
"gh:skypjack/[email protected] " NAME "EnTT" FIND_PACKAGE_ARGUMENTS
"CONFIG" )
74- cpmaddpackage(URI
"gh:CLIUtils/[email protected] " OPTIONS "CLI11_PRECOMPILED ON" )
75- cpmaddpackage(URI "gh:NVIDIA/stdexec#0d0a15c669cbd2571248536a7e70524d8b7071aa" NAME "stdexec" VERSION 0.11 FIND_PACKAGE_ARGUMENTS "CONFIG" OPTIONS "STDEXEC_BUILD_TESTS OFF" "STDEXEC_BUILD_EXAMPLES OFF" "STDEXEC_ENABLE_ASIO ON"
98+ cpmaddpackage(URI "gh:NVIDIA/stdexec#daf12bcc46438f88b3c78212363f7b6531338780" NAME "stdexec" VERSION 0.11 FIND_PACKAGE_ARGUMENTS "CONFIG" OPTIONS "STDEXEC_BUILD_TESTS OFF" "STDEXEC_BUILD_EXAMPLES OFF" "STDEXEC_ENABLE_ASIO ON"
7699)
77100cpmaddpackage(URI
"gh:Tradias/[email protected] " FIND_PACKAGE_ARGUMENTS
"CONFIG" VERSION 3.4.0)
78101cpmaddpackage(URI
"gh:nlohmann/[email protected] " FIND_PACKAGE_ARGUMENTS
"CONFIG" NAME "nlohmann_json" )
79102cpmaddpackage(URI "gh:nothings/stb#f0569113c93ad095470c54bf34a17b36646bbbb5" NAME Stb
80103)
104+ find_package (gRPC CONFIG REQUIRED)
81105set (Stb_INCLUDE_DIR "$<BUILD_INTERFACE:${Stb_SOURCE_DIR} >" )
82- cpmaddpackage(URI
"gh:pybind/[email protected] " FIND_PACKAGE_ARGUMENTS
"CONFIG" VERSION 3.0.0)
106+ if (QUITE_BUILD_REMOTE_MANAGER OR BUILD_TESTING)
107+ cpmaddpackage(URI
"gh:CLIUtils/[email protected] " OPTIONS "CLI11_PRECOMPILED ON" )
108+ endif ()
83109if (BUILD_TESTING)
84110 cpmaddpackage("gh:vector-of-bool/cmrc#952ffddba731fc110bd50409e8d2b8a06abbd237"
85111 )
86- cpmaddpackage(
"gh:catchorg/[email protected] " )
87112 cpmaddpackage(
"gh:boost-ext/[email protected] " )
88113endif ()
89114
90- find_package (
91- Qt6
92- REQUIRED
93- COMPONENTS Core Gui Qml Quick Widgets
94- REQUIRED
95- )
96- find_package (gRPC CONFIG REQUIRED)
115+ if (QUITE_BUILD_PROBE_QT)
116+ find_package (
117+ Qt6
118+ REQUIRED
119+ COMPONENTS Core Gui Qml Quick Widgets
120+ REQUIRED
121+ )
122+ endif ()
123+ add_subdirectory (libs)
97124if (BUILD_TESTING)
98- list (APPEND CMAKE_MODULE_PATH "${Catch2_SOURCE_DIR} /extras" )
99- include (Catch)
125+ add_subdirectory (simple_tester)
100126endif ()
101127
102- add_subdirectory (libs)
103- add_subdirectory (python)
104- add_subdirectory (remote-manager)
128+ if (QUITE_BUILD_PYTHON_TEST_API)
129+ cpmaddpackage(URI
"gh:pybind/[email protected] " FIND_PACKAGE_ARGUMENTS
"CONFIG" VERSION 3.0.0)
130+ add_subdirectory (python)
131+ endif ()
132+
133+ if (QUITE_BUILD_REMOTE_MANAGER)
134+ add_subdirectory (remote-manager)
135+ endif ()
105136if (BUILD_TESTING)
106- add_subdirectory (integration_test)
107- add_subdirectory (test )
137+ add_subdirectory (example)
108138endif ()
109139
110140feature_summary(WHAT ENABLED_FEATURES DISABLED_FEATURES DESCRIPTION "Features:" )
111141feature_summary(WHAT PACKAGES_FOUND DESCRIPTION "Found packages:" )
112142
113- if (NOT CMAKE_SKIP_INSTALL_RULES )
143+ if (QUITE_INSTALL )
114144 include (CMakePackageConfigHelpers)
115145
116146 install (
0 commit comments