summaryrefslogtreecommitdiffstats
path: root/SConstruct
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #94109 from akien-mga/scons-linker-optflagsRémi Verschelde2024-07-111-4/+11
|\ | | | | | | SCons: Pass optimization flags to the linker too, needed by Emscripten
| * SCons: Pass optimization flags to the linker too, needed by EmscriptenRémi Verschelde2024-07-091-4/+11
| |
* | [Web] Fix debug symbols in web buildsFabio Alessandrelli2024-07-101-1/+7
|/
* SCons: Default `optimize` to `auto`, fixing `target`/`dev_build` inference ↵Rémi Verschelde2024-07-091-8/+12
| | | | | | for Web Fixes #94087.
* Fix not using `encoding="utf-8"` when writing to files or reading from themKusok2024-06-191-1/+1
| | | | Co-authored-by: ChristopheClaustre <christophe.claustre.31@gmail.com>
* Merge pull request #79126 from bruvzg/SteamTimeRémi Verschelde2024-06-031-0/+1
|\ | | | | Enable optional minimal SteamAPI integration for usage time tracking (editor only).
| * Enable optional minimal SteamAPI integration for usage time tracking (editor ↵bruvzg2024-05-311-0/+1
| | | | | | | | only).
* | SCons: Process platform-specific flags earlierRémi Verschelde2024-05-301-9/+8
|/ | | | | | | | | | Some of the logic in SCons depends on flags that get overridden in the platform-specific `detect.py`, so it needs to be processed first. For example the Android/iOS/Web platforms override the default `target` to `template_debug`, but this was processed too late so e.g. the logic that sets `env.editor_build` would set it to true due to the default `target` value in the environment being `editor`.
* SCons: Minor fixes/adjustments for web compilationThaddeus Crews2024-05-241-1/+1
|
* SCons: Convert platform `get_flags` to dictionaryThaddeus Crews2024-05-221-3/+5
|
* Update pre-commit hooks configuration to use `ruff` instead of `black`Jakub Marcowski2024-05-211-12/+12
|
* SCons: Fix potential Windows ANSI exceptionThaddeus Crews2024-05-181-10/+18
|
* SCons: Bump min version to 3.1.2, test it on CI with one Linux jobRémi Verschelde2024-05-171-1/+1
| | | | | | | | | | | The min SCons version had to be bumped as SCons 3.0 before 3.0.3 seems broken (see #92043), and there's little gain from supporting 3.0.3-3.0.5. 3.1.2 is also the first version to avoid ambiguities between Python 2 and Python 3 usage, so we finally use it as the minimum baseline. Also test against Python 3.6 which is also our minimum supported version. This should help prevent regressions whenever we modernize the build scripts.
* SCons: Restore compatibility with SCons < 4.0.0Rémi Verschelde2024-05-171-2/+2
| | | | Fixes #91986.
* [SCons] Add options to override AR, AR and RC flags,bruvzg2024-05-151-0/+6
|
* Merge pull request #91833 from akien-mga/scons-min-gcc-version-9Rémi Verschelde2024-05-141-15/+5
|\ | | | | | | SCons: Bump minimum supported GCC version to GCC 9
| * SCons: Bump minimum supported GCC version to GCC 9Rémi Verschelde2024-05-111-15/+5
| | | | | | | | | | | | | | - GCC 7 supports C++17 but seems to have breaking regressions, see #79352. - GCC 8 broke C++17 guaranteed copy elision support, fixed in 8.4, but... - GCC 9 is old enough (2022) to use as a baseline and stop dealing with unmaintained and less efficient compiler versions.
* | Merge pull request #91866 from programneer/dont-splash-my-editorRémi Verschelde2024-05-131-8/+9
|\ \ | | | | | | | | | Don't define `NO_EDITOR_SPLASH` in export templates
| * | Don't define NO_EDITOR_SPLASH in export templatesProgramneer2024-05-121-8/+9
| |/
* / SCons: Preserve `Environment` values when updating `Variables`Rémi Verschelde2024-05-101-41/+33
|/ | | | | | | | | | | Finally reading the docs for `SCons.Variables.Update` let me find this optional parameter, which solves the hacks and pain we've dealt with for years: > args (optional) – a dictionary of keys and values to update in env. > If omitted, uses the variables from the commandline. By passing the environment itself, we preserve the values we've overridden in `SConstruct` or `detect.py`.
* SCons: Generate all scripts nativelyThaddeus Crews2024-05-071-8/+5
|
* SCons: Colorize warnings/errors during generationThaddeus Crews2024-04-281-36/+60
|
* SCons: `scons_version` to environment variableThaddeus Crews2024-04-241-8/+6
|
* SCons: Only use alias if SCons v4.3 or laterThaddeus Crews2024-04-231-6/+12
|
* SCons: Utilize native Variable alias functionalityThaddeus Crews2024-04-181-8/+3
|
* SCons: Convert `env_base` to `env`Thaddeus Crews2024-04-171-79/+77
|
* Only define ENGINE_UPDATE_CHECK_ENABLED in editor buildsProgramneer2024-04-171-1/+1
|
* Add automatic checking for engine updateskobewi2024-04-151-0/+4
|
* SCons: Make new debug_paths_relative option opt-inRémi Verschelde2024-04-151-1/+1
| | | | | | As pointed out in https://github.com/godotengine/godot/pull/78232#issuecomment-2056467297, it actually makes it harder to run Godot locally while keeping the relationship with the header files it was compiled from.
* SCons: Add GCC/Clang option to make debug file paths relativeRémi Verschelde2024-04-121-67/+81
|
* SCons: Fix up build with Python 3.10Rémi Verschelde2024-04-051-1/+1
| | | | | | | | It gives: > SyntaxError: f-string expression part cannot include a backslash Follow-up to #90214.
* SCons: Refactor `selected_platform` conditionalThaddeus Crews2024-04-041-529/+514
|
* SCons: Add an option to enable the experimental ninja build backendRiteo2024-03-151-3/+20
| | | | | | | | | | | | | | | With this option turned on, if properly set up, SCons generates a `build.ninja` file and quits. To actually build the engine, the user can then call `ninja` with whatever options they might prefer (not everything is yet transferred properly to this new generated file). Ideally, the scons file should never be called again, as ninja automatically detects any SCons build script change and invokes the required commands to regenerate itself. This approach speeds up incremental builds considerably, as it limits SCons to code generation and uses ninja's extremely fast timestamp-based file change detector.
* Fix `compiledb` SCons tool availabilityAdam Scott2024-03-141-10/+10
|
* SCons: Remove `run_in_subprocess` dependencyThaddeus Crews2024-03-111-0/+10
|
* Add two new COMSTR environment variablesThaddeus Crews2024-03-011-3/+3
|
* SCons: Fix `CCFLAGS`, `LINKFLAGS`, etc. command line overridesRémi Verschelde2024-02-201-22/+15
| | | | | Also adds `CPPDEFINES` which allows passing new pre-processor defines, letting SCons handle passing `-D` or `/D` based on the compiler.
* [iOS/macOS] Add option to automatically build (and sign / archive) bundles.bruvzg2024-02-131-1/+0
|
* Merge pull request #88025 from shana/fix-incremental-buildsRémi Verschelde2024-02-071-1/+1
|\ | | | | | | SCons: Fix incremental builds breaking when querying the dependency tree from a SCsub
| * Use an absolute path for SConsignFile so all Sconscript invocations share ↵Andreia Gaita2024-02-061-1/+1
| | | | | | | | | | | | | | | | | | | | the same database SConscript("some SCsub path") calls create a new context where a relative path to the .sconsign file is interpreted as being next to the currently executing SCsub, and not the one at the root. This breaks incremental build detection because scons can't find the build information of dependent files outside of the SCsub directory and just rebuilds everything every time.
* | Add new VS proj generation logic that supports any platform that wants to opt inAndreia Gaita2024-01-311-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Custom Visual Studio project generation logic that supports any platform that has a msvs.py script, so Visual Studio can be used to run scons for any platform, with the right defines per target. Invoked with `scons vsproj=yes` To generate build configuration files for all platforms+targets+arch combinations, users should call ``` scons vsproj=yes platform=XXX target=YYY [other build flags] ``` for each combination of platform+target[+arch]. This will generate the relevant vs project files but skip the build process, so that project files can be quickly generated without waiting for a command line build. This lets project files be quickly generated even if there are build errors. All possible combinations of platform+target are created in the solution file by default, but they won't do anything until each one is set up with a scons vsproj=yes command for the respective platform in the appropriate command line. This lets users only generate the combinations they need, and VS won't have to parse settings for other combos. Only platforms that opt in to vs proj generation by having a msvs.py file in the platform folder are included. Platforms with a msvs.py file will be added to the solution, but only the current active platform+target+arch will have a build configuration generated, because we only know what the right defines/includes/flags/etc are on the active build target currently being processed by scons. Platforms that don't support an editor target will have a dummy editor target that won't do anything on build, but will have the files and configuration for the windows editor target. To generate AND build from the command line, run ``` scons vsproj=yes vsproj_gen_only=no ```
* | Add THREADS_ENABLED macro in order to compile Godot to run on the main threadAdam Scott2024-01-171-0/+8
|/
* Merge pull request #84979 from Calinou/scons-web-platform-aliasYuri Sizov2023-12-201-10/+11
|\ | | | | | | Alias `platform=javascript` SCons option to `platform=web`
| * Alias `platform=javascript` SCons option to `platform=web`Hugo Locurcio2023-11-161-10/+11
| | | | | | | | | | This makes build scripts backward-compatible, as was already done for other platforms that were renamed in 4.0.
* | Add option in SCons to copy environment variablesGeorge Marques2023-12-151-0/+7
| | | | | | | | | | | | This allows custom environment variables to be used during the build, which is useful when using alternative compilation tools such as caches and distributed build systems.
* | Merge pull request #84440 from Calinou/scons-android-add-generate-apk-optionRémi Verschelde2023-12-131-0/+1
|\ \ | | | | | | | | | Add `generate_apk=yes` to generate an APK after building
| * | Add `generate_apk=yes` to generate an APK after buildingHugo Locurcio2023-12-131-0/+1
| |/ | | | | | | | | | | | | | | | | This is useful to speed up iteration when working on the engine (or editor). This can be combined with a script that calls `adb` to deploy the APK on a device (coupled with Godot's `--export-*` for projects) to further speed up iteration.
* / Add Direct3D 12 RenderingDevice implementationPedro J. Estébanez2023-12-121-0/+1
|/
* SCons: Reduce and cleanup verbose output for SCU buildsRémi Verschelde2023-10-261-1/+1
| | | | | | | | Verbose output is meant for debugging the SCU mode itself and can be triggered by changing the `_verbose` bool manually. Prefix all prints with "SCU:" for context, and print the processed folders all at once instead of when adding the sources.
* SCons: Use CXXFLAGS to disable exceptions, it's only for C++Rémi Verschelde2023-10-191-2/+2
| | | | Following discussion in https://github.com/godotengine/godot-cpp/pull/1216.