ITADN

Regression in `master`. Template compilation failure w. `no declaration matches CSGShape3D::*`

#122628OpenOfficialLambdax 创建于 2 天前
bugtopic:buildsystemregression
O
OfficialLambdaxcommented
### 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 条评论