[Scummvm-git-logs] scummvm master -> 6ad2e5d337fd850b8d6b17585a87c27a2f98b23d

orgads noreply at scummvm.org
Sun Jun 1 06:43:44 UTC 2025


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
6ad2e5d337 CREATE_PROJECT: Disable NDEBUG for cmake


Commit: 6ad2e5d337fd850b8d6b17585a87c27a2f98b23d
    https://github.com/scummvm/scummvm/commit/6ad2e5d337fd850b8d6b17585a87c27a2f98b23d
Author: Orgad Shaneh (orgads at gmail.com)
Date: 2025-06-01T09:43:41+03:00

Commit Message:
CREATE_PROJECT: Disable NDEBUG for cmake

ScummVM makes heavy use of assert, and having NDEBUG defined makes it no-op.

Inspired by https://github.com/llvm/llvm-project/blob/1f7885cf9c68/llvm/cmake/modules/HandleLLVMOptions.cmake#L118

Changed paths:
    devtools/create_project/cmake.cpp


diff --git a/devtools/create_project/cmake.cpp b/devtools/create_project/cmake.cpp
index 1d436c1a270..f064ce5d7ef 100644
--- a/devtools/create_project/cmake.cpp
+++ b/devtools/create_project/cmake.cpp
@@ -87,10 +87,23 @@ void CMakeProvider::createWorkspace(const BuildSetup &setup) {
 	workspace << "cmake_minimum_required(VERSION 3.13)\n";
 	workspace << "project(" << setup.projectDescription << ")\n\n";
 
-	workspace << R"(set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+	workspace << R"EOS(set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 set(CMAKE_CXX_STANDARD 11) # Globally enable C++11
-if(CMAKE_BUILD_TYPE STREQUAL "Release")
-	add_definitions(-DRELEASE_BUILD)
+string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+if(NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG")
+	add_definitions(-DRELEASE_BUILD -UNDEBUG)
+
+	# Also remove /D NDEBUG to avoid MSVC warnings about conflicting defines.
+	foreach (flags_var_to_scrub
+			CMAKE_CXX_FLAGS_RELEASE
+			CMAKE_CXX_FLAGS_RELWITHDEBINFO
+			CMAKE_CXX_FLAGS_MINSIZEREL
+			CMAKE_C_FLAGS_RELEASE
+			CMAKE_C_FLAGS_RELWITHDEBINFO
+			CMAKE_C_FLAGS_MINSIZEREL)
+		string (REGEX REPLACE "(^| )[/-]D *NDEBUG($| )" " "
+			"${flags_var_to_scrub}" "${${flags_var_to_scrub}}")
+	endforeach()
 endif()
 
 find_package(PkgConfig QUIET)
@@ -129,7 +142,7 @@ macro(find_feature)
 	endif()
 endmacro()
 
-)";
+)EOS";
 
 	workspace << R"EOS(function(add_engine engine_name)
 	string(TOUPPER ${engine_name} _engine_var)




More information about the Scummvm-git-logs mailing list