Regression in `master`. Template compilation failure w. `no declaration matches CSGShape3D::*`
bugtopic:buildsystemregression
### Tested versions
Reproducible in: master [872e2d0]
Not reproducible in: 4.7.2-stable [ed1daf0], 4.7.3-rc [cd709b3], 4.7.1-stable [a13da4f], 4.6.3-stable [a80a06c]
### System information
ubuntu-24.04 (github workflow and docker container), Godot v4.7.2 - OpenGL (Compatibility)
### Issue description
When creating a build profile from a minimal godot project that only contains a Node, Node2D, Node3D and a CanvasLayer and then setting both the 2D and 3D physics engines to Dummy - then the template compilation from it will fail with
```
Compiling modules/basis_universal/register_types.cpp ...
modules/csg/csg_shape.cpp:215:6:
error:
no declaration matches '
void CSGShape3D::
set_autosmooth
(bool)
'
215 | void
CSGShape3D
::set_autosmooth(bool p_smooth) {
|
^~~~~~~~~~
modules/csg/csg_shape.cpp:215:6:
note:
no functions named '
void CSGShape3D::
set_autosmooth
(bool)
'
In file included from
modules/csg/csg_shape.cpp:31
:
modules/csg/csg_shape.h:46:7:
note:
'
class CSGShape3D
' defined here
46 | class
CSGShape3D
: public GeometryInstance3D {
|
^~~~~~~~~~
modules/csg/csg_shape.cpp:221:6:
error:
no declaration matches '
bool CSGShape3D::
is_autosmooth
() const
'
221 | bool
CSGShape3D
::is_autosmooth() const {
|
^~~~~~~~~~
modules/csg/csg_shape.cpp:221:6:
note:
no functions named '
bool CSGShape3D::
is_autosmooth
() const
'
modules/csg/csg_shape.h:46:7:
note:
'
class CSGShape3D
' defined here
46 | class
CSGShape3D
: public GeometryInstance3D {
|
^~~~~~~~~~
modules/csg/csg_shape.cpp:225:6:
error:
no declaration matches '
void CSGShape3D::
set_smoothing_angle
(float)
'
225 | void
CSGShape3D
::set_smoothing_angle(const float p_angle) {
|
^~~~~~~~~~
modules/csg/csg_shape.cpp:225:6:
note:
no functions named '
void CSGShape3D::
set_smoothing_angle
(float)
'
modules/csg/csg_shape.h:46:7:
note:
'
class CSGShape3D
' defined here
46 | class
CSGShape3D
: public GeometryInstance3D {
|
^~~~~~~~~~
modules/csg/csg_shape.cpp:230:7:
error:
no declaration matches '
float CSGShape3D::
get_smoothing_angle
() const
'
230 | float
CSGShape3D
::get_smoothing_angle() const {
|
^~~~~~~~~~
modules/csg/csg_shape.cpp:230:7:
note:
no functions named '
float CSGShape3D::
get_smoothing_angle
() const
'
modules/csg/csg_shape.h:46:7:
note:
'
class CSGShape3D
' defined here
46 | class
CSGShape3D
: public GeometryInstance3D {
|
^~~~~~~~~~
modules/csg/csg_shape.cpp:
In static member function '
static void CSGShape3D::
_bind_methods
()
':
modules/csg/csg_shape.cpp:1197:85:
error:
'
set_autosmooth
' is not a member of '
CSGShape3D
'
1197 | ClassDB::bind_method(D_METHOD("set_autosmooth", "autosmooth"), &CSGShape3D::
set_autosmooth
);
|
^~~~~~~~~~~~~~
modules/csg/csg_shape.cpp:1198:70:
error:
'
is_autosmooth
' is not a member of '
CSGShape3D
'
1198 | ClassDB::bind_method(D_METHOD("is_autosmooth"), &CSGShape3D::
is_autosmooth
);
|
^~~~~~~~~~~~~
modules/csg/csg_shape.cpp:1200:95:
error:
'
set_smoothing_angle
' is not a member of '
CSGShape3D
'
1200 | ClassDB::bind_method(D_METHOD("set_smoothing_angle", "smoothing_angle"), &CSGShape3D::
set_smoothing_angle
);
|
^~~~~~~~~~~~~~~~~~~
modules/csg/csg_shape.cpp:1201:76:
error:
'
get_smoothing_angle
' is not a member of '
CSGShape3D
'
1201 | ClassDB::bind_method(D_METHOD("get_smoothing_angle"), &CSGShape3D::
get_smoothing_angle
);
|
^~~~~~~~~~~~~~~~~~~
```
I was able to verify this error for the `template_debug` and `template_release` targets for the following operating environments
- Linux
- Windows
- Web
Other environments may also be affected. I have not tried.
## Used compilation flags
**Linux**
```bash
platform=linuxbsd target=template_debug arch=x86_64 build_profile="../build_profile.build"
platform=linuxbsd production=yes target=template_release arch=x86_64 build_profile="../build_profile.build"
```
**Windows**
```bash
platform=windows target=template_debug arch=x86_64 build_profile="../build_profile.build"
platform=windows production=yes target=template_release arch=x86_64 build_profile="../build_profile.build"
```
**Web**
```bash
platform=web target=template_debug threads=no build_profile="../build_profile.build"
platform=web target=template_release threads=no build_profile="../build_profile.build"
```
### Steps to reproduce
The MRP contains a minimal project, a build profile generated from it and a docker- and compose file to reproduce the bug with master.
1. Download the MRP
2. Go to the `builder` folder
3. Download the source from the master branch or any other version you desire to test and unpack it to the `godot_src` folder.
4. edit `entrypoint.sh` and choose the to be supposed OS target by uncommenting/commenting lines
5. run `docker compose up`
6. Compilation will fail
Using the same buildprofile in any 4.7.* version yields this error https://github.com/godotengine/godot/issues/122582
### Minimal reproduction project (MRP)
[Archive.zip](https://github.com/user-attachments/files/31253951/Archive.zip)
[build_profile.build.txt](https://github.com/user-attachments/files/31253958/build_profile.build.txt)
0 条评论