All checks were successful
Bigfoot / Build & Test Debug (Unity Build: OFF) (push) Successful in 26s
Bigfoot / Build & Test Debug (Unity Build: ON) (push) Successful in 24s
Bigfoot / Build & Test RelWithDebInfo (Unity Build: OFF) (push) Successful in 26s
Bigfoot / Build & Test RelWithDebInfo (Unity Build: ON) (push) Successful in 25s
Bigfoot / Build & Test Release (Unity Build: OFF) (push) Successful in 19s
Bigfoot / Build & Test Release (Unity Build: ON) (push) Successful in 18s
Bigfoot / Clang Format Checks (push) Successful in 8s
Reviewed-on: #8 Co-authored-by: Romain BOULLARD <romain.boullard@protonmail.com> Co-committed-by: Romain BOULLARD <romain.boullard@protonmail.com>
63 lines
2.0 KiB
CMake
63 lines
2.0 KiB
CMake
cmake_minimum_required(VERSION 3.24)
|
|
|
|
# CMake sets this flag by default, we don't use exception in bigfoot, we can remove it
|
|
string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
|
|
project(Bigfoot VERSION 0.1.0
|
|
DESCRIPTION "The Bigfoot engine"
|
|
LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
|
|
|
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(TRACY ON)
|
|
option(BUILD_TOOLS ON)
|
|
option(VULKAN ON)
|
|
option(BUILD_BENCHMARKS OFF)
|
|
|
|
set(AUTO_GENERATED_COMMENT "// AUTO-GENERATED DO NOT TOUCH")
|
|
|
|
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)
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
set(CMAKE_OPTIMIZE_DEPENDENCIES 1)
|
|
|
|
add_compile_definitions(
|
|
$<$<PLATFORM_ID:Windows>:NOMINMAX>
|
|
$<$<PLATFORM_ID:Windows>:WIN32_LEAN_AND_MEAN>
|
|
$<$<PLATFORM_ID:Windows>:BIGFOOT_WINDOWS>
|
|
$<$<PLATFORM_ID:Linux>:BIGFOOT_LINUX>
|
|
$<$<CONFIG:Release>:BIGFOOT_OPTIMIZED>
|
|
$<$<CONFIG:Debug,RelWithDebInfo>:BIGFOOT_NOT_OPTIMIZED>)
|
|
|
|
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/Sources)
|
|
if(${BUILD_TESTS})
|
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Bigfoot/Tests)
|
|
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) |