summaryrefslogtreecommitdiffstats
path: root/platform/ios/detect.py
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #97555 from dustdfg/platform_methods/extract_validate_archThaddeus Crews2024-10-251-6/+2
|\ | | | | | | Build System: Extract `validate_arch` helper functions
| * Build System: Extract `validate_arch` helper functionYevhen Babiichuk (DustDFG)2024-10-061-6/+2
| | | | | | | | Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
* | Android & iOS: Enable strict aliasingPedro J. Estébanez2024-10-211-1/+1
|/
* Replace comments with printed warning for Metal on x86_64Yevhen Babiichuk (DustDFG)2024-09-281-2/+2
| | | | Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
* SCons: Better validation for platform-specific opt-in driversRémi Verschelde2024-08-211-1/+1
| | | | | This replaces cryptic compilation errors with a clear error message and early build termination.
* Add Metal support for macOS (arm64) and iOSStuart Carnie2024-08-201-1/+16
|
* SCons: Process platform-specific flags earlierRémi Verschelde2024-05-301-1/+1
| | | | | | | | | | 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: Convert platform `get_flags` to dictionaryThaddeus Crews2024-05-221-7/+7
|
* Update pre-commit hooks configuration to use `ruff` instead of `black`Jakub Marcowski2024-05-211-2/+2
|
* SCons: Colorize warnings/errors during generationThaddeus Crews2024-04-281-4/+4
|
* Core: Use fixed-width integer types in VariantThaddeus Crews2024-04-041-1/+0
|
* [iOS] Disable PCRE2 JIT.bruvzg2024-03-151-0/+1
|
* Merge pull request #88245 from shana/simplify-mono-support-detectionRémi Verschelde2024-02-191-0/+1
|\ | | | | | | C#: Let platforms signal if they support the mono module or not
| * C#: Let platforms signal if they support it or notAndreia Gaita2024-02-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Instead of hardcoding platform names that support C#, let platforms set a flag indicating if they support it. All public platforms except web already support it, and it's a pain to maintain a patch for this list just to add additional names of proprietary console platforms. This makes adding new platforms or variants or existing platforms much easier, as the platform can signal what it supports/doesn't support directly, and we can avoid harcoding platform names.
* | SCons: "Environment" to "SConsEnvironment"Thaddeus Crews2024-02-141-2/+2
| |
* | [iOS/macOS] Add option to automatically build (and sign / archive) bundles.bruvzg2024-02-131-0/+2
| |
* | Add RD_ENABLED when VULKAN_ENABLED or D3D12_ENABLED is addedjsjtxietian2023-12-251-1/+1
|/
* [iOS, GDExtension] Fix loading and exporting static libraries and xcframeworks.bruvzg2023-11-091-0/+1
|
* [iOS] Fix build with Xcode 15.bruvzg2023-09-271-5/+5
|
* SCons: Disable C++ exception handlingRémi Verschelde2023-08-161-6/+0
| | | | | | | | | | | | | | | | | | | | Upon investigating the extremely slow MSVC build times in #80513, I noticed that while Godot policy is to never use exceptions, we weren't enforcing it with compiler flags, and thus still included exception handling code and stack unwinding. This is wasteful on multiple aspects: - Binary size: Around 20% binary size reduction with exceptions disabled for both MSVC and GCC binaries. - Compile time: * More than 50% build time reduction with MSVC. * 10% to 25% build time reduction with GCC + LTO. - Performance: Possibly, needs to be benchmarked. Since users may want to re-enable exceptions in their own thirdparty code or the libraries they compile with Godot, this behavior can be toggled with the `disable_exceptions` SCons option, which defaults to true.
* libpng: Enable intrinsics on x86/SSE2, ppc64/VSX, and all arm/NEONRémi Verschelde2023-08-041-3/+2
|
* SCons: Move platform logo/run icon to `export` folderRémi Verschelde2023-06-201-4/+0
| | | | | | | | | | | | Follow-up to #75932. Since these icons are only used by the export plugin, it makes sense to move them and generate the headers there. The whole `detect.is_active()` logic seems to be a leftover from before times, as far back as 1.0-stable it already wasn't used for anything. So I'm removing it and moving the export icon generation to `platform_methods`, where it makes more sense.
* [Export docs] Move docs to platform folders.bruvzg2023-04-201-0/+10
|
* [iOS] Restore OpenGLES3 renderer support.bruvzg2023-01-221-2/+10
|
* ci: add Python static analysis check via mypyJiri Suchan2022-09-301-1/+6
|
* SCons: Unify tools/target build type configurationRémi Verschelde2022-09-261-24/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Cleanup `DEBUG`, `_DEBUG` and `NDEBUG` definesRémi Verschelde2022-09-231-3/+2
| | | | | | | | | | | | | | | | - `_DEBUG` is MSVC specific so it didn't make much sense to define for Android and iOS builds. - iOS was the only platform to define `DEBUG`. We don't use it anywhere outside thirdparty code, which we usually don't intend to debug, so it seems better to be consistent with other platforms. - Consistently define `NDEBUG` to disable assert behavior in both `release` and `release_debug` targets. This used to be set for `release` for all platforms, and `release_debug` for Android and iOS only. - Due to the above, I removed the only use we made of `assert()` in Godot code, which was only implemented for Unix anyway, should have been `DEV_ENABLED`, and is in PoolAllocator which we don't actually use. - The denoise and recast modules keep defining `NDEBUG` even for the `debug` target as we don't want OIDN and Embree asserting all over the place.
* SCons: Remove redundant `-fomit-frame-pointer` and `-ftree-vectorize`Rémi Verschelde2022-09-231-2/+2
| | | | | | | | | - `-fomit-frame-pointer` is included automatically by both GCC and Clang in `-O1` and above. - `-ftree-vectorize` is included automatically by GCC in `-O2` and beyond, and seems always enabled by Clang. Closes #66296. See that issue for a detailed investigation.
* SCons: Refactor handling of `production` flag and per-platform LTO defaultsRémi Verschelde2022-09-191-4/+5
| | | | | | | Fixup to #63288. See #65583 for the bug report. Co-authored-by: Cyberrebell <chainsaw75@web.de>
* Check for ios_simulator when building for x86_64Ted Spikes2022-09-131-0/+4
|
* SCons: Refactor LTO options with `lto=<none|thin|full>`Rémi Verschelde2022-09-081-3/+11
| | | | | | | | | | | | | Adds support for LTO on macOS and Android. We don't have much experience with LTO on these platforms so for now we keep it disabled by default even when `production=yes` is set. Similarly for iOS where we ship object files for the user to link in Xcode so LTO makes builds extremely slow to link. `production=yes` defaults to full LTO. ThinLTO is much faster for LLVM-based compilers but seems to produce bigger binaries (at least for the Web platform).
* Unify bits, arch, and android_arch into env["arch"]Aaron Franke2022-08-251-5/+10
| | | | | | Fully removes the `bits` option and adapts the code that relied on it. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
* Rename OSX to macOS and iPhoneOS to iOS.bruvzg2022-07-211-0/+152