cmake_minimum_required(VERSION 3.24) project(signal_garden_contracts LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) add_executable(signal-contracts contracts_test.cpp) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") target_compile_options(signal-contracts PRIVATE -Wall -Wextra -Wpedantic -Wconversion -Wshadow) endif() option(SIGNAL_BUILD_WINDOW "Build the complete Vulkan clear-color window checkpoint" OFF) if(SIGNAL_BUILD_WINDOW) find_package(Vulkan 1.3 REQUIRED) find_package(glfw3 3.4 CONFIG REQUIRED) add_executable(signal-window clear_window.cpp) target_link_libraries(signal-window PRIVATE Vulkan::Vulkan glfw) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") target_compile_options(signal-window PRIVATE -Wall -Wextra -Wpedantic -Wconversion -Wshadow) endif() endif() enable_testing() add_test(NAME allocation-contracts COMMAND signal-contracts) option(SIGNAL_BUILD_VULKAN_PROBE "Build the Vulkan 1.3 capability probe" OFF) if(SIGNAL_BUILD_VULKAN_PROBE) find_package(Vulkan 1.3 REQUIRED) add_executable(signal-capabilities capabilities.cpp) target_link_libraries(signal-capabilities PRIVATE Vulkan::Vulkan) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") target_compile_options(signal-capabilities PRIVATE -Wall -Wextra -Wpedantic -Wconversion -Wshadow) endif() endif()