Skip to content

Commit 4310cb8

Browse files
committed
AccessKit integration for macOS, Linux, and Windows.
1 parent b106dfd commit 4310cb8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+23274
-28
lines changed

.github/workflows/linux_builds.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
# Global Settings
66
env:
77
GODOT_CPP_BRANCH: 4.4
8-
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes strict_checks=yes
8+
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes strict_checks=yes "accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.15.1/"
99
DOTNET_NOLOGO: true
1010
DOTNET_CLI_TELEMETRY_OPTOUT: true
1111
TSAN_OPTIONS: suppressions=${{ github.workspace }}/misc/error_suppressions/tsan.txt
@@ -151,6 +151,17 @@ jobs:
151151
# Targeting the oldest version we want to support to ensure it still builds.
152152
dotnet-version: 8.0.100
153153

154+
- name: Download pre-built AccessKit
155+
uses: dsaltares/[email protected]
156+
with:
157+
repo: AccessKit/accesskit-c
158+
version: tags/0.15.1
159+
file: accesskit-c-0.15.1.zip
160+
target: accesskit-c-0.15.1/accesskit_c.zip
161+
162+
- name: Extract pre-built AccessKit
163+
run: unzip -o accesskit-c-0.15.1/accesskit_c.zip
164+
154165
- name: Compilation
155166
uses: ./.github/actions/godot-build
156167
with:

.github/workflows/macos_builds.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44

55
# Global Settings
66
env:
7-
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes strict_checks=yes
7+
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes strict_checks=yes "accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.15.1/"
88

99
jobs:
1010
build-macos:
@@ -43,6 +43,17 @@ jobs:
4343
- name: Setup Python and SCons
4444
uses: ./.github/actions/godot-deps
4545

46+
- name: Download pre-built AccessKit
47+
uses: dsaltares/[email protected]
48+
with:
49+
repo: AccessKit/accesskit-c
50+
version: tags/0.15.1
51+
file: accesskit-c-0.15.1.zip
52+
target: accesskit-c-0.15.1/accesskit_c.zip
53+
54+
- name: Extract pre-built AccessKit
55+
run: unzip -o accesskit-c-0.15.1/accesskit_c.zip
56+
4657
- name: Setup Vulkan SDK
4758
id: vulkan-sdk
4859
run: |

.github/workflows/windows_builds.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
# Global Settings
66
# SCONS_CACHE for windows must be set in the build environment
77
env:
8-
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes d3d12=yes strict_checks=yes "angle_libs=${{ github.workspace }}/"
8+
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes d3d12=yes strict_checks=yes "angle_libs=${{ github.workspace }}/" "accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.15.1/"
99
SCONS_CACHE_MSVC_CONFIG: true
1010

1111
jobs:
@@ -81,6 +81,17 @@ jobs:
8181
- name: Extract pre-built ANGLE static libraries
8282
run: Expand-Archive -Force angle/angle.zip ${{ github.workspace }}/
8383

84+
- name: Download pre-built AccessKit
85+
uses: dsaltares/[email protected]
86+
with:
87+
repo: AccessKit/accesskit-c
88+
version: tags/0.15.1
89+
file: accesskit-c-0.15.1.zip
90+
target: accesskit-c-0.15.1/accesskit_c.zip
91+
92+
- name: Extract pre-built AccessKit
93+
run: unzip -o accesskit-c-0.15.1/accesskit_c.zip
94+
8495
- name: Compilation
8596
uses: ./.github/actions/godot-build
8697
with:

.pre-commit-config.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ default_language_version:
44
exclude: |
55
(?x)^(
66
.*thirdparty/.*|
7-
.*-so_wrap\.(h|c)|
8-
.*-dll_wrap\.(h|c)|
9-
.*-dylib_wrap\.(h|c)|
7+
.*-(dll|dylib|so)_wrap\.[ch]|
108
platform/android/java/editor/src/main/java/com/android/.*|
119
platform/android/java/lib/src/com/google/.*
1210
)$

COPYRIGHT.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,11 @@ Comment: Temporal Anti-Aliasing resolve implementation
163163
Copyright: 2016, Panos Karabelas
164164
License: Expat
165165

166+
Files: thirdparty/accesskit/*
167+
Comment: AccessKit
168+
Copyright: 2023, The AccessKit Authors.
169+
License: Expat
170+
166171
Files: thirdparty/amd-fsr/*
167172
Comment: AMD FidelityFX Super Resolution
168173
Copyright: 2021, Advanced Micro Devices, Inc.

SConstruct

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,8 @@ opts.Add(BoolVariable("use_volk", "Use the volk library to load the Vulkan loade
191191
opts.Add(BoolVariable("disable_exceptions", "Force disabling exception handling code", True))
192192
opts.Add("custom_modules", "A list of comma-separated directory paths containing custom modules to build.", "")
193193
opts.Add(BoolVariable("custom_modules_recursive", "Detect custom modules recursively for each specified path.", True))
194+
opts.Add(BoolVariable("accesskit", "Use AccessKit C SDK", True))
195+
opts.Add(("accesskit_sdk_path", "Path to the AccessKit C SDK", ""))
194196

195197
# Advanced options
196198
opts.Add(

drivers/SCsub

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,15 @@ if env["xaudio2"]:
2626
print_error("Target platform '{}' does not support the XAudio2 audio driver".format(env["platform"]))
2727
Exit(255)
2828
SConscript("xaudio2/SCsub")
29+
2930
# Shared Apple platform drivers
3031
if env["platform"] in ["macos", "ios"]:
3132
SConscript("apple/SCsub")
33+
34+
# Accessibility
35+
if env["accesskit"] and env["platform"] in ["macos", "windows", "linuxbsd"]:
36+
SConscript("accesskit/SCsub")
37+
3238
# Midi drivers
3339
SConscript("alsamidi/SCsub")
3440
if env["platform"] in ["macos", "ios"]:

drivers/accesskit/SCsub

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/usr/bin/env python
2+
from misc.utility.scons_hints import *
3+
4+
Import("env")
5+
6+
# Driver source files
7+
env.add_source_files(env.drivers_sources, "accessibility_driver_accesskit.cpp")
8+
9+
if env["accesskit_sdk_path"] == "":
10+
if env["platform"] == "windows":
11+
env.add_source_files(env.drivers_sources, "dynwrappers/accesskit-dll_wrap.c")
12+
if env["platform"] == "macos":
13+
env.add_source_files(env.drivers_sources, "dynwrappers/accesskit-dylib_wrap.c")
14+
if env["platform"] == "linuxbsd":
15+
env.add_source_files(env.drivers_sources, "dynwrappers/accesskit-so_wrap.c")
16+
env.Prepend(CPPPATH=["#thirdparty/accesskit/include"])

0 commit comments

Comments
 (0)