summaryrefslogtreecommitdiffstats
path: root/platform/windows/detect.py
Commit message (Collapse)AuthorAgeFilesLines
...
* | [Windows] Enable crash reporter on MinGW builds, use libbacktrace to ↵bruvzg2024-04-221-0/+3
|/ | | | generate stack trace from DWARF symbols.
* SCons: Fix `silence_msvc` regressionThaddeus Crews2024-04-131-4/+7
|
* SCons: Silence msvc output without hiding errorsThaddeus Crews2024-04-111-10/+24
|
* Merge pull request #89159 from Repiteo/suppress-msvc-false-defaultRémi Verschelde2024-03-051-1/+3
|\ | | | | | | SCons: Set `silence_msvc` to false by default
| * Set `silence_msvc` default to false, amend descriptionThaddeus Crews2024-03-041-1/+3
| |
* | Merge pull request #88496 from bruvzg/d3d12_dyn_loadRémi Verschelde2024-03-051-2/+10
|\ \ | |/ |/| | | [Windows] Make D3D12 loading dynamic to support pre-Windows 10 versions.
| * [Windows] Make D3D12 loading dynamic to support pre Windows 10 versions.bruvzg2024-02-191-2/+10
| |
* | Merge pull request #87154 from Repiteo/scons/cl-quietRémi Verschelde2024-03-041-0/+15
|\ \ | | | | | | | | | SCons: Silence redundant MSVC output
| * | SCons: Silence redundant msvc outputThaddeus Crews2024-01-131-0/+15
| | |
* | | 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-12/+12
| | |
* | | Use raw strings for D3D12 install messages.bruvzg2024-01-301-2/+2
| | |
* | | [D3D12] Add support for building with pre-11.0.0 MinGW versions, make PIX ↵bruvzg2024-01-261-11/+18
| | | | | | | | | | | | runtime opt-in.
* | | SCons: Fix Windows cross-compilation from Linux after #86717Rémi Verschelde2024-01-261-2/+15
| | |
* | | Add a python script to install Direct3D 12 SDK components.MrBBBaiXue2024-01-241-16/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it much faster to get started with Direct3D 12 builds, as you only need to run `python .\misc\scripts\install_d3d12_sdk_windows.py` then run `scons d3d12=yes`. This installs DirectX Shader Compiler, Mesa NIR, WinPixEventRuntime and DirectX 12 Agility SDK. - Define a default path that uses the locations from the script. - Now the default path is in "%LOCALAPPDATA%\Godot\build_deps\" - Updated CI to use this new python script. Co-Authored-By: Hugo Locurcio <hugo.locurcio@hugo.pro>
* | | [Windows] Remove `dxc path` check.bruvzg2024-01-161-4/+0
| |/ |/|
* | Add RD_ENABLED when VULKAN_ENABLED or D3D12_ENABLED is addedjsjtxietian2023-12-251-4/+4
|/
* Split RenderingDevice into API-agnostic and RenderingDeviceDriver partsPedro J. Estébanez2023-12-201-4/+8
| | | | | | Credit and thanks to @bruzvg for multiple build fixes, update of 3rd-party items and MinGW support. Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
* Merge pull request #70315 from RandomShaper/d3d12_mesaRémi Verschelde2023-12-121-0/+54
|\ | | | | Direct3D 12 Rendering Driver (Mesa NIR approach)
| * Add Direct3D 12 RenderingDevice implementationPedro J. Estébanez2023-12-121-0/+54
| |
* | Fix invalid Python escape sequencesMikael Klasson2023-12-061-1/+1
|/
* Add method to check if filesystem is case sensitive.bruvzg2023-10-091-0/+2
|
* Windows: Remove `MSVC` define redundant with `_MSC_VER`Rémi Verschelde2023-09-261-1/+0
| | | | Cleanup unused MSVC code in FileAccessUnix.
* [macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add ↵bruvzg2023-09-211-2/+23
| | | | | | EGL_ANDROID_blob_cache caching. Co-authored-by: Riteo <riteo@posteo.net>
* Build system: add option for MSVC incremental linking.ocean (they/them)2023-08-291-2/+4
|
* SCons: Disable misbehaving MSVC incremental linkingRémi Verschelde2023-08-101-0/+3
| | | | Fixes #77968.
* 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.
* Embed natvis debug views in PDBRedworkDE2023-05-201-0/+1
| | | | This means the debugger can load them automatically.
* [TLS] Add support for platform-specific CA bundles.Fabio Alessandrelli2023-05-121-0/+2
| | | | | | | | | | | | | | | | | Adds a new OS::get_system_ca_certs method which can be implemented by platforms to retrieve the list of trusted CA certificates using OS specific APIs. The function should return the certificates in PEM format, and is currently implemented for Windows/macOS/LinuxBSD(*)/Android. mbedTLS will fall back to bundled certificates when the OS returns no certificates. (*) LinuxBSD does not have a standardized certificates store location. The current implementation will test for common locations and may return an empty string on some distributions (falling back to the bundled certificates).
* [Export docs] Move docs to platform folders.bruvzg2023-04-201-0/+10
|
* [Windows] Detect missing DLL dependencies and list them in the ↵bruvzg2023-03-271-0/+6
| | | | open_dynamic_library error message.
* Windows: Make MSVC debug CRT opt-in (`debug_crt=yes`)Rémi Verschelde2022-12-051-1/+2
| | | | | | Follow-up to #69294 which enabled it automatically for `dev_build=yes`, but this seems to cause some issues. Those issues should likely be debugged but until then this can stay opt-in.
* Windows: Link MSVC dynamic debug CRT for debug buildsRémi Verschelde2022-11-281-3/+7
| | | | Fixes #31608.
* Fix build with Vulkan disabled and no Vulkan headers installed.bruvzg2022-10-261-5/+7
|
* Merge pull request #66102 from MJacred/feature/getvideoadapterdriverinfoRémi Verschelde2022-10-111-0/+2
|\ | | | | | | Fetch video adapter driver name and version from OS
| * Fetch video adapter driver name and version from OS on Linux/*BSD and WindowsMJacred2022-10-111-0/+2
| |
* | ci: add Python static analysis check via mypyJiri Suchan2022-09-301-1/+6
| |
* | SCons: Unify tools/target build type configurationRémi Verschelde2022-09-261-58/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - `_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: Refactor handling of `production` flag and per-platform LTO defaultsRémi Verschelde2022-09-191-0/+8
|/ | | | | | | Fixup to #63288. See #65583 for the bug report. Co-authored-by: Cyberrebell <chainsaw75@web.de>
* SCons: Refactor LTO options with `lto=<none|thin|full>`Rémi Verschelde2022-09-081-10/+14
| | | | | | | | | | | | | 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).
* [Windows] Improve build environment detection, add support for Windows on ARM.bruvzg2022-08-271-110/+263
|
* Unify bits, arch, and android_arch into env["arch"]Aaron Franke2022-08-251-39/+61
| | | | | | Fully removes the `bits` option and adapts the code that relied on it. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
* Implement support for loading system fonts on Linux, macOS / iOS and Windows.bruvzg2022-07-261-0/+2
|
* Use bigobj for release MSVC buildsKevin Smith2022-07-251-1/+4
| | | | | | | | | | | | | | | Previously it was used only on debug builds, but recent additions to variant_call.cpp have made that unit too large even in release_debug. It was originally set to debug only because using it breaks mingw, so this only reinstates it for MSVC where it shouldn't have any drawbacks (famous last words). Test-Information: Builds for me with scons -j 40 platform=windows target=release_debug and my game then runs from it.
* opengl3 driver now works on windows including multi windowderammo2022-05-111-6/+8
| | | | | | | | | | | | | | | | | | | | | fixed and simplified gl_manager_windows swap buffers now called for all windows fixed missing pixel format setting in additional windows this makes them work in OpenGL contexts changed verbose error printing to write once this error message happens very frequently while opengl3 is not finished removed dead code no longer needed after changes fixed comments that were misinformation window messages during window creation now handled these were previously discarded messages now tunnel the required context changed failure to create opengl3 window on windows to be more fatal marked a problem with pen code conditional compilation of vulkan and opengl3 on windows fixed windows debug builds now show messages on debug console also rendering driver selection box now shows only compiled drivers marked some problematic code thanks to akien-mga for patiently rewriting my style mistakes
* Implement text-to-speech support on Android, iOS, HTML5, Linux, macOS and ↵bruvzg2022-04-281-0/+2
| | | | | | Windows. Implement TextServer word break method.
* [Windows] Improve console handling and execute/create_process.bruvzg2021-12-181-19/+1
| | | | | | | | | | Always build with the GUI subsystem. Redirect stdout and stderr output to the parent process console. Use CreateProcessW for blocking `execute` calls with piped stdout and stderr (prevent console windows for popping up when used with the GUI subsystem build, and have more consistent behavior with `create_process`). Add `open_console` argument to the `execute` and `create_process` to open a new console window. Remove `interface/editor/hide_console_window` editor setting. Remove `Toggle System Console` menu option. Remove `set_console_visible` and `is_console_visible` functions.
* Misc build system fixesAaron Franke2021-12-101-1/+1
|