Skip to content

Incorrect CMake configuration for template_release #1690

Closed
@NetroScript

Description

@NetroScript

Godot version

4.4-beta1

godot-cpp version

13cd2d9

System information

Windows 11, CMake 3.30.5, Visual Studio 2022

Issue description

When using CMake and compiling godot-cpp::template_release debugging features will still be enabled.

Specifically in

set( DEBUG_FEATURES "$<NOT:$<STREQUAL:${TARGET_NAME},template_release>>" )
DEBUG_FEATURES are turned off, when ${TARGET_NAME}is set to template_release, however it needs to be ${TARGET_ALIAS}.

This can also be seen in current build logs of the GitHub Actions such as
https://github.com/godotengine/godot-cpp/actions/runs/12892247119/job/35946077972
When checking the Build test GDExtension library step, a release version should be built, however the build command includes /D DEBUG_ENABLED /D DEBUG_METHODS_ENABLED

I investigated this, as for my extension the build on Windows MSVC was failing, as libgodot-cpp.windows.template_release.x86_64.libwas over 4GB in size. Thankfully #1628 puts it back at around 3.5GB so MSVC is working again.

However even when correcting the aforementioned line of code to set( DEBUG_FEATURES "$<NOT:$<STREQUAL:${TARGET_ALIAS},template_release>>") the line in

$<${DEBUG_FEATURES}:DEBUG_ENABLED DEBUG_METHODS_ENABLED>
still evaluates to true for me. However, I did not have the time to take a more detailed look.

Steps to reproduce

It is possible to use the same commands the CI is currently using:

mkdir cmake-build
cd cmake-build
cmake ../ -DGODOT_ENABLE_TESTING=YES
cmake --build . --verbose -t godot-cpp.test.template_release --config Release

Upon inspection of the generated build commands it will be visible how the debug info is always included.

Minimal reproduction project

/

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions