Pāvels Nadtočajevs
4310cb82b8
AccessKit integration for macOS, Linux, and Windows.
2025-04-08 20:25:47 +03:00
Thaddeus Crews
f25fc34439
SCons: Add CPPEXTPATH
for external includes
2025-04-02 07:29:08 -05:00
Thaddeus Crews
7a28334596
SCons: Ensure MinGW as fallback if missing MSVC
2025-03-29 10:14:20 -05:00
Thaddeus Crews
10ed66f28c
SCons: Add emitter to declutter build objects
2025-03-15 12:08:24 -05:00
Thaddeus Crews
4505352021
SCons: Simplify Windows/MSVC detection
2025-03-09 10:45:32 -05:00
cafebeef
5201dfb34c
Windows x86_64 GCC: Disable Theora assembly optimizations
...
Co-authored-by: Bernat Arlandis <berarma@hotmail.com>
2025-02-22 17:20:55 -06:00
Rémi Verschelde
26fd3458f9
Windows: Configure MinGW LTO with -fno-use-linker-plugin -fwhole-program
...
- Works around and closes #102867 .
- Works around and closes #102982 .
Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2025-02-20 17:47:26 +01:00
Rémi Verschelde
90208f7dd4
SCons: Fix handling of platform-specific tools, notably mingw
...
Add optional `detect.py` `get_tools` method to let platforms register SCons
tools they need.
This helps move this logic out of SConstruct, keeping platforms more self
contained, and helping thirdparty platforms define their own custom tools.
This logic was also unreliable (the `use_mingw` one would only work if
passed manually on the command line, not in e.g. `get_flags`).
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>
2025-01-25 13:59:30 +01:00
Rémi Verschelde
26db0bb15f
SCons: Make lto=auto
prefer ThinLTO over full LTO for LLVM targets
...
This speeds up build time considerably for these platforms compared to
using `lto=full`, which is sadly single-threaded with LLVM, unlike GCC.
Changes to default behavior of `lto=auto` (i.e. `production=yes`):
- Linux: Prefer ThinLTO for LLVM
- Web: Prefer ThinLTO
- Windows: Prefer ThinLTO for llvm-mingw
The following LLVM targets don't use LTO by default currently, which
needs to be assessed further (gains from LLVM LTO on performance need
to be weighed against the potential size increase from heavy inlining):
- Android
- iOS
- macOS
- Windows clang-cl
2025-01-09 13:03:58 +01:00
Thaddeus Crews
a29294fddc
SCons: Refactor color output implementation
2025-01-07 18:44:53 -06:00
Thaddeus Crews
95b00295fb
Merge pull request #96447 from Repiteo/scons/clang-cl-compile_commands
...
SCons: Set appropriate prefix when using clang-cl
2024-12-19 19:59:45 -06:00
Pāvels Nadtočajevs
a0300532b5
[Windows, LLVM] Fix colorize
flag.
2024-12-18 21:00:32 +02:00
Rémi Verschelde
f86b3696f6
SCons: Properly set SSE2 as baseline on x86_32
...
Setting it only for release templates on Windows and macOS was inconsistent,
and Jolt requires it as a minimum.
Drop the `-mxsave` flag from the raycast module, this doesn't seem to be
used explicitly by Embree, and unnecessarily makes our config and baseline
muddy.
2024-12-12 22:44:44 +01:00
Rémi Verschelde
6d326547da
Windows: Fix duplicate .exe extension with mingw on Linux/macOS
...
This old hack is no longer needed and now wrong after #98105 .
Fixes #98967 .
2024-11-08 16:46:35 +01:00
Thaddeus Crews
fa65b70494
Merge pull request #98105 from Repiteo/scons/mingw-shenanigans
...
SCons: Extend `MinGW` support & checks
2024-11-07 12:36:32 -06:00
Thaddeus Crews
17f06f6dae
Merge pull request #97555 from dustdfg/platform_methods/extract_validate_arch
...
Build System: Extract `validate_arch` helper functions
2024-10-25 13:03:48 -05:00
Thaddeus Crews
14d201ab54
Merge pull request #97556 from dustdfg/platforms/windows_detect_extract_common_checks
...
Extract common check functions in windows_detect.py file
2024-10-24 13:22:40 -05:00
Thaddeus Crews
9968828913
SCons: Set appropriate prefix when using clang-cl
2024-10-24 10:22:32 -05:00
Thaddeus Crews
d4dddd00cb
SCons: Extend MinGW
support & checks
2024-10-11 14:24:00 -05:00
Thaddeus Crews
a44f691fc7
CI: Add MinGW/GCC build to Windows GHA
2024-10-10 10:10:55 -05:00
Yevhen Babiichuk (DustDFG)
7aacdaa071
Build System: Extract validate_arch
helper function
...
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-10-06 07:50:49 +03:00
Yevhen Babiichuk (DustDFG)
9c50312f0d
Extract common check functions in windows_detect.py file
...
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-09-27 21:15:33 +03:00
Fabio Alessandrelli
395a4fc5f2
[SCons] Remove MAXLINELENGTH override for MSVC
...
It's not clear what is the actual max value that windows support, but
despite their claim of it being 8191 we have been seeing failure with
just 8150.
2024-09-26 12:06:16 +02:00
Rémi Verschelde
648b21b9ba
Merge pull request #96813 from Repiteo/scons/fix-clang-cl-flags
...
SCons: Fix `clang-cl` link/ar flags
2024-09-23 12:27:59 +02:00
Alvin Wong
454251660c
Fix using Binutils AR with TEMPFILE on Windows
...
Set `TEMPFILEARGESCFUNC`[1] to replace backslashes with forward slashes
in paths.
[1]: https://scons.org/doc/production/HTML/scons-user/apa.html#cv-TEMPFILEARGESCFUNC
2024-09-19 22:19:15 +08:00
Rémi Verschelde
804d9775b5
Merge pull request #96407 from alvinhochun/mingw-ar-long-command-tempfile
...
Remove `ARFLAGS` hack for Windows, replace with `TEMPFILE`
2024-09-18 17:40:53 +02:00
Thaddeus Crews
df0a88b128
SCons: Fix clang-cl
link/ar flags
2024-09-10 13:48:53 -05:00
bruvzg
b1f9271e49
[MinGW] Fix GCC ar detection.
2024-09-09 11:01:29 +03:00
Alvin Wong
28b95ff550
Remove ARFLAGS hack for Windows, replace with TEMPFILE
...
TEMPFILE is the built-in way of SCons to use a response file for command
lines that are too long.
2024-09-01 04:10:30 +08:00
Alvin Wong
35a8ff9284
mingw: Only use ar --thin
on supported versions
...
The flag is supported since Binutils 2.38 [1] or LLVM 14 [2].
[1]: https://sourceware.org/bugzilla/show_bug.cgi?id=28759
[2]: dd6e7e0d57
2024-09-01 02:13:31 +08:00
Alula
346cbc7f1f
Add support for compiling with VS clang-cl toolset
2024-08-28 13:30:44 -05:00
Alvin Wong
2d300a0bdc
MinGW: Use thin archives to reduce disk space
2024-08-28 18:20:16 +08:00
Alvin Wong
b5258b42c0
Enable Clang color output on Windows
2024-08-28 18:20:16 +08:00
Alvin Wong
e9b6c1baf8
Windows/detect.py: Detect llvm-mingw GCC wrappers and set use_llvm
2024-08-28 18:20:16 +08:00
Alvin Wong
3a0837b74b
Windows/detect.py: Simplify try_cmd function
2024-08-28 17:20:27 +08:00
Rémi Verschelde
73acb2a5b8
Merge pull request #94845 from alvinhochun/llvm-mingw-sanitizers
...
Windows: Add sanitizers for llvm-mingw, increase stack for ASan
2024-08-28 00:12:30 +02:00
Rémi Verschelde
6e9bcc0f18
SCons: Better validation for platform-specific opt-in drivers
...
This replaces cryptic compilation errors with a clear error message
and early build termination.
2024-08-21 22:53:34 +02:00
Alvin Wong
25270d5907
Allow llvm-mingw sanitizers only on x86_32/x86_64
2024-07-28 17:21:35 +08:00
Alvin Wong
0cda0b935d
Windows: Add sanitizers for llvm-mingw, increase stack for ASan
...
ASan and UBSan are supported by llvm-mingw. They can be enabled by
passing `use_asan=yes use_ubsan=yes` to scons.
2024-07-28 04:32:18 +08:00
bruvzg
5d5d51937f
[Windows] Remove libSynchronization
2024-07-27 17:12:27 +03:00
bruvzg
52a2836861
Disable FP contraction.
2024-07-23 14:33:51 +03:00
Rémi Verschelde
a50fe87b89
Merge pull request #94078 from Repiteo/scons/msvc-flag-fix
...
SCons: Don't override cl flags on msvc
2024-07-22 14:12:45 +02:00
bruvzg
0e519118d2
[Windows] Fix release export template build for ARM64 Windows.
2024-07-19 14:33:40 +03:00
bruvzg
9f714bfde5
[Windows] Add libSynchronization
to link flags.
2024-07-17 10:58:03 +03:00
Pedro J. Estébanez
ee2c1584e4
D3D12: Get rid of DXIL.dll!
2024-07-11 17:56:45 +02:00
Thaddeus Crews
0f691efb1b
SCons: Don't override cl flags on msvc
2024-07-08 09:48:18 -05:00
Rémi Verschelde
abfce31ba7
Merge pull request #93152 from RandomShaper/prebuilt_asan
...
Enable usage of asan-enabled versions of prebuilt libraries
2024-07-02 17:27:31 +02:00
Max Hilbrunner
63911b994c
Windows: Fix arch detection via VCTOOLSINSTALLDIR
2024-06-25 13:31:46 +02:00
Rémi Verschelde
f9c51183bb
Merge pull request #93342 from kus04e4ek/build-fix
...
Fix not using `encoding="utf-8"` when writing to files or reading from them
2024-06-24 11:14:10 +02:00
bruvzg
04d70c11fc
[Windows/ARM64] Fix raycast/embree ARM64 build with LLVM/MinGW.
2024-06-20 15:52:04 +03:00