summaryrefslogtreecommitdiff
path: root/SConstruct
AgeCommit message (Collapse)Author
2022-02-09SCons: Make compilation database generation optionalRémi Verschelde
Saves around 3 s on incremental rebuilds to have it disabled by default. Can be enabled with `compiledb=yes`.
2022-02-08SCons: Add `fast_unsafe` option for faster rebuildsRémi Verschelde
This reverts #53828 which had caused a significant drop in incremental rebuild time for debug builds (from 10s to 23s on my laptop). The "faster but unsafe" options are re-added, as well as adding `max_drift=60` which we didn't use previously. These options speed up SCons' own processing of the codebase to decide what to build/rebuild (i.e. the first step before actually calling the compiler). This will therefore not make much difference for scratch builds, and is mostly useful for incremental rebuilds (including "null" rebuilds with no change). These options are enabled automatically for `debug` builds, unless `fast_unsafe=no` is passed. They are disabled by default for `release` and `release_debug` builds, unless `fast_unsafe=yes` is passed.
2022-01-13Improve python helper modules declaration in SConstruct for compatibility ↵Emmanuel Leblond
with Python 3.6 and import against helper modules's parent path
2022-01-12Explicitly declare python helper modules in SConstruct to avoid unexpected ↵Emmanuel Leblond
shadowing
2022-01-12Merge pull request #56308 from Calinou/scons-tweak-target-release-error-messageRémi Verschelde
2022-01-06Revert "Print a warning with unknown SCons variables to ease troubleshooting"Rémi Verschelde
2021-12-29Improve error when attempting to build with `tools=yes target=release`Hugo Locurcio
2021-12-06Rename `VideoPlayer` to `VideoStreamPlayer` for consistencyRémi Verschelde
It's a player for `VideoStream` resources, just like `AudioStreamPlayer` is a player for `AudioStream` resources. Closes https://github.com/godotengine/godot-proposals/issues/3624.
2021-11-30Remove editor splash screen with sponsors logoRémi Verschelde
The Godot Project Leadership Committe has decided to update the sponsoring tiers so that the Platinum Sponsorship no longer includes a logo on the editor splash screen. This lets us reclaim the editor splash screen space for community-related content instead of sponsors (e.g. a different community-designed splash screen for each stable branch?). Also removes two Platinum Sponsors whose sponsorship has expired earlier this year.
2021-11-21Print a warning with unknown SCons variables to ease troubleshootingHugo Locurcio
When disabling specific modules, misspellings can occur. Additionally, when switching between the `3.x` and `master` branches frequently, it's possible to forget about renamed modules such as `lightmapper_cpu` versus `lightmapper_rd`.
2021-11-19[HTML5] Add WebGL2 (GLES3) support using the OpenGL renderer.Fabio Alessandrelli
Note, the editor build requires the mbedtls module to be manually enabled, as it is currently needed as a ResourceUID dependency. This will need to be addressed in a separate PR.
2021-11-02[macOS] Add support for OpenGLES3 video driver.bruvzg
2021-10-31Use OpenGL 3.3 core profile instead of compatibility profileClay John
- Rename OpenGL to GLES3 in the source code per community feedback. - The renderer is still exposed as "OpenGL 3" to the user. - Hide renderer selection dropdown until OpenGL support is more mature. - The renderer can still be changed in the Project Settings or using the `--rendering-driver opengl` command line argument. - Remove commented out exporter code. - Remove some OpenGL/DisplayServer-related debugging prints.
2021-10-30Rename GLES2 driver to OpenGL to prepare for the upgrade to GLES3Hugo Locurcio
- Use lowercase driver names for the `--rendering-driver` command line argument.
2021-10-30Add GLES2 2D renderer + Linux display managerlawnjelly
First implementation with Linux display manager. - Add single-threaded mode for EditorResourcePreview (needed for OpenGL). Co-authored-by: clayjohn <claynjohn@gmail.com> Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2021-10-15Merge pull request #53833 from akien-mga/remove-webm-supportRémi Verschelde
2021-10-15Remove WebM support (and deps libvpx and opus)Rémi Verschelde
We've had many issues with WebM support and specifically the libvpx library over the years, mostly due to its poor integration in Godot's buildsystem, but without anyone really interested in improving this state. With the new GDExtensions in Godot 4.0, we intend to move video decoding to first-party extensions, and this would likely be done using something like libvlc to expose more codecs. Removing the `webm` module means we can remove libsimplewebm, libvpx and opus, which we were only used for that purpose. Both libvpx and opus were fairly complex pieces of the buildsystem, so this is a nice cleanup. This also removes the compile-time dependency on `yasm`. Fixes lots of compilation or non-working WebM issues which will be linked in the PR.
2021-10-15SCons: Set `DEBUG_ENABLED` and `DEV_ENABLED` in SConstructRémi Verschelde
They're the same for all platforms so they don't need to be repeated in all platform definitions.
2021-10-15Merge pull request #53829 from akien-mga/scons-py3.6Rémi Verschelde
2021-10-15SCons: Increase min Python version to 3.6Rémi Verschelde
Current SCons 4.2.0 still supports Python 3.5 but deprecated it, and support will be removed in the next release. It's also become needlessly restrictive to prevent ourselves from using Python 3.6 f-Strings, so it's time to up the requirement.
2021-10-15SCons: Remove MD5-timestamp and implicit cache optimizationsRémi Verschelde
They haven't really helped save much time on incremental rebuilds, and they do cause potential issues with build correctness (and possibly even one of the cause for overly eager incremental rebuilds).
2021-09-28Force optimized builds for thirdparty Embree filesjfons
2021-09-15Allow disabling the RegEx module in the editorAaron Franke
2021-08-27Makes FontData importable resource.bruvzg
Adds multi-channel SDF font texture generation and rendering support. Adds per-font oversampling support. Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading. Adds BMFont binary format and outline support.
2021-08-22Replace HTTP links with HTTPS for sites with HTTPS versionsAaron Franke
2021-08-12Use "volk" instead of statically linked Vulkan loader.bruvzg
2021-08-09Some work on double supportAaron Franke
2021-08-09Merge pull request #51427 from omar-polo/platform-detect-openbsdRémi Verschelde
automatically detect openbsd as platform=linuxbsd
2021-08-09automatically detect BSDs as platform=linuxbsdOmar Polo
2021-08-06SCons: Add method to detect Emscripten and use it for warnings configRémi Verschelde
Emscripten is LLVM-based so we want to follow the same logic. But we can't just put it as a match in `methods.using_clang()` as that would mess with the compiler version detection logic used to restrict old GCC and Clang releases.
2021-08-06SCons: Disable Clang -Wordered-compare-function-pointers warningRémi Verschelde
It's raised for us on many comparators implemented to be able to store a struct in `Set` or `Map` (who rely on `operator<` internally). In the cases I reviewed we don't actually care about the ordering and we use the struct's function pointers as that's the only distinctive data available.
2021-07-20SCons: Avoid using Python f-string to preserve Python 3.5 compatRémi Verschelde
Fixes #50629.
2021-07-13Implement the ability to disable classesreduz
* This PR adds the ability to disable classes when building. * For now it's only possible to do this via command like: `scons disable_classes=RayCast2D,Area3D` * Eventually, a proper UI will be implemented to create a build config file to do this at large scale, as well as detect what is used in the project.
2021-07-08Add elapsed time print statement to build systemHendrik Brucker
2021-06-21Print a notice when compiling with `target=debug`Hugo Locurcio
Debug builds are considerably slower than release builds or even release_debug builds. `target=debug` is still the default SCons target option, so unsuspecting users may be compiling unoptimized debug builds for their personal use.
2021-06-01LinuxBSD now compiles without vulkan/x11.Fabio Alessandrelli
2021-06-01Remove server platformFabio Alessandrelli
2021-05-31Improve compiler version extractionMmAaXx500
2021-05-04Port changes to the "raycast" module build files from 3.xjfons
2021-04-10Add option modules_enabled_by_defaulttotlmstr
2021-03-23Merge pull request #44398 from RevoluPowered/unit-tests-for-export-templatesRémi Verschelde
Add unit tests for export templates
2021-03-22Add unit tests for export templatesGordon MacPherson
2021-03-20Merge pull request #46966 from qarmin/faster_releaseRémi Verschelde
Allow to not optimize release build
2021-03-14Allow to not optimize release buildRafał Mikrut
2021-03-14Merge pull request #46799 from goostengine/module-includesRémi Verschelde
Provide missing include path for custom modules
2021-03-12Fixes small typos and grammar correctionAnshul7sp1
2021-03-10SCons: Use default env["ENV"] and prepend PATH to itRémi Verschelde
See discussion in #46814. Now going with the safe option again (like in 3.2) as it turns out that we can't rely on user environments on Windows, since each shell has a different set of env variables (especially the ones necessary to use MSVC). SCons does its own magic when we don't pass it an `ENV` dictionary, so we should preserve it and only add things in a second step. Fixes this warning when compiling with MSVC using git-bash.exe: ``` Missing environment variable: WindowsSdkDir ``` Possibly fixes build issues when having both MinGW and MSVC installed and an older SCons version.
2021-03-09SCons: Propagate the user's OS environment in env["ENV"]Rémi Verschelde
This fixes a regression from #46774 where `env["ENV"]` would miss some important env variables on Windows, such as `SystemRoot`, `PATHEXT`, etc. To have those, we can either use the default `ENV` created by SCons, or propagate the whole external environment. Fixes #46790.
2021-03-08Provide additional include paths for custom modulesAndrii Doroshenko (Xrayez)
Allows to use a module as a library, where an include path may start with module's name itself.
2021-03-07SCons: Fix parsing PATH when constructing base environmentRémi Verschelde
We constructed the SCons environment without taking any (shell) environment variables into account, and then appended a few, but too late. This would cause variables like `env[CXX]` not to be properly expanded to respect a non-standard `PATH`. With this fix, setting: ``` PATH=$GODOT_SDK/bin:$PATH ``` will now properly use `$GODOT_SDK/bin/gcc` if available over `/usr/bin/gcc`.