prismatoid 0.4.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. prismatoid-0.4.5/.clang-tidy +20 -0
  2. prismatoid-0.4.5/.gitattributes +12 -0
  3. prismatoid-0.4.5/.github/FUNDING.yml +4 -0
  4. prismatoid-0.4.5/.github/workflows/pypi.yml +82 -0
  5. prismatoid-0.4.5/.github/workflows/release.yml +348 -0
  6. prismatoid-0.4.5/.gitignore +102 -0
  7. prismatoid-0.4.5/.python-version +1 -0
  8. prismatoid-0.4.5/CMakeLists.txt +418 -0
  9. prismatoid-0.4.5/LICENSE +356 -0
  10. prismatoid-0.4.5/LICENSES/nvdaController/lgpl-2.1.txt +175 -0
  11. prismatoid-0.4.5/LICENSES/nvgt/LICENSE.md +11 -0
  12. prismatoid-0.4.5/LICENSES/prism/mpl-2.0.txt +144 -0
  13. prismatoid-0.4.5/LICENSES/simdutf/apache-2.0.txt +73 -0
  14. prismatoid-0.4.5/NOTICE +9 -0
  15. prismatoid-0.4.5/PKG-INFO +53 -0
  16. prismatoid-0.4.5/README.md +36 -0
  17. prismatoid-0.4.5/android/templates/cmake/PrismConfig.cmake.in +32 -0
  18. prismatoid-0.4.5/android/templates/cmake/PrismConfigVersion.cmake.in +9 -0
  19. prismatoid-0.4.5/android/templates/meson/meson.build.in +16 -0
  20. prismatoid-0.4.5/android/templates/meson/prism.wrap.in +5 -0
  21. prismatoid-0.4.5/android/templates/scons/prism.py.in +49 -0
  22. prismatoid-0.4.5/bindings/py/prism/prism/__init__.py +3 -0
  23. prismatoid-0.4.5/bindings/py/prism/prism/core.py +374 -0
  24. prismatoid-0.4.5/bindings/py/prism/prism/lib.py +230 -0
  25. prismatoid-0.4.5/build.gradle +123 -0
  26. prismatoid-0.4.5/cmake/CPM.cmake +24 -0
  27. prismatoid-0.4.5/dbus/orca-module.xml +37 -0
  28. prismatoid-0.4.5/dbus/orca-service.xml +24 -0
  29. prismatoid-0.4.5/defs/sa.def +6 -0
  30. prismatoid-0.4.5/defs/zdsr.def +6 -0
  31. prismatoid-0.4.5/demos/CMakeLists.txt +35 -0
  32. prismatoid-0.4.5/demos/nvda_backend_demo.cpp +41 -0
  33. prismatoid-0.4.5/demos/uia_backend_demo.cpp +493 -0
  34. prismatoid-0.4.5/demos/uia_test.py +59 -0
  35. prismatoid-0.4.5/doc/book.toml +4 -0
  36. prismatoid-0.4.5/doc/src/SUMMARY.md +19 -0
  37. prismatoid-0.4.5/doc/src/api/audio-callback.md +70 -0
  38. prismatoid-0.4.5/doc/src/api/audio-format.md +109 -0
  39. prismatoid-0.4.5/doc/src/api/backend-functions.md +484 -0
  40. prismatoid-0.4.5/doc/src/api/backend-identifiers.md +23 -0
  41. prismatoid-0.4.5/doc/src/api/context-management.md +150 -0
  42. prismatoid-0.4.5/doc/src/api/conventions.md +48 -0
  43. prismatoid-0.4.5/doc/src/api/error-codes.md +26 -0
  44. prismatoid-0.4.5/doc/src/api/overview.md +13 -0
  45. prismatoid-0.4.5/doc/src/api/registry-functions.md +385 -0
  46. prismatoid-0.4.5/doc/src/api/thread-safety.md +13 -0
  47. prismatoid-0.4.5/doc/src/api/utilities.md +40 -0
  48. prismatoid-0.4.5/doc/src/api/voice-parameters.md +241 -0
  49. prismatoid-0.4.5/doc/src/api/voice-selection.md +241 -0
  50. prismatoid-0.4.5/doc/src/introduction.md +9 -0
  51. prismatoid-0.4.5/gradle/libs.versions.toml +10 -0
  52. prismatoid-0.4.5/gradle/wrapper/gradle-wrapper.jar +0 -0
  53. prismatoid-0.4.5/gradle/wrapper/gradle-wrapper.properties +7 -0
  54. prismatoid-0.4.5/gradle.properties +3 -0
  55. prismatoid-0.4.5/gradlew +248 -0
  56. prismatoid-0.4.5/gradlew.bat +93 -0
  57. prismatoid-0.4.5/idl/nvdaController.acf +32 -0
  58. prismatoid-0.4.5/idl/nvdaController.idl +148 -0
  59. prismatoid-0.4.5/include/prism.h +281 -0
  60. prismatoid-0.4.5/pyproject.toml +118 -0
  61. prismatoid-0.4.5/settings.gradle +16 -0
  62. prismatoid-0.4.5/source/AndroidManifest.xml +14 -0
  63. prismatoid-0.4.5/source/backends/android_screen_reader.cpp +372 -0
  64. prismatoid-0.4.5/source/backends/android_tts.cpp +370 -0
  65. prismatoid-0.4.5/source/backends/avspeech.cpp +229 -0
  66. prismatoid-0.4.5/source/backends/backend.h +140 -0
  67. prismatoid-0.4.5/source/backends/backend_registry.cpp +233 -0
  68. prismatoid-0.4.5/source/backends/backend_registry.h +117 -0
  69. prismatoid-0.4.5/source/backends/concurrentqueue.h +3747 -0
  70. prismatoid-0.4.5/source/backends/dr_wav.h +9043 -0
  71. prismatoid-0.4.5/source/backends/java/AbstractTextToSpeechBackend.hpp +73 -0
  72. prismatoid-0.4.5/source/backends/java/AbstractTextToSpeechBackend.java +57 -0
  73. prismatoid-0.4.5/source/backends/java/AndroidScreenReaderBackend.java +120 -0
  74. prismatoid-0.4.5/source/backends/java/AndroidTextToSpeechBackend.java +414 -0
  75. prismatoid-0.4.5/source/backends/java/AudioCallback.hpp +18 -0
  76. prismatoid-0.4.5/source/backends/java/AudioCallback.java +50 -0
  77. prismatoid-0.4.5/source/backends/java/BackendError.hpp +66 -0
  78. prismatoid-0.4.5/source/backends/java/BackendError.java +24 -0
  79. prismatoid-0.4.5/source/backends/java/PrismContext.java +24 -0
  80. prismatoid-0.4.5/source/backends/java/PrismInitProvider.java +40 -0
  81. prismatoid-0.4.5/source/backends/java/TextChunker.java +215 -0
  82. prismatoid-0.4.5/source/backends/java/TextToSpeechBackend.java +127 -0
  83. prismatoid-0.4.5/source/backends/java/TtsBackendModule.java +14 -0
  84. prismatoid-0.4.5/source/backends/java/Unit.hpp +13 -0
  85. prismatoid-0.4.5/source/backends/java/Unit.java +12 -0
  86. prismatoid-0.4.5/source/backends/java/jni/AbstractTextToSpeechBackend.cpp +237 -0
  87. prismatoid-0.4.5/source/backends/java/jni/AbstractTextToSpeechBackend.hpp +94 -0
  88. prismatoid-0.4.5/source/backends/java/jni/AudioCallback.cpp +43 -0
  89. prismatoid-0.4.5/source/backends/java/jni/AudioCallback.hpp +33 -0
  90. prismatoid-0.4.5/source/backends/java/jni/BackendError.hpp +26 -0
  91. prismatoid-0.4.5/source/backends/java/jni/TtsBackendModule.cpp +23 -0
  92. prismatoid-0.4.5/source/backends/java/jni/TtsBackendModule.hpp +9 -0
  93. prismatoid-0.4.5/source/backends/java/jni/Unit.cpp +27 -0
  94. prismatoid-0.4.5/source/backends/java/jni/Unit.hpp +31 -0
  95. prismatoid-0.4.5/source/backends/java/support/.gitignore +0 -0
  96. prismatoid-0.4.5/source/backends/java/support/cpp/DataRef.cpp +66 -0
  97. prismatoid-0.4.5/source/backends/java/support/cpp/DataRef.hpp +111 -0
  98. prismatoid-0.4.5/source/backends/java/support/cpp/DataView.hpp +44 -0
  99. prismatoid-0.4.5/source/backends/java/support/cpp/Future.hpp +485 -0
  100. prismatoid-0.4.5/source/backends/java/support/cpp/SharedFuture.hpp +162 -0
  101. prismatoid-0.4.5/source/backends/java/support/cpp/expected.hpp +45 -0
  102. prismatoid-0.4.5/source/backends/java/support/cpp/tl_expected.hpp +2331 -0
  103. prismatoid-0.4.5/source/backends/java/support/dataref.yaml +35 -0
  104. prismatoid-0.4.5/source/backends/java/support/dataview.yaml +35 -0
  105. prismatoid-0.4.5/source/backends/java/support/djinni_common.hpp +33 -0
  106. prismatoid-0.4.5/source/backends/java/support/future.yaml +38 -0
  107. prismatoid-0.4.5/source/backends/java/support/java/com/dropbox/djinni/NativeLibLoader.java +182 -0
  108. prismatoid-0.4.5/source/backends/java/support/java/com/snapchat/djinni/DataRefHelper.java +21 -0
  109. prismatoid-0.4.5/source/backends/java/support/java/com/snapchat/djinni/Future.java +142 -0
  110. prismatoid-0.4.5/source/backends/java/support/java/com/snapchat/djinni/NativeFutureHandler.java +41 -0
  111. prismatoid-0.4.5/source/backends/java/support/java/com/snapchat/djinni/NativeObjectManager.java +124 -0
  112. prismatoid-0.4.5/source/backends/java/support/java/com/snapchat/djinni/Outcome.java +84 -0
  113. prismatoid-0.4.5/source/backends/java/support/java/com/snapchat/djinni/Promise.java +75 -0
  114. prismatoid-0.4.5/source/backends/java/support/java/com/snapchat/djinni/SharedState.java +36 -0
  115. prismatoid-0.4.5/source/backends/java/support/jni/DataRef_jni.cpp +223 -0
  116. prismatoid-0.4.5/source/backends/java/support/jni/DataRef_jni.hpp +38 -0
  117. prismatoid-0.4.5/source/backends/java/support/jni/DataView_jni.hpp +45 -0
  118. prismatoid-0.4.5/source/backends/java/support/jni/Future_jni.cpp +37 -0
  119. prismatoid-0.4.5/source/backends/java/support/jni/Future_jni.hpp +158 -0
  120. prismatoid-0.4.5/source/backends/java/support/jni/Marshal.hpp +790 -0
  121. prismatoid-0.4.5/source/backends/java/support/jni/Outcome_jni.hpp +81 -0
  122. prismatoid-0.4.5/source/backends/java/support/jni/djinni_main.cpp +31 -0
  123. prismatoid-0.4.5/source/backends/java/support/jni/djinni_support.cpp +561 -0
  124. prismatoid-0.4.5/source/backends/java/support/jni/djinni_support.hpp +661 -0
  125. prismatoid-0.4.5/source/backends/java/support/outcome.yaml +38 -0
  126. prismatoid-0.4.5/source/backends/java/support/proxy_cache_impl.hpp +211 -0
  127. prismatoid-0.4.5/source/backends/java/support/proxy_cache_interface.hpp +190 -0
  128. prismatoid-0.4.5/source/backends/java/utils.java +27 -0
  129. prismatoid-0.4.5/source/backends/jaws.cpp +122 -0
  130. prismatoid-0.4.5/source/backends/moderncom/com_ptr.h +660 -0
  131. prismatoid-0.4.5/source/backends/moderncom/guid.h +169 -0
  132. prismatoid-0.4.5/source/backends/moderncom/impl/errors.h +94 -0
  133. prismatoid-0.4.5/source/backends/moderncom/impl/onexit.h +122 -0
  134. prismatoid-0.4.5/source/backends/moderncom/impl/srwlock.h +53 -0
  135. prismatoid-0.4.5/source/backends/moderncom/impl/vector.h +158 -0
  136. prismatoid-0.4.5/source/backends/moderncom/interfaces.h +1085 -0
  137. prismatoid-0.4.5/source/backends/moderncom/library.h +72 -0
  138. prismatoid-0.4.5/source/backends/nvda.cpp +155 -0
  139. prismatoid-0.4.5/source/backends/onecore.cpp +384 -0
  140. prismatoid-0.4.5/source/backends/orca.cpp +115 -0
  141. prismatoid-0.4.5/source/backends/raw/avspeech.h +63 -0
  142. prismatoid-0.4.5/source/backends/raw/avspeech.swift +373 -0
  143. prismatoid-0.4.5/source/backends/raw/fsapi.c +85 -0
  144. prismatoid-0.4.5/source/backends/raw/fsapi.h +286 -0
  145. prismatoid-0.4.5/source/backends/raw/sa.h +17 -0
  146. prismatoid-0.4.5/source/backends/raw/sapibridge.c +681 -0
  147. prismatoid-0.4.5/source/backends/raw/sapibridge.h +123 -0
  148. prismatoid-0.4.5/source/backends/raw/voiceover.h +29 -0
  149. prismatoid-0.4.5/source/backends/raw/voiceover_ios.swift +136 -0
  150. prismatoid-0.4.5/source/backends/raw/voiceover_macos.swift +163 -0
  151. prismatoid-0.4.5/source/backends/raw/wineyes.c +925 -0
  152. prismatoid-0.4.5/source/backends/raw/wineyes.h +68206 -0
  153. prismatoid-0.4.5/source/backends/raw/zdsr.h +17 -0
  154. prismatoid-0.4.5/source/backends/raw/zt.h +3307 -0
  155. prismatoid-0.4.5/source/backends/sapi.cpp +278 -0
  156. prismatoid-0.4.5/source/backends/speech_dispatcher.cpp +73 -0
  157. prismatoid-0.4.5/source/backends/uia.cpp +403 -0
  158. prismatoid-0.4.5/source/backends/utils.cpp +342 -0
  159. prismatoid-0.4.5/source/backends/utils.h +60 -0
  160. prismatoid-0.4.5/source/backends/voiceover.cpp +101 -0
  161. prismatoid-0.4.5/source/backends/wav.c +2 -0
  162. prismatoid-0.4.5/source/backends/web_speech_synthesis_backend.cpp +251 -0
  163. prismatoid-0.4.5/source/backends/zdsr.cpp +66 -0
  164. prismatoid-0.4.5/source/backends/zoom_text.cpp +131 -0
  165. prismatoid-0.4.5/source/delayimp.cpp +156 -0
  166. prismatoid-0.4.5/source/prism.cpp +413 -0
  167. prismatoid-0.4.5/source/simdutf.cpp +67273 -0
  168. prismatoid-0.4.5/source/simdutf.h +13573 -0
  169. prismatoid-0.4.5/tests/android/simple-app/build.gradle +171 -0
  170. prismatoid-0.4.5/tests/android/simple-app/src/androidTest/java/com/github/ethindp/prism/tests/android/simpleapp/PrismInstrumentedTest.java +34 -0
  171. prismatoid-0.4.5/tests/android/simple-app/src/main/AndroidManifest.xml +22 -0
  172. prismatoid-0.4.5/tests/android/simple-app/src/main/cpp/CMakeLists.txt +12 -0
  173. prismatoid-0.4.5/tests/android/simple-app/src/main/cpp/prism_android_test_jni/com_github_ethindp_prism_tests_android_simpleapp_PrismNative.h +53 -0
  174. prismatoid-0.4.5/tests/android/simple-app/src/main/cpp/prism_android_test_jni.cpp +56 -0
  175. prismatoid-0.4.5/tests/android/simple-app/src/main/java/com/github/ethindp/prism/tests/android/simpleapp/MainActivity.java +76 -0
  176. prismatoid-0.4.5/tests/android/simple-app/src/main/java/com/github/ethindp/prism/tests/android/simpleapp/PrismNative.java +15 -0
  177. prismatoid-0.4.5/tests/android/simple-app/src/main/res/layout/activity_main.xml +28 -0
  178. prismatoid-0.4.5/uv.lock +210 -0
