summaryrefslogtreecommitdiffstats
path: root/methods.py
Commit message (Collapse)AuthorAgeFilesLines
...
* CI: Update static checks to black 23.3.0Rémi Verschelde2023-06-191-9/+0
| | | | And apply it to the codebase, removing empty lines at the start of blocks.
* SCU build - Change options to "yes / no"lawnjelly2023-06-081-1/+1
| | | | To save confusion for users who prefer yes / no, rather than none / dev / all.
* Single Compilation Unit build.lawnjelly2023-06-061-2/+82
| | | | | Adds support for simple SCU build (DEV_ENABLED only). This speeds up compilation by compiling multiple cpp files within a single translation unit.
* Fix forced optimization in dev_buildsmix82023-04-101-1/+1
| | | | Fixes forced optimization in dev_build.
* Fix the Python type error when creating the .sln fileHK-SHAO2023-03-251-1/+1
|
* Let VS solution name be overriddenPedro J. Estébanez2023-02-161-2/+2
|
* Merge pull request #63312 from bruvzg/one_clickRémi Verschelde2023-01-131-18/+18
|\ | | | | | | [Export] Add one-click deploy over SSH for the desktop exports.
| * [Export] Add one-click deploy over SSH for the desktop exports.bruvzg2022-12-291-18/+18
| | | | | | | | | | | | Add one-click deploy over SSH for the desktop exports. Add ZIP export option for Linux and Windows. Change export plugin icons to SVG format.
* | Support Git worktrees in generation of hash headerPedro J. Estébanez2023-01-091-0/+4
|/
* Rename `float=64` SCons option to `precision=double`Hugo Locurcio2022-12-101-3/+3
| | | | | This avoids confusion with the old `bits=64` option and building for 64-bit CPUs in general.
* .NET: Generate SdkPackageVersions.props from version.pyRémi Verschelde2022-10-051-9/+9
| | | | | | | | | | | | | | | | | Ensures that the versions always match the Godot version, albeit following SemVer 2.0 so inserting a dot between "beta" and the build number. For "stable" status, we omit the suffix as this would be interpreted as a pre-release build too. So we have: | Godot version | Nupkg version | | -------------- | -------------- | | 4.0.0-beta | 4.0.0-beta | | 4.0.0-beta2 | 4.0.0-beta.2 | | 4.0.0-rc1 | 4.0.0-rc.1 | | 4.0.0-stable | 4.0.0 |
* Various enhancements to Visual Studio solution generation.TechnoPorg2022-10-041-2/+8
| | | | | This adds support for building solutions with dev_mode and/or float=64 enabled. Additionally, it adds solution generation to the Windows CI to catch future regressions.
* Merge pull request #66718 from afestini/fix_vs_project_creationRémi Verschelde2022-10-041-3/+2
|\ | | | | | | Fix VS project creation
| * vsproj: create build targets depending on dev_buildAlexander Festini2022-10-031-3/+2
| |
* | fix methods.py ->NameError: name 'sys' is not definedjwt2022-10-021-0/+1
|/ | | | | | Update methods.py Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
* ci: add Python static analysis check via mypyJiri Suchan2022-09-301-3/+1
|
* Merge pull request #66242 from akien-mga/scons-unify-tools-targetRémi Verschelde2022-09-301-13/+12
|\
| * SCons: Unify tools/target build type configurationRémi Verschelde2022-09-261-13/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements https://github.com/godotengine/godot-proposals/issues/3371. New `target` presets ==================== The `tools` option is removed and `target` changes to use three new presets, which match the builds users are familiar with. These targets control the default optimization level and enable editor-specific and debugging code: - `editor`: Replaces `tools=yes target=release_debug`. * Defines: `TOOLS_ENABLED`, `DEBUG_ENABLED`, `-O2`/`/O2` - `template_debug`: Replaces `tools=no target=release_debug`. * Defines: `DEBUG_ENABLED`, `-O2`/`/O2` - `template_release`: Replaces `tools=no target=release`. * Defines: `-O3`/`/O2` New `dev_build` option ====================== The previous `target=debug` is now replaced by a separate `dev_build=yes` option, which can be used in combination with either of the three targets, and changes the following: - `dev_build`: Defines `DEV_ENABLED`, disables optimization (`-O0`/`/0d`), enables generating debug symbols, does not define `NDEBUG` so `assert()` works in thirdparty libraries, adds a `.dev` suffix to the binary name. Note: Unlike previously, `dev_build` defaults to off so that users who compile Godot from source get an optimized and small build by default. Engine contributors should now set `dev_build=yes` in their build scripts or IDE configuration manually. Changed binary names ==================== The name of generated binaries and object files are changed too, to follow this format: `godot.<platform>.<target>[.dev][.double].<arch>[.<extra_suffix>][.<ext>]` For example: - `godot.linuxbsd.editor.dev.arm64` - `godot.windows.template_release.double.x86_64.mono.exe` Be sure to update your links/scripts/IDE config accordingly. More flexible `optimize` and `debug_symbols` options ==================================================== The optimization level and whether to generate debug symbols can be further specified with the `optimize` and `debug_symbols` options. So the default values listed above for the various `target` and `dev_build` combinations are indicative and can be replaced when compiling, e.g.: `scons p=linuxbsd target=template_debug dev_build=yes optimize=debug` will make a "debug" export template with dev-only code enabled, `-Og` optimization level for GCC/Clang, and debug symbols. Perfect for debugging complex crashes at runtime in an exported project.
* | SCons: Fix MSVC D9025 warning overriding opt levelRémi Verschelde2022-09-271-12/+12
|/ | | | And cleanup disable_warnings too to avoid setting `/w` / `-w` multiple times.
* Fix compilation with custom "GODOT_VERSION_STATUS"Björn Feber2022-09-251-1/+1
|
* Don't add `editor_sources` to vs_project when `tools=no`nikitalita2022-09-241-1/+2
| | | `editor_sources` was being added to the vs_project when godot is compiled with `tools=no`, which caused the build to fail.
* SCons: Add `methods.get_version_info()` method returning a DictRémi Verschelde2022-09-141-29/+64
| | | | | | | | This makes it possible to retrieve all relevant versioning info used to generate `core/version_generated.gen.h` in the buildsystem. Notably it makes the custom logic parsing the `GODOT_VERSION_STATUS` environment variable to override status easy to reuse.
* C#: Replace libnethost dependency to find hostfxrIgnacio Roldán Etcheverry2022-09-071-15/+6
| | | | | | | We want to replace libnethost as it gives us issues with some compilers. Our implementation tries to mimic libnethost's hostfxr_resolver search logic. We try to use the same function names for easier comparing in case we need to update this in the future.
* Fix build failures for Android on WindowsFredia Huya-Kouadio2022-08-311-10/+11
| | | | The issue is caused by https://github.com/godotengine/godot/pull/64306 which makes use of a 3.7 feature while the current recommended python version is 3.5 for 3.x and 3.6 for master.
* Correct output file names for Visual Studio project generationSaracenOne2022-08-271-1/+1
|
* Unify bits, arch, and android_arch into env["arch"]Aaron Franke2022-08-251-1/+1
| | | | | | Fully removes the `bits` option and adapts the code that relied on it. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
* C#: Begin move to .NET CoreIgnacio Roldán Etcheverry2022-08-221-7/+10
| | | | | | | | | | | | We're targeting .NET 5 for now to make development easier while .NET 6 is not yet released. TEMPORARY REGRESSIONS --------------------- Assembly unloading is not implemented yet. As such, many Godot resources are leaked at exit. This will be re-implemented later together with assembly hot-reloading.
* Fix jumbled error output when using Windows spawn fixPedro J. Estébanez2022-08-121-0/+1
|
* [Scons] Implement module dependency sorting.Fabio Alessandrelli2022-08-041-7/+39
| | | | | | | | | | | Modules can now call: env.module_add_dependencies(name: str, deps: list, optional: bool) To add required or optional dependencies during the "can_build" step. Required dependencies will be checked and the module will be not be enabled when they are missing, printing a warning to notify the user.
* SCons: Fix creating VS solution with SCons 4.4.0Rémi Verschelde2022-07-311-1/+11
| | | | | | Fixes #63709. Co-authored-by: 19PHOBOSS98 <37253663+19PHOBOSS98@users.noreply.github.com>
* support git packed refs in version generatorNathan Franke2022-07-241-1/+13
|
* Rename OSX to macOS and iPhoneOS to iOS.bruvzg2022-07-211-5/+5
|
* Refactor module initializationreduz2022-05-041-23/+12
| | | | | | | * Changed to use the same stages as extensions. * Makes the initialization more coherent, helping solve problems due to lack of stages. * Makes it easier to port between module and extension. * removed the DRIVER initialization level (no longer needed).
* Core: Move generated `VERSION_HASH` to a `.cpp` fileRémi Verschelde2022-02-091-5/+3
| | | | | This lets us have its definition in `core/version.h` and avoid rebuilding a handful of files every time the commit hash changes.
* Merge pull request #55968 from Calinou/scons-tweak-build-messagesRémi Verschelde2022-01-171-29/+23
|\
| * Tweak SCons compilation messages to be more discreetHugo Locurcio2021-12-151-29/+23
| | | | | | | | | | | | | | All compilation messages are now written in blue to ensure that compiler errors and warnings stand out more. Messages were also slightly shortened to make them easier to fit on a single line on narrow terminals.
* | VS Projects: Don't include `mono_reg` without its moduleMario Liebisch2022-01-151-1/+2
|/
* Allow dehardcoding documentation branch and URL in docs linksRémi Verschelde2021-11-151-0/+2
| | | | | | | | | | | | | | This makes it possible to change the branch of the documentation that URLs are pointing to without having to modify all class reference files. In the XML class reference, the `$DOCS_URL` placeholder should be used, and will be replaced automatically in the editor and when generating the RST class reference. The documentation branch string is set in `version.py`. Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
* Fix import for collections Mapping Hristo Stamenov2021-10-251-2/+2
| | | | Mapping and other "abstract base classes" were moved after python 3.3 from collections to collections.abc Python 3.3 is long gone and a newer version of python won't support this code.
* Merge pull request #53376 from ganondev/vsproj-props-for-monoRémi Verschelde2021-10-181-49/+127
|\
| * Variants and targets are generated instead of manually defined. The specific ↵Edward Auttonberry2021-10-061-49/+127
| | | | | | | | | | | | | | | | | | | | details for each configuration are logically separated from the generators Add support for specifying defines for each configuration Add support for specifying extra cli args for each configuration Add support for specifying extra includes for each configuration
* | SCons: List `.gen.cpp` sources explicitly to avoid globbing errorsRémi Verschelde2021-10-151-5/+8
|/ | | | | | | | | | | | Whenever we change the name (or remove) generated cpp files with the `.gen.cpp` extension, users run into build issues when switching between branches (i.e. switching before and after the name change/removal). This is because we glob `*.cpp` so if a now-obsolete file from a previous build is present, we'll include it too, potentially leading to bugs or compilation failure (due to missing headers or invalid code). So globbing patterns in `add_source_files` will now skip files ending with `.gen.cpp`, which should instead be passed explicitly where they're used.
* Force optimized builds for thirdparty Embree filesjfons2021-09-281-0/+11
|
* Makes FontData importable resource.bruvzg2021-08-271-5/+6
| | | | | | | 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.
* SCons: Fix potential error when pruning cache on CIRémi Verschelde2021-08-181-3/+6
| | | | | | | | This could cause spurious errors on CI when trying to prune the cache, as for some reason it tries to remove files/paths which do not exist. That points at a bug in the `cache_progress` logic but at least this workaround should prevent CI failures.
* SCons: Add method to detect Emscripten and use it for warnings configRémi Verschelde2021-08-061-0/+4
| | | | | | 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.
* SCons: Fix info message when defining `GODOT_VERSION_STATUS`Rémi Verschelde2021-08-051-1/+1
|
* Allow overriding `VERSION_STATUS` with `GODOT_VERSION_STATUS` in envRémi Verschelde2021-07-291-3/+8
| | | | | | | | | | | | | `VERSION_STATUS` is part of what constitutes the reference version for a given Godot build, and is part of the version check for compatible export templates. For dev snapshots (alpha, beta, RCs), we usually set the `VERSION_STATUS` to a specific build number (e.g. `beta2`), but this change doesn't end up committed to the Git repository as we don't want to keep changing `version.py` for testing builds. So this new environment override will be what can be used in official builds and by users making custom builds for specific snapshots.
* Implement the ability to disable classesreduz2021-07-131-0/+12
| | | | | | | * 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.
* Improve compiler version extractionMmAaXx5002021-05-311-2/+11
|