godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.46k stars 21.27k forks source link

Unable to build using engine build profile with opengl3 disabled #68142

Open justofisker opened 2 years ago

justofisker commented 2 years ago

Godot version

4.0.dev (e675154)

System information

Windows 11

Issue description

When you attempt to disabled the OpenGL3 renderer when using a engine build profile the compilation fails.

The contents of disabled_opengl3.build are

{
    "disabled_build_options": {
        "opengl3": false
    },
    "disabled_classes": [

    ],
    "type": "build_profile"
}

Output from running scons build_feature_profile="disabled_opengl3.build"

scons: Reading SConscript files ...
Automatically detected platform: windows
Auto-detected 24 CPU cores available for build parallelism. Using 23 cores by default. You can override it with the -j argument.
Found MSVC version 14.3, arch x86_64
Building for platform "windows", architecture "x86_64", target "editor".
Using build feature profile: disabled_opengl3.build
Checking for C header file mntent.h... no
scons: done reading SConscript files.
scons: Building targets ...
[  2%] Compiling platform\windows\godot_windows.cpp ...
[  2%] Compiling platform\windows\crash_handler_windows.cpp ...
godot_windows.cpp
crash_handler_windows.cpp
[  5%] Compiling platform\windows\os_windows.cpp ...
os_windows.cpp
[  6%] Compiling platform\windows\display_server_windows.cpp ...
[  6%] Compiling platform\windows\key_mapping_windows.cpp ...
[  6%] Compiling platform\windows\joypad_windows.cpp ...
[  6%] Compiling platform\windows\tts_windows.cpp ...
[  6%] Compiling platform\windows\windows_terminal_logger.cpp ...
display_server_windows.cpp
[  6%] key_mapping_windows.cpp
Compiling platform\windows\vulkan_context_win.cpp ...
[  6%] Compiling platform\windows\gl_manager_windows.cpp ...
joypad_windows.cpp
tts_windows.cpp
windows_terminal_logger.cpp
[  6%] rc /DTOOLS_ENABLED /DDEBUG_ENABLED /DNDEBUG /DNO_EDITOR_SPLASH /DWINDOWS_ENABLED /DWASAPI_ENABLED /DWINMIDI_ENABLED /DTYPED_METHOD_BIND /DWIN32 /DMSVC /DWINVER=0x0601 /D_WIN32_WINNT=0x0601 /DNOMINMAX /D_WIN64 /DVULKAN_ENABLED /DGLES3_ENABLED /DMINIZIP_ENABLED /DZSTD_STATIC_LINKING_ONLY /DUSE_VOLK /DVK_USE_PLATFORM_WIN32_KHR /Ithirdparty\freetype\include /Ithirdparty\libpng /Ithirdparty\volk /Ithirdparty\vulkan /Ithirdparty\vulkan\include /Ithirdparty\zstd /Ithirdparty\zlib /Iplatform\windows /I. /nologo /foplatform\windows\godot_res.windows.editor.x86_64.obj platform\windows\godot_res.rc
[  6%] vulkan_context_win.cpp
gl_manager_windows.cpp
[  6%] Generating enabled modules header.
[  9%] Compiling main\main_timer_sync.cpp ...
[  9%] Compiling main\performance.cpp ...
[  9%] main_timer_sync.cpp
performance.cpp
[ 10%] Compiling thirdparty\msdfgen\core\Contour.cpp ...
[ 10%] Compiling thirdparty\msdfgen\core\EdgeHolder.cpp ...
[ 10%] Compiling thirdparty\msdfgen\core\MSDFErrorCorrection.cpp ...
[ 10%] Compiling thirdparty\msdfgen\core\Projection.cpp ...
[ 10%] Compiling thirdparty\msdfgen\core\Scanline.cpp ...
[ 10%] Contour.cpp
[ 10%] Compiling thirdparty\msdfgen\core\Shape.cpp ...
EdgeHolder.cpp
[ 10%] Compiling thirdparty\msdfgen\core\SignedDistance.cpp ...
[ 10%] Compiling thirdparty\msdfgen\core\Vector2.cpp ...
MSDFErrorCorrection.cpp
[ 10%] Compiling thirdparty\msdfgen\core\contour-combiners.cpp ...
Projection.cpp
Scanline.cpp
Shape.cpp
SignedDistance.cpp
[ 10%] Vector2.cpp
Compiling main\main.cpp ...
[ 10%] Compiling modules\register_module_types.gen.cpp ...
contour-combiners.cpp
[ 10%] Compiling thirdparty\msdfgen\core\edge-coloring.cpp ...
main.cpp
register_module_types.gen.cpp
edge-coloring.cpp
[ 10%] Compiling thirdparty\msdfgen\core\edge-segments.cpp ...
[ 10%] Compiling thirdparty\msdfgen\core\edge-selectors.cpp ...
edge-segments.cpp
[ 10%] edge-selectors.cpp
Compiling thirdparty\msdfgen\core\equation-solver.cpp ...
[ 10%] Compiling thirdparty\msdfgen\core\msdf-error-correction.cpp ...
equation-solver.cpp
[ 10%] Linking Static Library modules\modules.windows.editor.x86_64.lib ...
msdf-error-correction.cpp
[ 10%] Compiling thirdparty\msdfgen\core\msdfgen.cpp ...
[ 10%] Compiling thirdparty\msdfgen\core\rasterization.cpp ...
[ 11%] Compiling thirdparty\msdfgen\core\render-sdf.cpp ...
[ 11%] Compiling thirdparty\msdfgen\core\sdf-error-estimation.cpp ...
[ 11%] Compiling thirdparty\msdfgen\core\shape-description.cpp ...
msdfgen.cpp
[ 11%] Compiling thirdparty\libtheora\bitpack.c ...
rasterization.cpp
sdf-error-estimation.cpp
[ 11%] shape-description.cpp
[ 11%] bitpack.c
[ 11%] render-sdf.cpp
[ 11%] Compiling thirdparty\libtheora\cpu.c ...
[ 11%] Compiling thirdparty\libtheora\decinfo.c ...
[ 11%] Compiling thirdparty\libtheora\decode.c ...
decinfo.c
cpu.c
[ 11%] Compiling thirdparty\libtheora\dequant.c ...
[ 11%] decode.c
[ 11%] Compiling thirdparty\libtheora\fragment.c ...
[ 11%] Compiling thirdparty\libtheora\huffdec.c ...
dequant.c
[ 11%] Compiling thirdparty\libtheora\idct.c ...
fragment.c
[ 11%] Compiling thirdparty\libtheora\info.c ...
huffdec.c
[ 11%] Compiling thirdparty\libtheora\internal.c ...
idct.c
[ 11%] info.c
[ 11%] internal.c
Compiling thirdparty\libtheora\quant.c ...
[ 11%] Compiling thirdparty\libtheora\state.c ...
quant.c
state.c
[ 12%] Compiling thirdparty\libvorbis\bitrate.c ...
bitrate.c
[ 12%] Linking Static Library modules\msdfgen\msdfgen_builtin.windows.editor.x86_64.lib ...
[ 12%] Compiling thirdparty\libvorbis\block.c ...
[ 12%] Compiling thirdparty\libvorbis\codebook.c ...
[ 12%] Compiling thirdparty\libvorbis\envelope.c ...
[ 12%] Compiling thirdparty\libvorbis\floor0.c ...
[ 12%] Compiling thirdparty\libvorbis\floor1.c ...
block.c
[ 12%] Compiling thirdparty\libvorbis\info.c ...
[ 12%] codebook.c
[ 12%] Compiling thirdparty\libvorbis\lookup.c ...
[ 12%] envelope.c
[ 12%] Compiling thirdparty\libvorbis\lpc.c ...
[ 12%] Compiling thirdparty\libvorbis\lsp.c ...
floor0.c
[ 12%] floor1.c
[ 12%] Compiling thirdparty\libvorbis\mapping0.c ...
[ 12%] info.c
[ 12%] Compiling thirdparty\libvorbis\mdct.c ...
[ 12%] lookup.c
[ 12%] Compiling thirdparty\libvorbis\psy.c ...
[ 12%] lpc.c
[ 12%] Compiling thirdparty\libvorbis\registry.c ...
lsp.c
mapping0.c
mdct.c
psy.c
registry.c
[ 12%] Compiling modules\msdfgen\register_types.cpp ...
[ 12%] Compiling modules\theora\register_types.cpp ...
[ 12%] Compiling modules\theora\video_stream_theora.cpp ...
[ 12%] Compiling thirdparty\libvorbis\res0.c ...
[ 12%] Compiling thirdparty\libvorbis\sharedbook.c ...
[ 12%] Compiling thirdparty\libvorbis\smallft.c ...
register_types.cpp
[ 12%] Compiling thirdparty\libvorbis\synthesis.c ...
register_types.cpp
[ 12%] video_stream_theora.cpp
Compiling thirdparty\libvorbis\vorbisfile.c ...
res0.c
smallft.c
sharedbook.c
synthesis.c
vorbisfile.c
[ 12%] Compiling thirdparty\libvorbis\window.c ...
[ 12%] window.c
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_backend.cpp ...
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_basis_file.cpp ...
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_bc7enc.cpp ...
basisu_backend.cpp
basisu_basis_file.cpp
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_opencl.cpp ...
basisu_bc7enc.cpp
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_comp.cpp ...
basisu_opencl.cpp
[ 13%] basisu_comp.cpp
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_enc.cpp ...
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_etc.cpp ...
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_frontend.cpp ...
basisu_enc.cpp
basisu_etc.cpp
basisu_frontend.cpp
[ 13%] Linking Static Library modules\module_msdfgen.windows.editor.x86_64.lib ...
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_gpu_texture.cpp ...
basisu_gpu_texture.cpp
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_kernels_sse.cpp ...
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_pvrtc1_4.cpp ...
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_resampler.cpp ...
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_resample_filters.cpp ...
basisu_kernels_sse.cpp
[ 13%] basisu_pvrtc1_4.cpp
[ 13%] Compiling thirdparty\basis_universal\encoder\basisu_ssim.cpp ...
[ 13%] basisu_resampler.cpp
Compiling thirdparty\basis_universal\encoder\basisu_uastc_enc.cpp ...
basisu_resample_filters.cpp
[ 13%] Compiling modules\vorbis\resource_importer_ogg_vorbis.cpp ...
basisu_ssim.cpp
[ 13%] Compiling modules\vorbis\register_types.cpp ...
basisu_uastc_enc.cpp
resource_importer_ogg_vorbis.cpp
register_types.cpp
[ 13%] Compiling modules\vorbis\audio_stream_ogg_vorbis.cpp ...
[ 13%] Compiling thirdparty\basis_universal\encoder\jpgd.cpp ...
[ 14%] Compiling thirdparty\basis_universal\encoder\pvpngreader.cpp ...
audio_stream_ogg_vorbis.cpp
jpgd.cpp
pvpngreader.cpp
[ 14%] .\thirdparty/glad/glad/glad.h(95): fatal error C1083: Cannot open include file: 'KHR/khrplatform.h': No such file or directory
Compiling thirdparty\basis_universal\transcoder\basisu_transcoder.cpp ...
[ 14%] Compiling modules\bmp\image_loader_bmp.cpp ...
[ 14%] Compiling modules\bmp\register_types.cpp ...
[ 14%] Compiling modules\camera\register_types.cpp ...
[ 14%]  image_loader_bmp.cpp
       Compiling modules\camera\camera_win.cpp ...
scons: *** [platform\windows\display_server_windows.windows.editor.x86_64.obj] Error 2
register_types.cpp
basisu_transcoder.cpp
register_types.cpp
camera_win.cpp
scons: building terminated because of errors.
[Time elapsed: 00:00:11.775]

Steps to reproduce

Run scons build_feature_profile="disabled_opengl3.build" with the provided engine build profile or create one where you disable opengl3.

Minimal reproduction project

disabled_opengl3.build.zip

justofisker commented 2 years ago

Further looking into this it seems that GLES3_ENABLED is defined even when opengl3 is disabled through engine build profiles.