@@ -0,0 +1,20 @@
1
+ ---
2
+ Checks: '-*,
3
+ bugprone-*,
4
+ clang-analyzer-*,
5
+ concurrency-*,
6
+ modernize-*,
7
+ performance-*,
8
+ readability-*,
9
+ -modernize-use-trailing-return-type,
10
+ -clang-analyzer-core.CallAndMessage,
11
+ -readability-identifier-length,
12
+ - readability-braces-around-statements,
13
+ -readability-magic-numbers,
14
+ -clang-analyzer-optin.core.EnumCastOutOfRange,
15
+ -bugprone-easily-swappable-parameters,
16
+ -readability-function-cognitive-complexity,
17
+ -readability-else-after-return'
18
+ WarningsAsErrors: '*'
19
+ HeaderFilterRegex: '^(source|include)/.*'
20
+ FormatStyle: file
@@ -0,0 +1,12 @@
1
+ #
2
+ # https://help.github.com/articles/dealing-with-line-endings/
3
+ #
4
+ # Linux start script should use lf
5
+ /gradlew text eol=lf
6
+
7
+ # These are Windows script files and should use crlf
8
+ *.bat text eol=crlf
9
+
10
+ # Binary files should be left untouched
11
+ *.jar binary
12
+
@@ -0,0 +1,4 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: [ethindp]
4
+ buy_me_a_coffee: draeand
@@ -0,0 +1,82 @@
1
+ name: Publish to PyPI
2
+ on:
3
+ workflow_dispatch:
4
+ release:
5
+ types: [published]
6
+ concurrency:
7
+ group: pypi-${{ github.event.release.tag_name }}
8
+ cancel-in-progress: true
9
+ jobs:
10
+ build_wheels:
11
+ name: Build wheels for ${{ matrix.os }}
12
+ runs-on: ${{ matrix.runs-on }}
13
+ strategy:
14
+ matrix:
15
+ include:
16
+ - os: linux-intel
17
+ runs-on: ubuntu-latest
18
+ - os: linux-arm
19
+ runs-on: ubuntu-24.04-arm
20
+ - os: windows-intel
21
+ runs-on: windows-latest
22
+ - os: windows-arm
23
+ runs-on: windows-11-arm
24
+ - os: macos-intel
25
+ runs-on: macos-15-intel
26
+ - os: macos-arm
27
+ runs-on: macos-latest
28
+ - os: android-intel
29
+ runs-on: ubuntu-latest
30
+ platform: android
31
+ - os: android-arm
32
+ runs-on: ubuntu-latest
33
+ platform: android
34
+ archs: arm64_v8a
35
+ steps:
36
+ - uses: actions/checkout@v5
37
+ with:
38
+ ref: ${{ github.event.release.tag_name }}
39
+ - name: Activate MSVC
40
+ uses: ilammy/msvc-dev-cmd@v1
41
+ if: runner.os == 'Windows'
42
+ - name: Build wheels
43
+ uses: pypa/cibuildwheel@v3.3.1
44
+ env:
45
+ CIBW_PLATFORM: ${{ matrix.platform || 'auto' }}
46
+ CIBW_ARCHS: ${{ matrix.archs || 'auto' }}
47
+ ANDROID_API_LEVEL: 30
48
+ - uses: actions/upload-artifact@v4
49
+ with:
50
+ name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
51
+ path: ./wheelhouse/*.whl
52
+
53
+ build_sdist:
54
+ name: Build source distribution
55
+ runs-on: ubuntu-latest
56
+ steps:
57
+ - uses: actions/checkout@v5
58
+ - name: Build sdist
59
+ run: pipx run build --sdist
60
+ - uses: actions/upload-artifact@v4
61
+ with:
62
+ name: cibw-sdist
63
+ path: dist/*.tar.gz
64
+
65
+ upload_pypi:
66
+ needs: [build_wheels, build_sdist]
67
+ if: ${{ !github.event.release.prerelease }}
68
+ runs-on: ubuntu-latest
69
+ environment:
70
+ name: pypi
71
+ url: https://pypi.org/p/prismatoid
72
+ permissions:
73
+ id-token: write
74
+ actions: read
75
+ contents: read
76
+ steps:
77
+ - uses: actions/download-artifact@v5
78
+ with:
79
+ pattern: cibw-*
80
+ path: dist
81
+ merge-multiple: true
82
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,348 @@
1
+ # SPDX-License-Identifier: MPL-2.0
2
+ name: Release
3
+
4
+ on:
5
+ workflow_dispatch:
6
+ inputs:
7
+ prerelease:
8
+ description: Mark as pre-release
9
+ type: boolean
10
+ default: true
11
+ permissions:
12
+ contents: write
13
+ jobs:
14
+ version:
15
+ runs-on: ubuntu-latest
16
+ outputs:
17
+ version: ${{ steps.extract.outputs.version }}
18
+ tag: ${{ steps.extract.outputs.tag }}
19
+ steps:
20
+ - uses: actions/checkout@v5
21
+ - name: Extract version
22
+ id: extract
23
+ run: |
24
+ version=$(sed -n 's/^[[:space:]]*VERSION[[:space:]]\+\([0-9.]\+\).*/\1/p' CMakeLists.txt | head -1)
25
+ echo "version=$version" >> "$GITHUB_OUTPUT"
26
+ echo "tag=v${version}" >> "$GITHUB_OUTPUT"
27
+ docs:
28
+ runs-on: ubuntu-latest
29
+ steps:
30
+ - uses: actions/checkout@v5
31
+ - name: Build docs
32
+ run: |
33
+ cargo install --all-features mdbook
34
+ mdbook build doc
35
+ - uses: actions/upload-artifact@v4
36
+ with:
37
+ name: docs
38
+ path: doc/book
39
+
40
+ windows-x64:
41
+ needs: version
42
+ runs-on: windows-latest
43
+ steps:
44
+ - uses: actions/checkout@v5
45
+ - uses: ilammy/msvc-dev-cmd@v1
46
+ with:
47
+ arch: amd64
48
+ - name: Install uv
49
+ uses: astral-sh/setup-uv@v7
50
+ - name: Build Release
51
+ run: |
52
+ cmake -B build-release -G Ninja -DCMAKE_BUILD_TYPE=Release -DPRISM_ENABLE_TESTS=OFF
53
+ cmake --build build-release
54
+ - name: Build Debug
55
+ run: |
56
+ cmake -B build-debug -G Ninja -DCMAKE_BUILD_TYPE=Debug -DPRISM_ENABLE_TESTS=OFF
57
+ cmake --build build-debug
58
+ - name: Package
59
+ shell: pwsh
60
+ run: |
61
+ mkdir -p dist/release/lib
62
+ mkdir -p dist/release/bin
63
+ mkdir -p dist/debug/lib
64
+ mkdir -p dist/debug/bin
65
+ mkdir -p dist/include
66
+ cp build-release/prism.dll dist/release/bin/
67
+ cp build-release/prism.lib dist/release/lib/
68
+ cp include/prism.h dist/include/
69
+ cp build-debug/prism.dll dist/debug/bin/
70
+ cp build-debug/prism.lib dist/debug/lib/
71
+ cp build-debug/prism.pdb dist/debug/bin/
72
+ cp -r LICENSES "dist"
73
+ cp NOTICE "dist"
74
+ Compress-Archive -Path dist/* -DestinationPath prism-windows-x64.zip
75
+ - uses: actions/upload-artifact@v4
76
+ with:
77
+ name: windows-x64
78
+ path: prism-windows-x64.zip
79
+
80
+ windows-arm64:
81
+ needs: version
82
+ runs-on: windows-latest
83
+ steps:
84
+ - uses: actions/checkout@v5
85
+ - uses: ilammy/msvc-dev-cmd@v1
86
+ with:
87
+ arch: amd64_arm64
88
+ - name: Install uv
89
+ uses: astral-sh/setup-uv@v7
90
+ - name: Set up Python
91
+ run: uv python install
92
+ - name: Build Release
93
+ run: |
94
+ cmake -B build-release -G Ninja -DCMAKE_BUILD_TYPE=Release -DPRISM_ENABLE_TESTS=OFF -DCMAKE_SYSTEM_PROCESSOR=ARM64
95
+ cmake --build build-release
96
+ - name: Build Debug
97
+ run: |
98
+ cmake -B build-debug -G Ninja -DCMAKE_BUILD_TYPE=Debug -DPRISM_ENABLE_TESTS=OFF -DCMAKE_SYSTEM_PROCESSOR=ARM64
99
+ cmake --build build-debug
100
+ - name: Package
101
+ shell: pwsh
102
+ run: |
103
+ mkdir -p dist/release/lib
104
+ mkdir -p dist/release/bin
105
+ mkdir -p dist/debug/lib
106
+ mkdir -p dist/debug/bin
107
+ mkdir -p dist/include
108
+ cp build-release/prism.dll dist/release/bin/
109
+ cp build-release/prism.lib dist/release/lib/
110
+ cp include/prism.h dist/include/
111
+ cp build-debug/prism.dll dist/debug/bin/
112
+ cp build-debug/prism.lib dist/debug/lib/
113
+ cp build-debug/prism.pdb dist/debug/bin/
114
+ cp -r LICENSES "dist"
115
+ cp NOTICE "dist"
116
+ Compress-Archive -Path dist/* -DestinationPath prism-windows-arm64.zip
117
+ - uses: actions/upload-artifact@v4
118
+ with:
119
+ name: windows-arm64
120
+ path: prism-windows-arm64.zip
121
+
122
+ macos:
123
+ needs: version
124
+ runs-on: macos-latest
125
+ steps:
126
+ - uses: actions/checkout@v5
127
+ - name: Build Release
128
+ run: |
129
+ cmake -B build-arm64-release -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_ARCHITECTURES=arm64 -DPRISM_ENABLE_TESTS=OFF -G Ninja -DCMAKE_OSX_DEPLOYMENT_TARGET=15.0
130
+ cmake --build build-arm64-release
131
+ cmake -S . -B build-x64-release -G Ninja -DCMAKE_BUILD_TYPE=Release -DPRISM_ENABLE_TESTS=OFF -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET=15.0 -DCMAKE_Swift_COMPILER_TARGET=x86_64-apple-macosx15.0
132
+ cmake --build build-x64-release
133
+ - name: Build Debug
134
+ run: |
135
+ cmake -B build-arm64-debug -DCMAKE_BUILD_TYPE=Debug -DPRISM_ENABLE_TESTS=OFF -DCMAKE_OSX_ARCHITECTURES=arm64 -G Ninja -DCMAKE_OSX_DEPLOYMENT_TARGET=15.0
136
+ cmake --build build-arm64-debug
137
+ cmake -S . -B build-x64-debug -G Ninja -DCMAKE_BUILD_TYPE=Debug -DPRISM_ENABLE_TESTS=OFF -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_OSX_DEPLOYMENT_TARGET=15.0 -DCMAKE_Swift_COMPILER_TARGET=x86_64-apple-macosx15.0
138
+ cmake --build build-x64-debug
139
+ - name: Package
140
+ run: |
141
+ mkdir -p dist/release/lib dist/debug/lib dist/include
142
+ lipo -create build-arm64-release/libprism.dylib build-x64-release/libprism.dylib -output dist/release/lib/libprism.dylib
143
+ lipo -create build-arm64-debug/libprism.dylib build-x64-debug/libprism.dylib -output dist/debug/lib/libprism.dylib
144
+ cp -r build-arm64-debug/libprism.dylib.dSYM dist/debug/lib/ 2>/dev/null || true
145
+ cp include/prism.h dist/include/
146
+ cp -r LICENSES "dist"
147
+ cp NOTICE "dist"
148
+ cd dist && zip -r ../prism-macos-universal.zip .
149
+ - uses: actions/upload-artifact@v4
150
+ with:
151
+ name: macos-universal
152
+ path: prism-macos-universal.zip
153
+
154
+ ios:
155
+ needs: version
156
+ runs-on: macos-15
157
+ steps:
158
+ - uses: actions/checkout@v5
159
+ - name: Build Release
160
+ run: |
161
+ curl -sSL https://raw.githubusercontent.com/leetal/ios-cmake/master/ios.toolchain.cmake -o ios.toolchain.cmake
162
+ cmake -B build-release -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=ios.toolchain.cmake -DPLATFORM=OS64 -DDEPLOYMENT_TARGET=14.0 -DCMAKE_Swift_FLAGS="-target arm64-apple-ios14.0" -DPRISM_ENABLE_TESTS=OFF -G Ninja
163
+ cmake --build build-release
164
+ - name: Build Debug
165
+ run: |
166
+ curl -sSL https://raw.githubusercontent.com/leetal/ios-cmake/master/ios.toolchain.cmake -o ios.toolchain.cmake
167
+ cmake -B build-debug -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=ios.toolchain.cmake -DPLATFORM=OS64 -DDEPLOYMENT_TARGET=14.0 -DCMAKE_Swift_FLAGS="-target arm64-apple-ios14.0" -DPRISM_ENABLE_TESTS=OFF -G Ninja
168
+ cmake --build build-debug
169
+ - name: Package
170
+ run: |
171
+ mkdir -p dist/release/lib dist/debug/lib dist/include
172
+ cp build-release/libprism.a dist/release/lib/ 2>/dev/null || cp build-release/libprism.dylib dist/release/lib/
173
+ cp build-debug/libprism.a dist/debug/lib/ 2>/dev/null || cp build-debug/libprism.dylib dist/debug/lib/
174
+ cp -r build-debug/*.dSYM dist/debug/lib/ 2>/dev/null || true
175
+ cp include/prism.h dist/include/
176
+ cp -r LICENSES "dist"
177
+ cp NOTICE "dist"
178
+ cd dist && zip -r ../prism-ios-arm64.zip .
179
+ - uses: actions/upload-artifact@v4
180
+ with:
181
+ name: ios-arm64
182
+ path: prism-ios-arm64.zip
183
+
184
+ linux-x64:
185
+ needs: version
186
+ runs-on: ubuntu-latest
187
+ steps:
188
+ - uses: actions/checkout@v5
189
+ - name: Install deps
190
+ run: sudo apt-get update && sudo apt-get install -y libspeechd-dev libglib2.0-dev
191
+ - name: Build Release
192
+ run: |
193
+ cmake -B build-release -DCMAKE_BUILD_TYPE=Release -DPRISM_ENABLE_TESTS=OFF
194
+ cmake --build build-release
195
+ - name: Build Debug
196
+ run: |
197
+ cmake -B build-debug -DCMAKE_BUILD_TYPE=Debug -DPRISM_ENABLE_TESTS=OFF
198
+ cmake --build build-debug
199
+ - name: Package
200
+ run: |
201
+ mkdir -p dist/release/lib dist/debug/lib dist/include
202
+ cp build-release/libprism.so dist/release/lib/
203
+ cp build-debug/libprism.so dist/debug/lib/
204
+ cp include/prism.h dist/include/
205
+ cp -r LICENSES "dist"
206
+ cp NOTICE "dist"
207
+ cd dist && zip -r ../prism-linux-x64.zip .
208
+ - uses: actions/upload-artifact@v4
209
+ with:
210
+ name: linux-x64
211
+ path: prism-linux-x64.zip
212
+
213
+ linux-arm64:
214
+ needs: version
215
+ runs-on: ubuntu-24.04-arm
216
+ steps:
217
+ - uses: actions/checkout@v5
218
+ - name: Install deps
219
+ run: sudo apt-get update && sudo apt-get install -y libspeechd-dev libglib2.0-dev
220
+ - name: Build Release
221
+ run: |
222
+ cmake -B build-release -DCMAKE_BUILD_TYPE=Release -DPRISM_ENABLE_TESTS=OFF
223
+ cmake --build build-release
224
+ - name: Build Debug
225
+ run: |
226
+ cmake -B build-debug -DCMAKE_BUILD_TYPE=Debug -DPRISM_ENABLE_TESTS=OFF
227
+ cmake --build build-debug
228
+ - name: Package
229
+ run: |
230
+ mkdir -p dist/release/lib dist/debug/lib dist/include
231
+ cp build-release/libprism.so dist/release/lib/
232
+ cp build-debug/libprism.so dist/debug/lib/
233
+ cp include/prism.h dist/include/
234
+ cp -r LICENSES "dist"
235
+ cp NOTICE "dist"
236
+ cd dist && zip -r ../prism-linux-arm64.zip .
237
+ - uses: actions/upload-artifact@v4
238
+ with:
239
+ name: linux-arm64
240
+ path: prism-linux-arm64.zip
241
+
242
+ android:
243
+ needs: version
244
+ runs-on: ubuntu-latest
245
+ steps:
246
+ - uses: actions/checkout@v5
247
+ - uses: actions/setup-java@v4
248
+ with:
249
+ distribution: temurin
250
+ java-version: 25
251
+ - name: Build
252
+ run: chmod +x gradlew && ./gradlew assembleRelease assembleDebug
253
+ - name: Package
254
+ run: |
255
+ mkdir -p dist/{debug,release}
256
+ mkdir -p dist/include
257
+ cp build/android/gradle/outputs/aar/*-release.aar dist/release/
258
+ cp build/android/gradle/outputs/aar/*-debug.aar dist/debug/
259
+ cp include/prism.h dist/include/
260
+ cp -r LICENSES "dist"
261
+ cp NOTICE "dist"
262
+ cd dist && zip -r ../prism-android.zip .
263
+ - uses: actions/upload-artifact@v4
264
+ with:
265
+ name: android
266
+ path: prism-android.zip
267
+
268
+ emscripten:
269
+ needs: version
270
+ runs-on: ubuntu-latest
271
+ steps:
272
+ - uses: actions/checkout@v5
273
+ - uses: mymindstorm/setup-emsdk@v14
274
+ with:
275
+ version: latest
276
+ - name: Build Release
277
+ run: |
278
+ emcmake cmake -B build-release -DCMAKE_BUILD_TYPE=Release -DPRISM_ENABLE_TESTS=OFF
279
+ cmake --build build-release
280
+ - name: Build Debug
281
+ run: |
282
+ emcmake cmake -B build-debug -DCMAKE_BUILD_TYPE=Debug -DPRISM_ENABLE_TESTS=OFF
283
+ cmake --build build-debug
284
+ - name: Package
285
+ run: |
286
+ mkdir -p dist/release dist/debug dist/include
287
+ cp build-release/libprism.a dist/release/
288
+ cp build-debug/libprism.a dist/debug/
289
+ cp include/prism.h dist/include/
290
+ cp -r LICENSES "dist"
291
+ cp NOTICE "dist"
292
+ cd dist && zip -r ../prism-wasm.zip .
293
+ - uses: actions/upload-artifact@v4
294
+ with:
295
+ name: wasm
296
+ path: prism-wasm.zip
297
+
298
+ release:
299
+ needs: [version, docs, windows-x64, windows-arm64, macos, ios, linux-x64, linux-arm64, android, emscripten]
300
+ runs-on: ubuntu-latest
301
+ steps:
302
+ - uses: actions/checkout@v5
303
+ - uses: actions/download-artifact@v5
304
+ with:
305
+ path: artifacts
306
+ - name: Assemble SDK
307
+ run: |
308
+ tag="${{ needs.version.outputs.tag }}"
309
+ sdk="prism-sdk-${tag}"
310
+ mkdir -p "${sdk}"/{windows/x64,windows/arm64,macos/universal,ios/arm64,linux/x64,linux/arm64,android,wasm,include,doc,LICENSES}
311
+ cp include/prism.h "${sdk}/include/"
312
+ cp -r artifacts/docs/* "${sdk}/doc/"
313
+ unzip -q artifacts/windows-x64/prism-windows-x64.zip -d "${sdk}/windows/x64/"
314
+ unzip -q artifacts/windows-arm64/prism-windows-arm64.zip -d "${sdk}/windows/arm64/"
315
+ unzip -q artifacts/macos-universal/prism-macos-universal.zip -d "${sdk}/macos/universal/"
316
+ unzip -q artifacts/ios-arm64/prism-ios-arm64.zip -d "${sdk}/ios/arm64/"
317
+ unzip -q artifacts/linux-x64/prism-linux-x64.zip -d "${sdk}/linux/x64/"
318
+ unzip -q artifacts/linux-arm64/prism-linux-arm64.zip -d "${sdk}/linux/arm64/"
319
+ unzip -q artifacts/android/prism-android.zip -d "${sdk}/android/"
320
+ unzip -q artifacts/wasm/prism-wasm.zip -d "${sdk}/wasm/"
321
+ find "${sdk}" -depth -type d -name include -not -path "${sdk}/include" -exec rm -rf {} +
322
+ find "${sdk}" -depth -type d -name LICENSES -not -path "${sdk}/LICENSES" -exec rm -rf {} +
323
+ find "${sdk}" -name "NOTICE" -type f -delete
324
+ cp -r LICENSES "${sdk}"
325
+ cp NOTICE "${sdk}"
326
+ zip -r "${sdk}.zip" "${sdk}"
327
+ - uses: actions/create-github-app-token@v1
328
+ id: app-token
329
+ with:
330
+ app-id: ${{ vars.RELEASE_APP_ID }}
331
+ private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
332
+ - uses: softprops/action-gh-release@v2
333
+ with:
334
+ token: ${{ steps.app-token.outputs.token }}
335
+ tag_name: ${{ needs.version.outputs.tag }}
336
+ name: PRISM ${{ needs.version.outputs.tag }}
337
+ prerelease: ${{ inputs.prerelease }}
338
+ generate_release_notes: true
339
+ files: |
340
+ prism-sdk-${{ needs.version.outputs.tag }}.zip
341
+ artifacts/windows-x64/prism-windows-x64.zip
342
+ artifacts/windows-arm64/prism-windows-arm64.zip
343
+ artifacts/macos-universal/prism-macos-universal.zip
344
+ artifacts/ios-arm64/prism-ios-arm64.zip
345
+ artifacts/linux-x64/prism-linux-x64.zip
346
+ artifacts/linux-arm64/prism-linux-arm64.zip
347
+ artifacts/android/prism-android.zip
348
+ artifacts/wasm/prism-wasm.zip
@@ -0,0 +1,102 @@
1
+ **/.DS_Store
2
+ .idea/
3
+ .vs/
4
+ .vscode/
5
+ build/
6
+ cmake-build-*/
7
+ prefix/
8
+ .clangd
9
+ CMakeLists.txt.user
10
+ CMakeUserPresets.json
11
+ compile_commands.json
12
+ doc/book
13
+ dist/
14
+ .gradle
15
+ .DS_Store
16
+ Thumbs.db
17
+ Desktop.ini
18
+ .vscode/
19
+ .idea/
20
+ *.iml
21
+ *.ipr
22
+ *.iws
23
+ cmake-build-*/
24
+ .vs/
25
+ *.VC.db
26
+ *.VC.VC.opendb
27
+ *.suo
28
+ *.user
29
+ *.userosscache
30
+ *.sln.docstates
31
+ build*/
32
+ Build*/
33
+ out*/
34
+ bin*/
35
+ lib*/
36
+ CMakeFiles/
37
+ CMakeCache.txt
38
+ cmake_install.cmake
39
+ install_manifest.txt
40
+ CTestTestfile.cmake
41
+ Testing/
42
+ _compile_commands.json
43
+ compile_commands.json
44
+ .ninja_deps
45
+ .ninja_log
46
+ .ninja_history
47
+ build.ninja
48
+ Makefile
49
+ *.o
50
+ *.obj
51
+ *.lo
52
+ *.la
53
+ *.a
54
+ *.lib
55
+ *.so
56
+ *.so.*
57
+ *.dylib
58
+ *.dll
59
+ *.pdb
60
+ *.idb
61
+ *.ilk
62
+ *.exp
63
+ *.map
64
+ *.dSYM/
65
+ *.d
66
+ *.dep
67
+ # Gradle
68
+ .gradle/
69
+ **/build/
70
+ *.apk
71
+ *.aab
72
+ # Android Studio "External Native Build"
73
+ **/.cxx/
74
+ **/.externalNativeBuild/
75
+ # NDK intermediate outputs commonly emitted by AGP
76
+ **/obj/
77
+ **/jniLibs/*/*.so
78
+ **/jniLibs/*/*.so.*
79
+ # Local config
80
+ local.properties
81
+ *.class
82
+ *.dex
83
+ *.jar
84
+ __pycache__/
85
+ *.py[cod]
86
+ *.pyo
87
+ *.pyd
88
+ .venv/
89
+ venv/
90
+ pip-wheel-metadata/
91
+ *.egg-info/
92
+ dist/
93
+ wheelhouse/
94
+ *.log
95
+ *.tmp
96
+ *.temp
97
+ *.swp
98
+ *.swo
99
+ *~
100
+ .cache/
101
+ !bindings
102
+ **/target/
@@ -0,0 +1 @@
1
+ 3.14