cmake_minimum_required(VERSION 3.0)

project(tracy)

set(CMAKE_CXX_STANDARD 11)

option(TRACY_ENABLE "Profiling is enabled" ON)
option(TRACY_ON_DEMAND "Profiling enabled on demand" OFF)
option(TRACY_NO_EXIT "Client executable does not exit until all profile data is sent to server" OFF)
option(TRACY_NO_BROADCAST "Disable client discovery by broadcast to local network" OFF)

add_library(tracy_client TracyClient.cpp)

macro(set_option OPTION)
    if(${OPTION})
        message(STATUS "${OPTION}: ON")
        target_compile_definitions(tracy_client PUBLIC ${OPTION})
    else()
        message(STATUS "${OPTION}: OFF")
    endif()
endmacro()

set_option(TRACY_ENABLE)
set_option(TRACY_ON_DEMAND)
set_option(TRACY_NO_EXIT)
set_option(TRACY_NO_BROADCAST)
set_option(TRACY_USE_CONSTEXPR_VARIABLES)

if(NOT TRACY_PORT)
    set(TRACY_PORT 8086)
endif()

message(STATUS "TRACY_PORT: ${TRACY_PORT}")
target_compile_definitions(tracy_client PUBLIC TRACY_PORT=${TRACY_PORT})

target_include_directories(tracy_client PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")