mirror of
https://github.com/godotengine/godot-cpp.git
synced 2026-01-01 05:48:37 +03:00
This is just a single step, re-arranging the code without actually changing its functionality. new docs/cmake.md moved the block of comments from the start of the CMakeLists.txt into the cmake.md file and converted content to markdown. new cmake/godotcpp.cmake Moved all exposed options into a new function godotcpp_options() Moved configuration and generation code into godotcpp_generate() To get all the options into the godotcpp_options() I changed the logic of GODOT_USE_HOT_RELOAD which I believe is a closer match to scons, that if the options is not set, and the build type is not release, then it defaults to ON. I msvc builds require the default flags to be modified or it will throw errors. I have added the links to articles in the commit, but its about removing the runtime error checks /RTC1 from the CMAKE_CXX_FLAGS_DEBUG variable. This needs to happen before the files are included. https://stackoverflow.com/questions/74426638/how-to-remove-rtc1-from-specific-target-or-file-in-cmake https://discourse.cmake.org/t/how-do-i-remove-compile-options-from-target/5965 Renamed GodotCompilerWarnings.cmake to common_compiler_flags.cmake to match scons Included files explicitly by path, as we dont need to append to the CMAKE_MODULES_PATH which effects the whole build tree. This prevents consumers of the library from clobbering the names of the cmake include files and breaking the build.
25 lines
958 B
CMake
25 lines
958 B
CMake
cmake_minimum_required(VERSION 3.13)
|
|
project(godot-cpp LANGUAGES CXX)
|
|
|
|
# Configure CMake
|
|
# https://discourse.cmake.org/t/how-do-i-remove-compile-options-from-target/5965
|
|
# https://stackoverflow.com/questions/74426638/how-to-remove-rtc1-from-specific-target-or-file-in-cmake
|
|
if(${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC)
|
|
if(NOT CMAKE_BUILD_TYPE MATCHES Debug)
|
|
STRING(REGEX REPLACE "/RTC(su|[1su])" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
string(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
|
|
endif ()
|
|
endif ()
|
|
|
|
include( ${PROJECT_SOURCE_DIR}/cmake/godotcpp.cmake )
|
|
|
|
# I know this doesn't look like a typical CMakeLists.txt, but as we are
|
|
# attempting mostly feature parity with SCons, and easy maintenance, the closer
|
|
# the two build systems look the easier they will be to keep in lockstep.
|
|
|
|
# The typical target definitions are in ${PROJECT_SOURCE_DIR}/cmake/godotcpp.cmake
|
|
|
|
godotcpp_options()
|
|
|
|
godotcpp_generate()
|