From a7bbd51c61a33b734193ccbfcec3fa294f8f94ad Mon Sep 17 00:00:00 2001 From: Lukas Berbuer Date: Sun, 1 Aug 2021 13:14:32 +0200 Subject: [PATCH] Simplify CMake option definition --- CMakeLists.txt | 48 ++++++++++++++++++------------------------------ 1 file changed, 18 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 30cd3965..9fd34587 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,19 +4,6 @@ project(Tracy LANGUAGES CXX) find_package(Threads REQUIRED) -option(TRACY_ENABLE "Enable profiling" ON) -option(TRACY_ON_DEMAND "On-demand profiling" OFF) -option(TRACY_CALLSTACK "Collect call stacks" OFF) -option(TRACY_ONLY_LOCALHOST "Only listen on the localhost interface" OFF) -option(TRACY_NO_BROADCAST "Disable client discovery by broadcast to local network" OFF) -option(TRACY_NO_CODE_TRANSFER "Disable collection of source code" OFF) -option(TRACY_NO_CONTEXT_SWITCH "Disable capture of context switches" OFF) -option(TRACY_NO_EXIT "Client executable does not exit until all profile data is sent to server" OFF) -option(TRACY_NO_FRAME_IMAGE "Disable capture of frame images" OFF) -option(TRACE_NO_SAMPLING "Disable call stack sampling" OFF) -option(TRACY_NO_VERIFY "Disable zone validation for C API" OFF) -option(TRACY_NO_VSYNC_CAPTURE "Disable capture of hardware Vsync events" OFF) - add_library(TracyClient TracyClient.cpp) target_compile_features(TracyClient PUBLIC cxx_std_11) target_include_directories(TracyClient PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) @@ -34,24 +21,25 @@ endif() add_library(Tracy::TracyClient ALIAS TracyClient) -macro(set_option OPTION) - if(${OPTION}) - message(STATUS "${OPTION}: ON") - target_compile_definitions(TracyClient PUBLIC ${OPTION}) +macro(set_option option help value) + option(${option} ${help} ${value}) + if(${option}) + message(STATUS "${option}: ON") + target_compile_definitions(TracyClient PUBLIC ${option}) else() - message(STATUS "${OPTION}: OFF") + message(STATUS "${option}: OFF") endif() endmacro() -set_option(TRACY_ENABLE) -set_option(TRACY_ON_DEMAND) -set_option(TRACY_CALLSTACK) -set_option(TRACY_ONLY_LOCALHOST) -set_option(TRACY_NO_BROADCAST) -set_option(TRACY_NO_CODE_TRANSFER) -set_option(TRACY_NO_CONTEXT_SWITCH) -set_option(TRACY_NO_EXIT) -set_option(TRACY_NO_FRAME_IMAGE) -set_option(TRACE_NO_SAMPLING) -set_option(TRACY_NO_VERIFY) -set_option(TRACY_NO_VSYNC_CAPTURE) +set_option(TRACY_ENABLE "Enable profiling" ON) +set_option(TRACY_ON_DEMAND "On-demand profiling" OFF) +set_option(TRACY_CALLSTACK "Collect call stacks" OFF) +set_option(TRACY_ONLY_LOCALHOST "Only listen on the localhost interface" OFF) +set_option(TRACY_NO_BROADCAST "Disable client discovery by broadcast to local network" OFF) +set_option(TRACY_NO_CODE_TRANSFER "Disable collection of source code" OFF) +set_option(TRACY_NO_CONTEXT_SWITCH "Disable capture of context switches" OFF) +set_option(TRACY_NO_EXIT "Client executable does not exit until all profile data is sent to server" OFF) +set_option(TRACY_NO_FRAME_IMAGE "Disable capture of frame images" OFF) +set_option(TRACE_NO_SAMPLING "Disable call stack sampling" OFF) +set_option(TRACY_NO_VERIFY "Disable zone validation for C API" OFF) +set_option(TRACY_NO_VSYNC_CAPTURE "Disable capture of hardware Vsync events" OFF)