godot/platform/windows
Andreia Gaita 7638a6c981 Add new VS proj generation logic that supports any platform that wants to opt in
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
```
2024-01-31 16:42:42 +01:00
..
doc_classes [macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching. 2023-09-21 14:21:00 +03:00
export Reorganize code related to editor theming 2024-01-16 11:57:45 +01:00
console_wrapper_windows.cpp One Copyright Update to rule them all 2023-01-05 13:25:55 +01:00
crash_handler_windows.cpp [Windows] Detect missing DLL dependencies and list them in the open_dynamic_library error message. 2023-03-27 12:18:15 +03:00
crash_handler_windows.h Windows: Remove MSVC define redundant with _MSC_VER 2023-09-26 11:11:45 +02:00
detect.py Use raw strings for D3D12 install messages. 2024-01-30 11:13:12 +02:00
display_server_windows.cpp Avoid non-constant-expression cannot be narrowed on Windows mingw. 2024-01-30 20:21:26 -08:00
display_server_windows.h Merge pull request #87549 from emanvidmaker/DarkModeOnWin10Patch 2024-01-26 11:47:50 +01:00
gl_manager_windows_angle.cpp [macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching. 2023-09-21 14:21:00 +03:00
gl_manager_windows_angle.h [macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching. 2023-09-21 14:21:00 +03:00
gl_manager_windows_native.cpp Codestyle: Fix some comment issues 2023-11-21 15:26:53 +01:00
gl_manager_windows_native.h [macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching. 2023-09-21 14:21:00 +03:00
godot_console.ico [Windows] Optimize editor icon, use different icon for console executable. 2022-11-29 09:39:03 +02:00
godot_res_wrap.rc Remove now unused year member from version.py 2024-01-25 15:08:34 +01:00
godot_res.rc Remove now unused year member from version.py 2024-01-25 15:08:34 +01:00
godot_windows.cpp Style: Harmonize header includes in platform ports 2023-06-08 15:19:19 +02:00
godot.ico [Windows] Optimize editor icon, use different icon for console executable. 2022-11-29 09:39:03 +02:00
godot.natvis revamp godot.natvis 2024-01-10 09:57:28 -08:00
joypad_windows.cpp Update joypad_windows.cpp 2023-09-28 18:24:08 -07:00
joypad_windows.h Style: Harmonize header includes in platform ports 2023-06-08 15:19:19 +02:00
key_mapping_windows.cpp Add InputEventKey.location to tell left from right 2024-01-26 14:42:28 +01:00
key_mapping_windows.h Add InputEventKey.location to tell left from right 2024-01-26 14:42:28 +01:00
lang_table.h Style: Harmonize header includes in platform ports 2023-06-08 15:19:19 +02:00
msvs.py Add new VS proj generation logic that supports any platform that wants to opt in 2024-01-31 16:42:42 +01:00
os_windows.cpp Merge pull request #86682 from Daylily-Zeleen/daylily-zeleen/distinguish_between_dynamic_libaray_not_found_and_can't_open 2024-01-02 18:06:17 +01:00
os_windows.h Split RenderingDevice into API-agnostic and RenderingDeviceDriver parts 2023-12-20 19:18:08 +01:00
platform_config.h [macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching. 2023-09-21 14:21:00 +03:00
platform_gl.h [macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching. 2023-09-21 14:21:00 +03:00
platform_windows_builders.py [Windows] Try using objcopy and strip with prefix and without prefix. 2023-07-25 09:52:38 +03:00
README.md Minor typo and docs URL fixes 2023-02-28 13:38:01 +01:00
SCsub Add new VS proj generation logic that supports any platform that wants to opt in 2024-01-31 16:42:42 +01:00
tts_windows.cpp [Drivers,Platform] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-12 20:13:32 +02:00
tts_windows.h Windows TTS: Use HashMap instead of RBMap for ids 2023-04-11 15:54:21 +02:00
vulkan_context_win.cpp Split RenderingDevice into API-agnostic and RenderingDeviceDriver parts 2023-12-20 19:18:08 +01:00
vulkan_context_win.h Fix Clang dev_mode build on Windows 2023-12-21 14:05:39 +02:00
wgl_detect_version.cpp [ANGLE] Add fallback control options and defaults. 2023-10-03 16:23:43 +03:00
wgl_detect_version.h [ANGLE] Add fallback control options and defaults. 2023-10-03 16:23:43 +03:00
windows_terminal_logger.cpp UWP: Remove platform port, needs to be redone from scratch for 4.x 2023-09-07 15:01:59 +02:00
windows_terminal_logger.h Style: Harmonize header includes in platform ports 2023-06-08 15:19:19 +02:00

Windows platform port

This folder contains the C++ code for the Windows platform port.

See also misc/dist/windows folder for additional files used by this platform.

Documentation