cmake_minimum_required(VERSION 3.26) # Probe project to load the toolchain file (which sets TOOLMODE) before the # real project() call decides between the tool and game solution names. project(BigfootProbe LANGUAGES NONE) if(NOT DEFINED TOOLMODE OR TOOLMODE) set(BIGFOOT_PROJECT_NAME BigfootTool) else() set(BIGFOOT_PROJECT_NAME BigfootGame) endif() file(READ ${CMAKE_SOURCE_DIR}/VERSION BIGFOOT_VERSION) string(STRIP "${BIGFOOT_VERSION}" BIGFOOT_VERSION) project(${BIGFOOT_PROJECT_NAME} VERSION ${BIGFOOT_VERSION} DESCRIPTION "The Bigfoot engine" LANGUAGES CXX) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) set(CMAKE_CONFIGURATION_TYPES "Release;RelWithDebInfo;Debug" CACHE STRING "" FORCE) option(BUILD_TESTS OFF) option(BUILD_BENCHMARKS OFF) option(ASAN OFF) option(COVERAGE OFF) option(TRACY ON) option(VULKAN ON) option(TOOLMODE ON) set(AUTO_GENERATED_COMMENT "// AUTO-GENERATED DO NOT TOUCH") include(${CMAKE_SOURCE_DIR}/CMake/CustomTargets.cmake) include(${CMAKE_SOURCE_DIR}/CMake/FindDependencies.cmake) include(${CMAKE_SOURCE_DIR}/CMake/Utils.cmake) include(${CMAKE_SOURCE_DIR}/CMake/Package.cmake) find_program(FLATBUFFERS_FLATC_EXECUTABLE NAMES flatc) find_program(SQLITE3_EXECUTABLE NAMES sqlite3) find_program(MINJECT_EXECUTABLE NAMES minject) find_program(BIN2CPP_EXECUTABLE NAMES Bin2CPP) bigfoot_remove_default_exception_flags() set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_OPTIMIZE_DEPENDENCIES 1) if(BUILD_TESTS) enable_testing() endif() set_property(GLOBAL PROPERTY USE_FOLDERS ON) SET(CMAKE_SKIP_BUILD_RPATH FALSE) SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) SET(CMAKE_INSTALL_RPATH "\${ORIGIN}") add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bigfoot/Libs) if(${TOOLMODE}) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Tools) endif() if(${BUILD_TESTS}) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bigfoot/Tests) if(${TOOLMODE}) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Tools/Tests) endif() endif() if(${BUILD_BENCHMARKS}) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bigfoot/Benchmarks) if(${TOOLMODE}) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Tools/Benchmarks) endif() endif() add_custom_target(NatVis SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/Vendor/NatVis/EASTL/EASTL.natvis ${CMAKE_CURRENT_SOURCE_DIR}/Vendor/NatVis/VulkanHpp/VulkanHpp.natvis ${CMAKE_CURRENT_SOURCE_DIR}/Vendor/NatVis/GLM/GLM.natvis)