├── .github
└── workflows
│ └── rust.yml
├── .gitignore
├── Cargo.lock
├── Cargo.toml
├── LICENSE
├── README.md
└── crates
├── polyphony-tauri
├── .gitignore
├── Cargo.lock
├── Cargo.toml
├── build.rs
├── gen
│ ├── android
│ │ ├── .editorconfig
│ │ ├── .gitignore
│ │ ├── app
│ │ │ ├── .gitignore
│ │ │ ├── build.gradle.kts
│ │ │ ├── proguard-rules.pro
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── java
│ │ │ │ └── chat
│ │ │ │ │ └── polyphony
│ │ │ │ │ └── polyphony_tauri
│ │ │ │ │ └── MainActivity.kt
│ │ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ └── file_paths.xml
│ │ ├── build.gradle.kts
│ │ ├── buildSrc
│ │ │ ├── build.gradle.kts
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ └── java
│ │ │ │ └── chat
│ │ │ │ └── polyphony
│ │ │ │ └── polyphony_tauri
│ │ │ │ └── kotlin
│ │ │ │ ├── BuildTask.kt
│ │ │ │ └── RustPlugin.kt
│ │ ├── gradle.properties
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ └── apple
│ │ ├── .gitignore
│ │ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── AppIcon-20x20@1x.png
│ │ │ ├── AppIcon-20x20@2x-1.png
│ │ │ ├── AppIcon-20x20@2x.png
│ │ │ ├── AppIcon-20x20@3x.png
│ │ │ ├── AppIcon-29x29@1x.png
│ │ │ ├── AppIcon-29x29@2x-1.png
│ │ │ ├── AppIcon-29x29@2x.png
│ │ │ ├── AppIcon-29x29@3x.png
│ │ │ ├── AppIcon-40x40@1x.png
│ │ │ ├── AppIcon-40x40@2x-1.png
│ │ │ ├── AppIcon-40x40@2x.png
│ │ │ ├── AppIcon-40x40@3x.png
│ │ │ ├── AppIcon-512@2x.png
│ │ │ ├── AppIcon-512x512@2x.png
│ │ │ ├── AppIcon-60x60@2x.png
│ │ │ ├── AppIcon-60x60@3x.png
│ │ │ ├── AppIcon-76x76@1x.png
│ │ │ ├── AppIcon-76x76@2x.png
│ │ │ ├── AppIcon-83.5x83.5@2x.png
│ │ │ └── Contents.json
│ │ └── Contents.json
│ │ ├── ExportOptions.plist
│ │ ├── Podfile
│ │ ├── Sources
│ │ └── polyphony-tauri
│ │ │ ├── bindings
│ │ │ └── bindings.h
│ │ │ └── main.mm
│ │ ├── polyphony-tauri.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── polyphony-tauri_iOS.xcscheme
│ │ ├── polyphony-tauri_iOS
│ │ ├── Info.plist
│ │ └── polyphony-tauri_iOS.entitlements
│ │ └── project.yml
├── icons
│ ├── 128x128.png
│ ├── 128x128@2x.png
│ ├── 32x32.png
│ ├── Square107x107Logo.png
│ ├── Square142x142Logo.png
│ ├── Square150x150Logo.png
│ ├── Square284x284Logo.png
│ ├── Square30x30Logo.png
│ ├── Square310x310Logo.png
│ ├── Square44x44Logo.png
│ ├── Square71x71Logo.png
│ ├── Square89x89Logo.png
│ ├── StoreLogo.png
│ ├── icon.icns
│ ├── icon.ico
│ └── icon.png
├── src
│ ├── lib.rs
│ └── main.rs
└── tauri.conf.json
└── polyphony-wasm
├── .gitignore
├── Cargo.toml
├── index.html
├── public
└── main.css
├── src
├── app
│ ├── login.rs
│ ├── mod.rs
│ └── register.rs
├── main.rs
└── stores.rs
└── tailwind.config.js
/.github/workflows/rust.yml:
--------------------------------------------------------------------------------
1 | name: Build and Test
2 |
3 | on:
4 | push:
5 | branches: [ "main" ]
6 | pull_request:
7 | branches: [ "main" ]
8 |
9 | env:
10 | CARGO_TERM_COLOR: always
11 |
12 | jobs:
13 | rust:
14 |
15 | runs-on: ubuntu-latest
16 |
17 | steps:
18 | - uses: actions/checkout@v3
19 | - name: Clone spacebar server
20 | run: |
21 | git clone https://github.com/bitfl0wer/server.git
22 | - uses: actions/setup-node@v3
23 | with:
24 | node-version: 18
25 | cache: 'npm'
26 | cache-dependency-path: server/package-lock.json
27 | - name: Prepare and start Spacebar server
28 | run: |
29 | npm install
30 | npm run setup
31 | npm run start &
32 | working-directory: ./server
33 | - uses: Swatinem/rust-cache@v2
34 | with:
35 | cache-all-crates: "true"
36 | - name: Build, Test and Publish Coverage
37 | run: |
38 | if [ -n "${{ secrets.COVERALLS_REPO_TOKEN }}" ]; then
39 | curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
40 | cargo binstall --no-confirm cargo-tarpaulin --force
41 | cargo tarpaulin --all-features --avoid-cfg-tarpaulin --tests --verbose --skip-clean --coveralls ${{ secrets.COVERALLS_REPO_TOKEN }} --timeout 120
42 | else
43 | echo "Code Coverage step is skipped on forks!"
44 | cargo build --verbose --all-features
45 | cargo test --verbose --all-features
46 | fi
47 |
48 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
26 | ### Rust ###
27 | # Generated by Cargo
28 | # will have compiled files and executables
29 | debug/
30 | target/
31 |
32 | # These are backup files generated by rustfmt
33 | **/*.rs.bk
34 |
35 | # MSVC Windows builds of rustc generate these, which store debugging information
36 | *.pdb
37 |
38 | ### Svelte ###
39 | # gitignore template for the SvelteKit, frontend web component framework
40 | # website: https://kit.svelte.dev/
41 |
42 | .svelte-kit/
43 | package
44 |
45 | ### VisualStudioCode ###
46 | .vscode/*
47 | !.vscode/settings.json
48 | !.vscode/tasks.json
49 | !.vscode/launch.json
50 | !.vscode/extensions.json
51 | !.vscode/*.code-snippets
52 |
53 | # Local History for Visual Studio Code
54 | .history/
55 |
56 | # Built Visual Studio Code Extensions
57 | *.vsix
58 |
59 | ### VisualStudioCode Patch ###
60 | # Ignore all local history of files
61 | .history
62 | .ionide
63 |
64 |
65 | # Added by cargo
66 |
67 | /target
68 |
--------------------------------------------------------------------------------
/Cargo.toml:
--------------------------------------------------------------------------------
1 | [workspace]
2 | members = ["crates/polyphony-wasm", "crates/polyphony-tauri"]
3 | resolver = "2"
4 |
5 | [profile.release]
6 | opt-level = 'z'
7 | lto = true
8 | codegen-units = 1
9 | panic = "abort"
10 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Mozilla Public License Version 2.0
2 | ==================================
3 |
4 | 1. Definitions
5 | --------------
6 |
7 | 1.1. "Contributor"
8 | means each individual or legal entity that creates, contributes to
9 | the creation of, or owns Covered Software.
10 |
11 | 1.2. "Contributor Version"
12 | means the combination of the Contributions of others (if any) used
13 | by a Contributor and that particular Contributor's Contribution.
14 |
15 | 1.3. "Contribution"
16 | means Covered Software of a particular Contributor.
17 |
18 | 1.4. "Covered Software"
19 | means Source Code Form to which the initial Contributor has attached
20 | the notice in Exhibit A, the Executable Form of such Source Code
21 | Form, and Modifications of such Source Code Form, in each case
22 | including portions thereof.
23 |
24 | 1.5. "Incompatible With Secondary Licenses"
25 | means
26 |
27 | (a) that the initial Contributor has attached the notice described
28 | in Exhibit B to the Covered Software; or
29 |
30 | (b) that the Covered Software was made available under the terms of
31 | version 1.1 or earlier of the License, but not also under the
32 | terms of a Secondary License.
33 |
34 | 1.6. "Executable Form"
35 | means any form of the work other than Source Code Form.
36 |
37 | 1.7. "Larger Work"
38 | means a work that combines Covered Software with other material, in
39 | a separate file or files, that is not Covered Software.
40 |
41 | 1.8. "License"
42 | means this document.
43 |
44 | 1.9. "Licensable"
45 | means having the right to grant, to the maximum extent possible,
46 | whether at the time of the initial grant or subsequently, any and
47 | all of the rights conveyed by this License.
48 |
49 | 1.10. "Modifications"
50 | means any of the following:
51 |
52 | (a) any file in Source Code Form that results from an addition to,
53 | deletion from, or modification of the contents of Covered
54 | Software; or
55 |
56 | (b) any new file in Source Code Form that contains any Covered
57 | Software.
58 |
59 | 1.11. "Patent Claims" of a Contributor
60 | means any patent claim(s), including without limitation, method,
61 | process, and apparatus claims, in any patent Licensable by such
62 | Contributor that would be infringed, but for the grant of the
63 | License, by the making, using, selling, offering for sale, having
64 | made, import, or transfer of either its Contributions or its
65 | Contributor Version.
66 |
67 | 1.12. "Secondary License"
68 | means either the GNU General Public License, Version 2.0, the GNU
69 | Lesser General Public License, Version 2.1, the GNU Affero General
70 | Public License, Version 3.0, or any later versions of those
71 | licenses.
72 |
73 | 1.13. "Source Code Form"
74 | means the form of the work preferred for making modifications.
75 |
76 | 1.14. "You" (or "Your")
77 | means an individual or a legal entity exercising rights under this
78 | License. For legal entities, "You" includes any entity that
79 | controls, is controlled by, or is under common control with You. For
80 | purposes of this definition, "control" means (a) the power, direct
81 | or indirect, to cause the direction or management of such entity,
82 | whether by contract or otherwise, or (b) ownership of more than
83 | fifty percent (50%) of the outstanding shares or beneficial
84 | ownership of such entity.
85 |
86 | 2. License Grants and Conditions
87 | --------------------------------
88 |
89 | 2.1. Grants
90 |
91 | Each Contributor hereby grants You a world-wide, royalty-free,
92 | non-exclusive license:
93 |
94 | (a) under intellectual property rights (other than patent or trademark)
95 | Licensable by such Contributor to use, reproduce, make available,
96 | modify, display, perform, distribute, and otherwise exploit its
97 | Contributions, either on an unmodified basis, with Modifications, or
98 | as part of a Larger Work; and
99 |
100 | (b) under Patent Claims of such Contributor to make, use, sell, offer
101 | for sale, have made, import, and otherwise transfer either its
102 | Contributions or its Contributor Version.
103 |
104 | 2.2. Effective Date
105 |
106 | The licenses granted in Section 2.1 with respect to any Contribution
107 | become effective for each Contribution on the date the Contributor first
108 | distributes such Contribution.
109 |
110 | 2.3. Limitations on Grant Scope
111 |
112 | The licenses granted in this Section 2 are the only rights granted under
113 | this License. No additional rights or licenses will be implied from the
114 | distribution or licensing of Covered Software under this License.
115 | Notwithstanding Section 2.1(b) above, no patent license is granted by a
116 | Contributor:
117 |
118 | (a) for any code that a Contributor has removed from Covered Software;
119 | or
120 |
121 | (b) for infringements caused by: (i) Your and any other third party's
122 | modifications of Covered Software, or (ii) the combination of its
123 | Contributions with other software (except as part of its Contributor
124 | Version); or
125 |
126 | (c) under Patent Claims infringed by Covered Software in the absence of
127 | its Contributions.
128 |
129 | This License does not grant any rights in the trademarks, service marks,
130 | or logos of any Contributor (except as may be necessary to comply with
131 | the notice requirements in Section 3.4).
132 |
133 | 2.4. Subsequent Licenses
134 |
135 | No Contributor makes additional grants as a result of Your choice to
136 | distribute the Covered Software under a subsequent version of this
137 | License (see Section 10.2) or under the terms of a Secondary License (if
138 | permitted under the terms of Section 3.3).
139 |
140 | 2.5. Representation
141 |
142 | Each Contributor represents that the Contributor believes its
143 | Contributions are its original creation(s) or it has sufficient rights
144 | to grant the rights to its Contributions conveyed by this License.
145 |
146 | 2.6. Fair Use
147 |
148 | This License is not intended to limit any rights You have under
149 | applicable copyright doctrines of fair use, fair dealing, or other
150 | equivalents.
151 |
152 | 2.7. Conditions
153 |
154 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
155 | in Section 2.1.
156 |
157 | 3. Responsibilities
158 | -------------------
159 |
160 | 3.1. Distribution of Source Form
161 |
162 | All distribution of Covered Software in Source Code Form, including any
163 | Modifications that You create or to which You contribute, must be under
164 | the terms of this License. You must inform recipients that the Source
165 | Code Form of the Covered Software is governed by the terms of this
166 | License, and how they can obtain a copy of this License. You may not
167 | attempt to alter or restrict the recipients' rights in the Source Code
168 | Form.
169 |
170 | 3.2. Distribution of Executable Form
171 |
172 | If You distribute Covered Software in Executable Form then:
173 |
174 | (a) such Covered Software must also be made available in Source Code
175 | Form, as described in Section 3.1, and You must inform recipients of
176 | the Executable Form how they can obtain a copy of such Source Code
177 | Form by reasonable means in a timely manner, at a charge no more
178 | than the cost of distribution to the recipient; and
179 |
180 | (b) You may distribute such Executable Form under the terms of this
181 | License, or sublicense it under different terms, provided that the
182 | license for the Executable Form does not attempt to limit or alter
183 | the recipients' rights in the Source Code Form under this License.
184 |
185 | 3.3. Distribution of a Larger Work
186 |
187 | You may create and distribute a Larger Work under terms of Your choice,
188 | provided that You also comply with the requirements of this License for
189 | the Covered Software. If the Larger Work is a combination of Covered
190 | Software with a work governed by one or more Secondary Licenses, and the
191 | Covered Software is not Incompatible With Secondary Licenses, this
192 | License permits You to additionally distribute such Covered Software
193 | under the terms of such Secondary License(s), so that the recipient of
194 | the Larger Work may, at their option, further distribute the Covered
195 | Software under the terms of either this License or such Secondary
196 | License(s).
197 |
198 | 3.4. Notices
199 |
200 | You may not remove or alter the substance of any license notices
201 | (including copyright notices, patent notices, disclaimers of warranty,
202 | or limitations of liability) contained within the Source Code Form of
203 | the Covered Software, except that You may alter any license notices to
204 | the extent required to remedy known factual inaccuracies.
205 |
206 | 3.5. Application of Additional Terms
207 |
208 | You may choose to offer, and to charge a fee for, warranty, support,
209 | indemnity or liability obligations to one or more recipients of Covered
210 | Software. However, You may do so only on Your own behalf, and not on
211 | behalf of any Contributor. You must make it absolutely clear that any
212 | such warranty, support, indemnity, or liability obligation is offered by
213 | You alone, and You hereby agree to indemnify every Contributor for any
214 | liability incurred by such Contributor as a result of warranty, support,
215 | indemnity or liability terms You offer. You may include additional
216 | disclaimers of warranty and limitations of liability specific to any
217 | jurisdiction.
218 |
219 | 4. Inability to Comply Due to Statute or Regulation
220 | ---------------------------------------------------
221 |
222 | If it is impossible for You to comply with any of the terms of this
223 | License with respect to some or all of the Covered Software due to
224 | statute, judicial order, or regulation then You must: (a) comply with
225 | the terms of this License to the maximum extent possible; and (b)
226 | describe the limitations and the code they affect. Such description must
227 | be placed in a text file included with all distributions of the Covered
228 | Software under this License. Except to the extent prohibited by statute
229 | or regulation, such description must be sufficiently detailed for a
230 | recipient of ordinary skill to be able to understand it.
231 |
232 | 5. Termination
233 | --------------
234 |
235 | 5.1. The rights granted under this License will terminate automatically
236 | if You fail to comply with any of its terms. However, if You become
237 | compliant, then the rights granted under this License from a particular
238 | Contributor are reinstated (a) provisionally, unless and until such
239 | Contributor explicitly and finally terminates Your grants, and (b) on an
240 | ongoing basis, if such Contributor fails to notify You of the
241 | non-compliance by some reasonable means prior to 60 days after You have
242 | come back into compliance. Moreover, Your grants from a particular
243 | Contributor are reinstated on an ongoing basis if such Contributor
244 | notifies You of the non-compliance by some reasonable means, this is the
245 | first time You have received notice of non-compliance with this License
246 | from such Contributor, and You become compliant prior to 30 days after
247 | Your receipt of the notice.
248 |
249 | 5.2. If You initiate litigation against any entity by asserting a patent
250 | infringement claim (excluding declaratory judgment actions,
251 | counter-claims, and cross-claims) alleging that a Contributor Version
252 | directly or indirectly infringes any patent, then the rights granted to
253 | You by any and all Contributors for the Covered Software under Section
254 | 2.1 of this License shall terminate.
255 |
256 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all
257 | end user license agreements (excluding distributors and resellers) which
258 | have been validly granted by You or Your distributors under this License
259 | prior to termination shall survive termination.
260 |
261 | ************************************************************************
262 | * *
263 | * 6. Disclaimer of Warranty *
264 | * ------------------------- *
265 | * *
266 | * Covered Software is provided under this License on an "as is" *
267 | * basis, without warranty of any kind, either expressed, implied, or *
268 | * statutory, including, without limitation, warranties that the *
269 | * Covered Software is free of defects, merchantable, fit for a *
270 | * particular purpose or non-infringing. The entire risk as to the *
271 | * quality and performance of the Covered Software is with You. *
272 | * Should any Covered Software prove defective in any respect, You *
273 | * (not any Contributor) assume the cost of any necessary servicing, *
274 | * repair, or correction. This disclaimer of warranty constitutes an *
275 | * essential part of this License. No use of any Covered Software is *
276 | * authorized under this License except under this disclaimer. *
277 | * *
278 | ************************************************************************
279 |
280 | ************************************************************************
281 | * *
282 | * 7. Limitation of Liability *
283 | * -------------------------- *
284 | * *
285 | * Under no circumstances and under no legal theory, whether tort *
286 | * (including negligence), contract, or otherwise, shall any *
287 | * Contributor, or anyone who distributes Covered Software as *
288 | * permitted above, be liable to You for any direct, indirect, *
289 | * special, incidental, or consequential damages of any character *
290 | * including, without limitation, damages for lost profits, loss of *
291 | * goodwill, work stoppage, computer failure or malfunction, or any *
292 | * and all other commercial damages or losses, even if such party *
293 | * shall have been informed of the possibility of such damages. This *
294 | * limitation of liability shall not apply to liability for death or *
295 | * personal injury resulting from such party's negligence to the *
296 | * extent applicable law prohibits such limitation. Some *
297 | * jurisdictions do not allow the exclusion or limitation of *
298 | * incidental or consequential damages, so this exclusion and *
299 | * limitation may not apply to You. *
300 | * *
301 | ************************************************************************
302 |
303 | 8. Litigation
304 | -------------
305 |
306 | Any litigation relating to this License may be brought only in the
307 | courts of a jurisdiction where the defendant maintains its principal
308 | place of business and such litigation shall be governed by laws of that
309 | jurisdiction, without reference to its conflict-of-law provisions.
310 | Nothing in this Section shall prevent a party's ability to bring
311 | cross-claims or counter-claims.
312 |
313 | 9. Miscellaneous
314 | ----------------
315 |
316 | This License represents the complete agreement concerning the subject
317 | matter hereof. If any provision of this License is held to be
318 | unenforceable, such provision shall be reformed only to the extent
319 | necessary to make it enforceable. Any law or regulation which provides
320 | that the language of a contract shall be construed against the drafter
321 | shall not be used to construe this License against a Contributor.
322 |
323 | 10. Versions of the License
324 | ---------------------------
325 |
326 | 10.1. New Versions
327 |
328 | Mozilla Foundation is the license steward. Except as provided in Section
329 | 10.3, no one other than the license steward has the right to modify or
330 | publish new versions of this License. Each version will be given a
331 | distinguishing version number.
332 |
333 | 10.2. Effect of New Versions
334 |
335 | You may distribute the Covered Software under the terms of the version
336 | of the License under which You originally received the Covered Software,
337 | or under the terms of any subsequent version published by the license
338 | steward.
339 |
340 | 10.3. Modified Versions
341 |
342 | If you create software not governed by this License, and you want to
343 | create a new license for such software, you may create and use a
344 | modified version of this License if you rename the license and remove
345 | any references to the name of the license steward (except to note that
346 | such modified license differs from this License).
347 |
348 | 10.4. Distributing Source Code Form that is Incompatible With Secondary
349 | Licenses
350 |
351 | If You choose to distribute Source Code Form that is Incompatible With
352 | Secondary Licenses under the terms of this version of the License, the
353 | notice described in Exhibit B of this License must be attached.
354 |
355 | Exhibit A - Source Code Form License Notice
356 | -------------------------------------------
357 |
358 | This Source Code Form is subject to the terms of the Mozilla Public
359 | License, v. 2.0. If a copy of the MPL was not distributed with this
360 | file, You can obtain one at http://mozilla.org/MPL/2.0/.
361 |
362 | If it is not possible or desirable to put the notice in a particular
363 | file, then You may include the notice in a location (such as a LICENSE
364 | file in a relevant directory) where a recipient would be likely to look
365 | for such a notice.
366 |
367 | You may add additional accurate notices of copyright ownership.
368 |
369 | Exhibit B - "Incompatible With Secondary Licenses" Notice
370 | ---------------------------------------------------------
371 |
372 | This Source Code Form is "Incompatible With Secondary Licenses", as
373 | defined by the Mozilla Public License, v. 2.0.
374 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | [![Discord]][Discord-invite]
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Polyphony
12 |
13 |
14 | A multi-instance, cross-platform Discord/Spacebar API-compatible chat client, written in Rust using leptos and optionally Tauri.
15 |
16 |
17 | Join Discord
18 |
19 |
20 |
21 |
22 |
23 | ## Notice
24 |
25 | With our current [roadmap](https://roadmap.polyphony.chat), I ([@bitfl0wer](https://github.com/bitfl0wer)) expect to get started with client development in October or November 25'. This repository is a placeholder until then. Feel free to check out [our project main page and the other things we are actively working on in the meantime!](https://github.com/polyphony-chat)
26 |
27 | [Rust]: https://img.shields.io/badge/Rust-orange?style=plastic&logo=rust
28 | [Rust-url]: https://www.rust-lang.org/
29 | [build-shield]: https://img.shields.io/github/actions/workflow/status/polyphony-chat/polyphony-web/rust.yml?style=flat
30 | [build-url]: https://github.com/polyphony-chat/polyphony-web/blob/main/.github/workflows/rust.yml
31 | [contributors-shield]: https://img.shields.io/github/contributors/polyphony-chat/polyphony-web.svg?style=flat
32 | [contributors-url]: https://github.com/polyphony-chat/polyphony-web/graphs/contributors
33 | [forks-shield]: https://img.shields.io/github/forks/polyphony-chat/polyphony-web.svg?style=flat
34 | [forks-url]: https://github.com/polyphony-chat/polyphony-web/network/members
35 | [stars-shield]: https://img.shields.io/github/stars/polyphony-chat/polyphony-web.svg?style=flat
36 | [stars-url]: https://github.com/polyphony-chat/polyphony-web/stargazers
37 | [issues-shield]: https://img.shields.io/github/issues/polyphony-chat/polyphony-web.svg?style=flat
38 | [issues-url]: https://github.com/polyphony-chat/polyphony-web/issues
39 | [license-shield]: https://img.shields.io/github/license/polyphony-chat/polyphony-web.svg?style=f;at
40 | [license-url]: https://github.com/polyphony-chat/polyphony-web/blob/master/LICENSE
41 | [Discord]: https://dcbadge.vercel.app/api/server/m3FpcapGDD?style=flat
42 | [Discord-invite]: https://discord.com/invite/m3FpcapGDD
43 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/.gitignore:
--------------------------------------------------------------------------------
1 | # Generated by Cargo
2 | # will have compiled files and executables
3 | /target/
4 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "polyphony-tauri"
3 | version = "0.0.0"
4 | description = "A Tauri App"
5 | authors = ["you"]
6 | license = "MPL-2.0"
7 | repository = ""
8 | edition = "2021"
9 |
10 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
11 |
12 | [lib]
13 | name = "polyphony_tauri_lib"
14 | crate-type = ["staticlib", "cdylib", "rlib"]
15 |
16 | [build-dependencies]
17 | tauri-build = { version = "2.0.0-alpha", features = [] }
18 |
19 | [dependencies]
20 | tauri = { version = "2.0.0-alpha", features = [] }
21 | tauri-plugin-shell = "2.0.0-alpha"
22 | serde_json = "1.0"
23 |
24 | [features]
25 | # this feature is used for production builds or when `devPath` points to the filesystem
26 | # DO NOT REMOVE!!
27 | custom-protocol = ["tauri/custom-protocol"]
28 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/build.rs:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | fn main() {
6 | tauri_build::build()
7 | }
8 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig is awesome: https://EditorConfig.org
2 |
3 | # top-most EditorConfig file
4 | root = true
5 |
6 | [*]
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | charset = utf-8
11 | trim_trailing_whitespace = false
12 | insert_final_newline = false
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | /.idea/navEditor.xml
9 | /.idea/assetWizardSettings.xml
10 | .DS_Store
11 | build
12 | /captures
13 | .externalNativeBuild
14 | .cxx
15 | local.properties
16 | key.properties
17 |
18 | /.tauri
19 | /tauri.settings.gradle
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/.gitignore:
--------------------------------------------------------------------------------
1 | /src/main/java/chat/polyphony/polyphony_tauri/generated
2 | /src/main/jniLibs/**/*.so
3 | /src/main/assets/tauri.conf.json
4 | /tauri.build.gradle.kts
5 | /proguard-tauri.pro
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/build.gradle.kts:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | plugins {
6 | id("com.android.application")
7 | id("org.jetbrains.kotlin.android")
8 | id("rust")
9 | }
10 |
11 | android {
12 | compileSdk = 33
13 | namespace = "chat.polyphony.polyphony_tauri"
14 | defaultConfig {
15 | manifestPlaceholders["usesCleartextTraffic"] = "false"
16 | applicationId = "chat.polyphony.polyphony_tauri"
17 | minSdk = 24
18 | targetSdk = 33
19 | versionCode = 1
20 | versionName = "1.0"
21 | }
22 | buildTypes {
23 | getByName("debug") {
24 | manifestPlaceholders["usesCleartextTraffic"] = "true"
25 | isDebuggable = true
26 | isJniDebuggable = true
27 | isMinifyEnabled = false
28 | packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so")
29 | jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so")
30 | jniLibs.keepDebugSymbols.add("*/x86/*.so")
31 | jniLibs.keepDebugSymbols.add("*/x86_64/*.so")
32 | }
33 | }
34 | getByName("release") {
35 | isMinifyEnabled = true
36 | proguardFiles(
37 | *fileTree(".") { include("**/*.pro") }
38 | .plus(getDefaultProguardFile("proguard-android-optimize.txt"))
39 | .toList().toTypedArray()
40 | )
41 | }
42 | }
43 | kotlinOptions {
44 | jvmTarget = "1.8"
45 | }
46 | }
47 |
48 | rust {
49 | rootDirRel = "../../../"
50 | }
51 |
52 | dependencies {
53 | implementation("androidx.webkit:webkit:1.6.1")
54 | implementation("androidx.appcompat:appcompat:1.6.1")
55 | implementation("com.google.android.material:material:1.8.0")
56 | testImplementation("junit:junit:4.13.2")
57 | androidTestImplementation("androidx.test.ext:junit:1.1.4")
58 | androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0")
59 | }
60 |
61 | apply(from = "tauri.build.gradle.kts")
62 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | # Add project specific ProGuard rules here.
6 | # You can control the set of applied configuration files using the
7 | # proguardFiles setting in build.gradle.
8 | #
9 | # For more details, see
10 | # http://developer.android.com/guide/developing/tools/proguard.html
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
19 | # Uncomment this to preserve the line number information for
20 | # debugging stack traces.
21 | #-keepattributes SourceFile,LineNumberTable
22 |
23 | # If you keep the line number information, uncomment this to
24 | # hide the original source file name.
25 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
17 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
34 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/java/chat/polyphony/polyphony_tauri/MainActivity.kt:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | package chat.polyphony.polyphony_tauri
6 |
7 | class MainActivity : TauriActivity()
8 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
15 |
16 |
17 |
23 |
26 |
29 |
30 |
31 |
32 |
38 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
15 |
18 |
23 |
28 |
33 |
38 |
43 |
48 |
53 |
58 |
63 |
68 |
73 |
78 |
83 |
88 |
93 |
98 |
103 |
108 |
113 |
118 |
123 |
128 |
133 |
138 |
143 |
148 |
153 |
158 |
163 |
168 |
173 |
178 |
179 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
17 |
18 |
26 |
27 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
14 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFBB86FC
4 | #FF6200EE
5 | #FF3700B3
6 | #FF03DAC5
7 | #FF018786
8 | #FF000000
9 | #FFFFFFFF
10 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | polyphony-tauri
3 | polyphony-tauri
4 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
14 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/app/src/main/res/xml/file_paths.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/build.gradle.kts:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | buildscript {
6 | repositories {
7 | google()
8 | mavenCentral()
9 | }
10 | dependencies {
11 | classpath("com.android.tools.build:gradle:8.0.0")
12 | classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21")
13 | }
14 | }
15 |
16 | allprojects {
17 | repositories {
18 | google()
19 | mavenCentral()
20 | }
21 | }
22 |
23 | tasks.register("clean").configure {
24 | delete("build")
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/buildSrc/build.gradle.kts:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | plugins {
6 | `kotlin-dsl`
7 | }
8 |
9 | gradlePlugin {
10 | plugins {
11 | create("pluginsForCoolKids") {
12 | id = "rust"
13 | implementationClass = "RustPlugin"
14 | }
15 | }
16 | }
17 |
18 | repositories {
19 | google()
20 | mavenCentral()
21 | }
22 |
23 | dependencies {
24 | compileOnly(gradleApi())
25 | implementation("com.android.tools.build:gradle:8.0.0")
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/buildSrc/src/main/java/chat/polyphony/polyphony_tauri/kotlin/BuildTask.kt:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | import java.io.File
6 | import org.apache.tools.ant.taskdefs.condition.Os
7 | import org.gradle.api.DefaultTask
8 | import org.gradle.api.GradleException
9 | import org.gradle.api.logging.LogLevel
10 | import org.gradle.api.tasks.Input
11 | import org.gradle.api.tasks.TaskAction
12 |
13 | open class BuildTask : DefaultTask() {
14 | @Input
15 | var rootDirRel: String? = null
16 | @Input
17 | var target: String? = null
18 | @Input
19 | var release: Boolean? = null
20 |
21 | @TaskAction
22 | fun assemble() {
23 | val executable = """../../../../../.cargo/bin/cargo-tauri""";
24 | try {
25 | runTauriCli(executable)
26 | } catch (e: Exception) {
27 | if (Os.isFamily(Os.FAMILY_WINDOWS)) {
28 | runTauriCli("$executable.cmd")
29 | } else {
30 | throw e;
31 | }
32 | }
33 | }
34 |
35 | fun runTauriCli(executable: String) {
36 | val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null")
37 | val target = target ?: throw GradleException("target cannot be null")
38 | val release = release ?: throw GradleException("release cannot be null")
39 | val args = listOf("tauri", "android", "android-studio-script");
40 |
41 | project.exec {
42 | workingDir(File(project.projectDir, rootDirRel))
43 | executable(executable)
44 | args(args)
45 | if (project.logger.isEnabled(LogLevel.DEBUG)) {
46 | args("-vv")
47 | } else if (project.logger.isEnabled(LogLevel.INFO)) {
48 | args("-v")
49 | }
50 | if (release) {
51 | args("--release")
52 | }
53 | args(listOf("--target", target))
54 | }.assertNormalExitValue()
55 | }
56 | }
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/buildSrc/src/main/java/chat/polyphony/polyphony_tauri/kotlin/RustPlugin.kt:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | import com.android.build.api.dsl.ApplicationExtension
6 | import org.gradle.api.DefaultTask
7 | import org.gradle.api.Plugin
8 | import org.gradle.api.Project
9 | import org.gradle.kotlin.dsl.configure
10 | import org.gradle.kotlin.dsl.get
11 |
12 | const val TASK_GROUP = "rust"
13 |
14 | open class Config {
15 | lateinit var rootDirRel: String
16 | }
17 |
18 | open class RustPlugin : Plugin {
19 | private lateinit var config: Config
20 |
21 | override fun apply(project: Project) = with(project) {
22 | config = extensions.create("rust", Config::class.java)
23 |
24 | val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64");
25 | val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList
26 |
27 | val defaultArchList = listOf("arm64", "arm", "x86", "x86_64");
28 | val archList = (findProperty("archList") as? String)?.split(',') ?: defaultArchList
29 |
30 | val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64")
31 |
32 | extensions.configure {
33 | @Suppress("UnstableApiUsage")
34 | flavorDimensions.add("abi")
35 | productFlavors {
36 | create("universal") {
37 | dimension = "abi"
38 | ndk {
39 | abiFilters += abiList
40 | }
41 | }
42 | defaultArchList.forEachIndexed { index, arch ->
43 | create(arch) {
44 | dimension = "abi"
45 | ndk {
46 | abiFilters.add(defaultAbiList[index])
47 | }
48 | }
49 | }
50 | }
51 | }
52 |
53 | afterEvaluate {
54 | for (profile in listOf("debug", "release")) {
55 | val profileCapitalized = profile.replaceFirstChar { it.uppercase() }
56 | val buildTask = tasks.maybeCreate(
57 | "rustBuildUniversal$profileCapitalized",
58 | DefaultTask::class.java
59 | ).apply {
60 | group = TASK_GROUP
61 | description = "Build dynamic library in $profile mode for all targets"
62 | }
63 |
64 | tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask)
65 |
66 | for (targetPair in targetsList.withIndex()) {
67 | val targetName = targetPair.value
68 | val targetArch = archList[targetPair.index]
69 | val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() }
70 | val targetBuildTask = project.tasks.maybeCreate(
71 | "rustBuild$targetArchCapitalized$profileCapitalized",
72 | BuildTask::class.java
73 | ).apply {
74 | group = TASK_GROUP
75 | description = "Build dynamic library in $profile mode for $targetArch"
76 | rootDirRel = config.rootDirRel
77 | target = targetName
78 | release = profile == "release"
79 | }
80 |
81 | buildTask.dependsOn(targetBuildTask)
82 | tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn(
83 | targetBuildTask
84 | )
85 | }
86 | }
87 | }
88 | }
89 | }
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app"s APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | # Kotlin code style for this project: "official" or "obsolete":
19 | kotlin.code.style=official
20 | # Enables namespacing of each library's R class so that its R class includes only the
21 | # resources declared in the library itself and none from the library's dependencies,
22 | # thereby reducing the size of the R class for that library
23 | android.nonTransitiveRClass=true
24 | android.defaults.buildfeatures.buildconfig=true
25 | android.nonFinalResIds=false
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Tue May 10 19:22:52 CST 2022
2 | distributionBase=GRADLE_USER_HOME
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | #
4 | # Copyright 2015 the original author or authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | ##
21 | ## Gradle start up script for UN*X
22 | ##
23 | ##############################################################################
24 |
25 | # Attempt to set APP_HOME
26 | # Resolve links: $0 may be a link
27 | PRG="$0"
28 | # Need this for relative symlinks.
29 | while [ -h "$PRG" ] ; do
30 | ls=`ls -ld "$PRG"`
31 | link=`expr "$ls" : '.*-> \(.*\)$'`
32 | if expr "$link" : '/.*' > /dev/null; then
33 | PRG="$link"
34 | else
35 | PRG=`dirname "$PRG"`"/$link"
36 | fi
37 | done
38 | SAVED="`pwd`"
39 | cd "`dirname \"$PRG\"`/" >/dev/null
40 | APP_HOME="`pwd -P`"
41 | cd "$SAVED" >/dev/null
42 |
43 | APP_NAME="Gradle"
44 | APP_BASE_NAME=`basename "$0"`
45 |
46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48 |
49 | # Use the maximum available, or set MAX_FD != -1 to use that value.
50 | MAX_FD="maximum"
51 |
52 | warn () {
53 | echo "$*"
54 | }
55 |
56 | die () {
57 | echo
58 | echo "$*"
59 | echo
60 | exit 1
61 | }
62 |
63 | # OS specific support (must be 'true' or 'false').
64 | cygwin=false
65 | msys=false
66 | darwin=false
67 | nonstop=false
68 | case "`uname`" in
69 | CYGWIN* )
70 | cygwin=true
71 | ;;
72 | Darwin* )
73 | darwin=true
74 | ;;
75 | MINGW* )
76 | msys=true
77 | ;;
78 | NONSTOP* )
79 | nonstop=true
80 | ;;
81 | esac
82 |
83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84 |
85 |
86 | # Determine the Java command to use to start the JVM.
87 | if [ -n "$JAVA_HOME" ] ; then
88 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
89 | # IBM's JDK on AIX uses strange locations for the executables
90 | JAVACMD="$JAVA_HOME/jre/sh/java"
91 | else
92 | JAVACMD="$JAVA_HOME/bin/java"
93 | fi
94 | if [ ! -x "$JAVACMD" ] ; then
95 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
96 |
97 | Please set the JAVA_HOME variable in your environment to match the
98 | location of your Java installation."
99 | fi
100 | else
101 | JAVACMD="java"
102 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
103 |
104 | Please set the JAVA_HOME variable in your environment to match the
105 | location of your Java installation."
106 | fi
107 |
108 | # Increase the maximum file descriptors if we can.
109 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
110 | MAX_FD_LIMIT=`ulimit -H -n`
111 | if [ $? -eq 0 ] ; then
112 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
113 | MAX_FD="$MAX_FD_LIMIT"
114 | fi
115 | ulimit -n $MAX_FD
116 | if [ $? -ne 0 ] ; then
117 | warn "Could not set maximum file descriptor limit: $MAX_FD"
118 | fi
119 | else
120 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
121 | fi
122 | fi
123 |
124 | # For Darwin, add options to specify how the application appears in the dock
125 | if $darwin; then
126 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
127 | fi
128 |
129 | # For Cygwin or MSYS, switch paths to Windows format before running java
130 | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
131 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
132 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133 |
134 | JAVACMD=`cygpath --unix "$JAVACMD"`
135 |
136 | # We build the pattern for arguments to be converted via cygpath
137 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
138 | SEP=""
139 | for dir in $ROOTDIRSRAW ; do
140 | ROOTDIRS="$ROOTDIRS$SEP$dir"
141 | SEP="|"
142 | done
143 | OURCYGPATTERN="(^($ROOTDIRS))"
144 | # Add a user-defined pattern to the cygpath arguments
145 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
146 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
147 | fi
148 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
149 | i=0
150 | for arg in "$@" ; do
151 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
152 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
153 |
154 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
155 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
156 | else
157 | eval `echo args$i`="\"$arg\""
158 | fi
159 | i=`expr $i + 1`
160 | done
161 | case $i in
162 | 0) set -- ;;
163 | 1) set -- "$args0" ;;
164 | 2) set -- "$args0" "$args1" ;;
165 | 3) set -- "$args0" "$args1" "$args2" ;;
166 | 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167 | 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168 | 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169 | 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170 | 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171 | 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
172 | esac
173 | fi
174 |
175 | # Escape application args
176 | save () {
177 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
178 | echo " "
179 | }
180 | APP_ARGS=`save "$@"`
181 |
182 | # Collect all arguments for the java command, following the shell quoting and substitution rules
183 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
184 |
185 | exec "$JAVACMD" "$@"
186 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%" == "" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%" == "" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34 |
35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37 |
38 | @rem Find java.exe
39 | if defined JAVA_HOME goto findJavaFromJavaHome
40 |
41 | set JAVA_EXE=java.exe
42 | %JAVA_EXE% -version >NUL 2>&1
43 | if "%ERRORLEVEL%" == "0" goto execute
44 |
45 | echo.
46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47 | echo.
48 | echo Please set the JAVA_HOME variable in your environment to match the
49 | echo location of your Java installation.
50 |
51 | goto fail
52 |
53 | :findJavaFromJavaHome
54 | set JAVA_HOME=%JAVA_HOME:"=%
55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56 |
57 | if exist "%JAVA_EXE%" goto execute
58 |
59 | echo.
60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61 | echo.
62 | echo Please set the JAVA_HOME variable in your environment to match the
63 | echo location of your Java installation.
64 |
65 | goto fail
66 |
67 | :execute
68 | @rem Setup the command line
69 |
70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
71 |
72 |
73 | @rem Execute Gradle
74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
75 |
76 | :end
77 | @rem End local scope for the variables with windows NT shell
78 | if "%ERRORLEVEL%"=="0" goto mainEnd
79 |
80 | :fail
81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82 | rem the _cmd.exe /c_ return code!
83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
84 | exit /b 1
85 |
86 | :mainEnd
87 | if "%OS%"=="Windows_NT" endlocal
88 |
89 | :omega
90 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/android/settings.gradle:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | include ':app'
6 |
7 | apply from: 'tauri.settings.gradle'
8 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/.gitignore:
--------------------------------------------------------------------------------
1 | xcuserdata/
2 | build/
3 | Externals/
4 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@1x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x-1.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@2x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-20x20@3x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@1x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x-1.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@2x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-29x29@3x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@1x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x-1.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@2x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-40x40@3x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512x512@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-512x512@2x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@2x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-60x60@3x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@1x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-76x76@2x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 | {
5 | "images": [
6 | {
7 | "size": "20x20",
8 | "idiom": "iphone",
9 | "filename": "AppIcon-20x20@2x.png",
10 | "scale": "2x"
11 | },
12 | {
13 | "size": "20x20",
14 | "idiom": "iphone",
15 | "filename": "AppIcon-20x20@3x.png",
16 | "scale": "3x"
17 | },
18 | {
19 | "size": "29x29",
20 | "idiom": "iphone",
21 | "filename": "AppIcon-29x29@2x-1.png",
22 | "scale": "2x"
23 | },
24 | {
25 | "size": "29x29",
26 | "idiom": "iphone",
27 | "filename": "AppIcon-29x29@3x.png",
28 | "scale": "3x"
29 | },
30 | {
31 | "size": "40x40",
32 | "idiom": "iphone",
33 | "filename": "AppIcon-40x40@2x.png",
34 | "scale": "2x"
35 | },
36 | {
37 | "size": "40x40",
38 | "idiom": "iphone",
39 | "filename": "AppIcon-40x40@3x.png",
40 | "scale": "3x"
41 | },
42 | {
43 | "size": "60x60",
44 | "idiom": "iphone",
45 | "filename": "AppIcon-60x60@2x.png",
46 | "scale": "2x"
47 | },
48 | {
49 | "size": "60x60",
50 | "idiom": "iphone",
51 | "filename": "AppIcon-60x60@3x.png",
52 | "scale": "3x"
53 | },
54 | {
55 | "size": "20x20",
56 | "idiom": "ipad",
57 | "filename": "AppIcon-20x20@1x.png",
58 | "scale": "1x"
59 | },
60 | {
61 | "size": "20x20",
62 | "idiom": "ipad",
63 | "filename": "AppIcon-20x20@2x-1.png",
64 | "scale": "2x"
65 | },
66 | {
67 | "size": "29x29",
68 | "idiom": "ipad",
69 | "filename": "AppIcon-29x29@1x.png",
70 | "scale": "1x"
71 | },
72 | {
73 | "size": "29x29",
74 | "idiom": "ipad",
75 | "filename": "AppIcon-29x29@2x.png",
76 | "scale": "2x"
77 | },
78 | {
79 | "size": "40x40",
80 | "idiom": "ipad",
81 | "filename": "AppIcon-40x40@1x.png",
82 | "scale": "1x"
83 | },
84 | {
85 | "size": "40x40",
86 | "idiom": "ipad",
87 | "filename": "AppIcon-40x40@2x-1.png",
88 | "scale": "2x"
89 | },
90 | {
91 | "size": "76x76",
92 | "idiom": "ipad",
93 | "filename": "AppIcon-76x76@1x.png",
94 | "scale": "1x"
95 | },
96 | {
97 | "size": "76x76",
98 | "idiom": "ipad",
99 | "filename": "AppIcon-76x76@2x.png",
100 | "scale": "2x"
101 | },
102 | {
103 | "size": "83.5x83.5",
104 | "idiom": "ipad",
105 | "filename": "AppIcon-83.5x83.5@2x.png",
106 | "scale": "2x"
107 | },
108 | {
109 | "size": "1024x1024",
110 | "idiom": "ios-marketing",
111 | "filename": "AppIcon-512@2x.png",
112 | "scale": "1x"
113 | }
114 | ],
115 | "info": {
116 | "version": 1,
117 | "author": "xcode"
118 | }
119 | }
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 | {
5 | "info": {
6 | "version": 1,
7 | "author": "xcode"
8 | }
9 | }
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/ExportOptions.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | method
6 | development
7 |
8 |
9 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Podfile:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024 star
2 | #
3 | # This Source Code Form is subject to the terms of the Mozilla Public
4 | # License, v. 2.0. If a copy of the MPL was not distributed with this
5 | # file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 |
7 | # Uncomment the next line to define a global platform for your project
8 |
9 | target 'polyphony-tauri_iOS' do
10 | platform :ios, '13.0'
11 | # Pods for polyphony-tauri_iOS
12 | end
13 |
14 | target 'polyphony-tauri_macOS' do
15 | platform :osx, '11.0'
16 | # Pods for polyphony-tauri_macOS
17 | end
18 |
19 | # Delete the deployment target for iOS and macOS, causing it to be inherited from the Podfile
20 | post_install do |installer|
21 | installer.pods_project.targets.each do |target|
22 | target.build_configurations.each do |config|
23 | config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
24 | config.build_settings.delete 'MACOSX_DEPLOYMENT_TARGET'
25 | end
26 | end
27 | end
28 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Sources/polyphony-tauri/bindings/bindings.h:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | #pragma once
6 |
7 | namespace ffi {
8 | extern "C" {
9 | void start_app();
10 | }
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/Sources/polyphony-tauri/main.mm:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | #include "bindings/bindings.h"
6 |
7 | int main(int argc, char * argv[]) {
8 | ffi::start_app();
9 | return 0;
10 | }
11 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/polyphony-tauri.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | // !$*UTF8*$!
6 | {
7 | archiveVersion = 1;
8 | classes = {
9 | };
10 | objectVersion = 54;
11 | objects = {
12 |
13 | /* Begin PBXBuildFile section */
14 | 21D16104D6F04C6D051C1857 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2C9BE0B0B268B9BE2A6A9E20 /* CoreGraphics.framework */; };
15 | 2C5084A2A5AC8F33750F835D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C4369F52C0BDE24757C103B8 /* QuartzCore.framework */; };
16 | 75DFBA2E71FD46BD7C83D879 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A5DD3177D1B0B388FF0305A /* Security.framework */; };
17 | 7B269E8DF40B31800CC886F6 /* libpolyphony_tauri_lib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B541B2C5050310FD4F39F51 /* libpolyphony_tauri_lib.a */; };
18 | AEE601349F54F2DA838563B8 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = E2CA3670E4001E883A7509DD /* assets */; };
19 | AFA5993184B2AAEBB0A4A3B3 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9542D2AF4ED32B33797EDCE1 /* Metal.framework */; };
20 | B94ACEBB3FD5C7475145CE20 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3358C57FA3DA54EFB904904B /* UIKit.framework */; };
21 | BABBA116D7E3167A169E9D08 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E982E2C68B0258E1D847B38 /* MetalKit.framework */; };
22 | C3EBB3E68D702B34A1379392 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2F7EE6587164C2FD51586E25 /* main.mm */; };
23 | CF30AF24CD6742B12195D3F4 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BD43F38F4ED72A587D00DFDB /* WebKit.framework */; };
24 | D1482FE6062778AB760846B8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 22C419E5D540C9BDD0EA5C2B /* Assets.xcassets */; };
25 | /* End PBXBuildFile section */
26 |
27 | /* Begin PBXFileReference section */
28 | 0CFEF2F4908B7ED6E4A22076 /* polyphony-tauri_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "polyphony-tauri_iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
29 | 1396D01B5853ED24FF94AA52 /* polyphony-tauri_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "polyphony-tauri_iOS.entitlements"; sourceTree = ""; };
30 | 22C419E5D540C9BDD0EA5C2B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
31 | 2C9BE0B0B268B9BE2A6A9E20 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
32 | 2F7EE6587164C2FD51586E25 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = ""; };
33 | 3358C57FA3DA54EFB904904B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
34 | 4A5DD3177D1B0B388FF0305A /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
35 | 7E982E2C68B0258E1D847B38 /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; };
36 | 8B541B2C5050310FD4F39F51 /* libpolyphony_tauri_lib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libpolyphony_tauri_lib.a; sourceTree = ""; };
37 | 9542D2AF4ED32B33797EDCE1 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
38 | AE6C485DBE2D341038B4152A /* lib.rs */ = {isa = PBXFileReference; path = lib.rs; sourceTree = ""; };
39 | BD43F38F4ED72A587D00DFDB /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
40 | BF8C9E578C118ED9A17E4E83 /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = ""; };
41 | C4369F52C0BDE24757C103B8 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
42 | D0F85F545BE1F617428212D7 /* main.rs */ = {isa = PBXFileReference; path = main.rs; sourceTree = ""; };
43 | E2CA3670E4001E883A7509DD /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = SOURCE_ROOT; };
44 | FC52D370EC314B1124960F08 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; };
45 | /* End PBXFileReference section */
46 |
47 | /* Begin PBXFrameworksBuildPhase section */
48 | D56A1E66672BC1022A905E98 /* Frameworks */ = {
49 | isa = PBXFrameworksBuildPhase;
50 | buildActionMask = 2147483647;
51 | files = (
52 | 7B269E8DF40B31800CC886F6 /* libpolyphony_tauri_lib.a in Frameworks */,
53 | 21D16104D6F04C6D051C1857 /* CoreGraphics.framework in Frameworks */,
54 | AFA5993184B2AAEBB0A4A3B3 /* Metal.framework in Frameworks */,
55 | BABBA116D7E3167A169E9D08 /* MetalKit.framework in Frameworks */,
56 | 2C5084A2A5AC8F33750F835D /* QuartzCore.framework in Frameworks */,
57 | 75DFBA2E71FD46BD7C83D879 /* Security.framework in Frameworks */,
58 | B94ACEBB3FD5C7475145CE20 /* UIKit.framework in Frameworks */,
59 | CF30AF24CD6742B12195D3F4 /* WebKit.framework in Frameworks */,
60 | );
61 | runOnlyForDeploymentPostprocessing = 0;
62 | };
63 | /* End PBXFrameworksBuildPhase section */
64 |
65 | /* Begin PBXGroup section */
66 | 04E716E9DFBBE3D3DAE7DBF1 /* polyphony-tauri */ = {
67 | isa = PBXGroup;
68 | children = (
69 | 2F7EE6587164C2FD51586E25 /* main.mm */,
70 | 4FE6B6927789622EDBF96426 /* bindings */,
71 | );
72 | path = "polyphony-tauri";
73 | sourceTree = "";
74 | };
75 | 18C4BA8E4027A3B1748AC0CF /* src */ = {
76 | isa = PBXGroup;
77 | children = (
78 | AE6C485DBE2D341038B4152A /* lib.rs */,
79 | D0F85F545BE1F617428212D7 /* main.rs */,
80 | );
81 | name = src;
82 | path = ../../src;
83 | sourceTree = "";
84 | };
85 | 207DCDC5AF1812E966FADD8A /* Sources */ = {
86 | isa = PBXGroup;
87 | children = (
88 | 04E716E9DFBBE3D3DAE7DBF1 /* polyphony-tauri */,
89 | );
90 | path = Sources;
91 | sourceTree = "";
92 | };
93 | 2999654CAD7062815CE599EE = {
94 | isa = PBXGroup;
95 | children = (
96 | E2CA3670E4001E883A7509DD /* assets */,
97 | 22C419E5D540C9BDD0EA5C2B /* Assets.xcassets */,
98 | ADBAF6D4D433542260DDC2CA /* Externals */,
99 | CD28E44D8C3F1BE171ABDA94 /* polyphony-tauri_iOS */,
100 | 207DCDC5AF1812E966FADD8A /* Sources */,
101 | 18C4BA8E4027A3B1748AC0CF /* src */,
102 | 71D295E56F7C4293154F9AC9 /* Frameworks */,
103 | 50FF3F27FC39A179E82AFB57 /* Products */,
104 | );
105 | sourceTree = "";
106 | };
107 | 4FE6B6927789622EDBF96426 /* bindings */ = {
108 | isa = PBXGroup;
109 | children = (
110 | BF8C9E578C118ED9A17E4E83 /* bindings.h */,
111 | );
112 | path = bindings;
113 | sourceTree = "";
114 | };
115 | 50FF3F27FC39A179E82AFB57 /* Products */ = {
116 | isa = PBXGroup;
117 | children = (
118 | 0CFEF2F4908B7ED6E4A22076 /* polyphony-tauri_iOS.app */,
119 | );
120 | name = Products;
121 | sourceTree = "";
122 | };
123 | 71D295E56F7C4293154F9AC9 /* Frameworks */ = {
124 | isa = PBXGroup;
125 | children = (
126 | 2C9BE0B0B268B9BE2A6A9E20 /* CoreGraphics.framework */,
127 | 8B541B2C5050310FD4F39F51 /* libpolyphony_tauri_lib.a */,
128 | 9542D2AF4ED32B33797EDCE1 /* Metal.framework */,
129 | 7E982E2C68B0258E1D847B38 /* MetalKit.framework */,
130 | C4369F52C0BDE24757C103B8 /* QuartzCore.framework */,
131 | 4A5DD3177D1B0B388FF0305A /* Security.framework */,
132 | 3358C57FA3DA54EFB904904B /* UIKit.framework */,
133 | BD43F38F4ED72A587D00DFDB /* WebKit.framework */,
134 | );
135 | name = Frameworks;
136 | sourceTree = "";
137 | };
138 | ADBAF6D4D433542260DDC2CA /* Externals */ = {
139 | isa = PBXGroup;
140 | children = (
141 | );
142 | path = Externals;
143 | sourceTree = "";
144 | };
145 | CD28E44D8C3F1BE171ABDA94 /* polyphony-tauri_iOS */ = {
146 | isa = PBXGroup;
147 | children = (
148 | FC52D370EC314B1124960F08 /* Info.plist */,
149 | 1396D01B5853ED24FF94AA52 /* polyphony-tauri_iOS.entitlements */,
150 | );
151 | path = "polyphony-tauri_iOS";
152 | sourceTree = "";
153 | };
154 | /* End PBXGroup section */
155 |
156 | /* Begin PBXNativeTarget section */
157 | CBE79636079E7D68F4394025 /* polyphony-tauri_iOS */ = {
158 | isa = PBXNativeTarget;
159 | buildConfigurationList = 247124163CAC4E0DB9D57F6F /* Build configuration list for PBXNativeTarget "polyphony-tauri_iOS" */;
160 | buildPhases = (
161 | 4F39A20B02D2E793C261B672 /* Build Rust Code */,
162 | CC50462CD40007CF7B25021A /* Sources */,
163 | 48C20195E1DCDB0AD782BE8F /* Resources */,
164 | D56A1E66672BC1022A905E98 /* Frameworks */,
165 | );
166 | buildRules = (
167 | );
168 | dependencies = (
169 | );
170 | name = "polyphony-tauri_iOS";
171 | productName = "polyphony-tauri_iOS";
172 | productReference = 0CFEF2F4908B7ED6E4A22076 /* polyphony-tauri_iOS.app */;
173 | productType = "com.apple.product-type.application";
174 | };
175 | /* End PBXNativeTarget section */
176 |
177 | /* Begin PBXProject section */
178 | 337AD53871ED95199B8DFEA1 /* Project object */ = {
179 | isa = PBXProject;
180 | attributes = {
181 | BuildIndependentTargetsInParallel = YES;
182 | LastUpgradeCheck = 1430;
183 | TargetAttributes = {
184 | CBE79636079E7D68F4394025 = {
185 | DevelopmentTeam = X633GS7245;
186 | };
187 | };
188 | };
189 | buildConfigurationList = F42C37F34B833804E31BF1A6 /* Build configuration list for PBXProject "polyphony-tauri" */;
190 | compatibilityVersion = "Xcode 14.0";
191 | developmentRegion = en;
192 | hasScannedForEncodings = 0;
193 | knownRegions = (
194 | Base,
195 | en,
196 | );
197 | mainGroup = 2999654CAD7062815CE599EE;
198 | projectDirPath = "";
199 | projectRoot = "";
200 | targets = (
201 | CBE79636079E7D68F4394025 /* polyphony-tauri_iOS */,
202 | );
203 | };
204 | /* End PBXProject section */
205 |
206 | /* Begin PBXResourcesBuildPhase section */
207 | 48C20195E1DCDB0AD782BE8F /* Resources */ = {
208 | isa = PBXResourcesBuildPhase;
209 | buildActionMask = 2147483647;
210 | files = (
211 | D1482FE6062778AB760846B8 /* Assets.xcassets in Resources */,
212 | AEE601349F54F2DA838563B8 /* assets in Resources */,
213 | );
214 | runOnlyForDeploymentPostprocessing = 0;
215 | };
216 | /* End PBXResourcesBuildPhase section */
217 |
218 | /* Begin PBXShellScriptBuildPhase section */
219 | 4F39A20B02D2E793C261B672 /* Build Rust Code */ = {
220 | isa = PBXShellScriptBuildPhase;
221 | alwaysOutOfDate = 1;
222 | buildActionMask = 2147483647;
223 | files = (
224 | );
225 | inputFileListPaths = (
226 | );
227 | inputPaths = (
228 | );
229 | name = "Build Rust Code";
230 | outputFileListPaths = (
231 | );
232 | outputPaths = (
233 | "$(SRCROOT)/target/aarch64-apple-ios/${CONFIGURATION}/deps/libpolyphony_tauri_lib.a",
234 | "$(SRCROOT)/target/x86_64-apple-ios/${CONFIGURATION}/deps/libpolyphony_tauri_lib.a",
235 | );
236 | runOnlyForDeploymentPostprocessing = 0;
237 | shellPath = /bin/sh;
238 | shellScript = "../../../../../../../.cargo/bin/cargo-tauri tauri ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths \"${FRAMEWORK_SEARCH_PATHS:?}\" --header-search-paths \"${HEADER_SEARCH_PATHS:?}\" --gcc-preprocessor-definitions \"${GCC_PREPROCESSOR_DEFINITIONS:-}\" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}";
239 | };
240 | /* End PBXShellScriptBuildPhase section */
241 |
242 | /* Begin PBXSourcesBuildPhase section */
243 | CC50462CD40007CF7B25021A /* Sources */ = {
244 | isa = PBXSourcesBuildPhase;
245 | buildActionMask = 2147483647;
246 | files = (
247 | C3EBB3E68D702B34A1379392 /* main.mm in Sources */,
248 | );
249 | runOnlyForDeploymentPostprocessing = 0;
250 | };
251 | /* End PBXSourcesBuildPhase section */
252 |
253 | /* Begin XCBuildConfiguration section */
254 | 320C09EFBEAC4B01104E99E1 /* release */ = {
255 | isa = XCBuildConfiguration;
256 | buildSettings = {
257 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
258 | ARCHS = (
259 | arm64,
260 | "arm64-sim",
261 | );
262 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
263 | CODE_SIGN_ENTITLEMENTS = "polyphony-tauri_iOS/polyphony-tauri_iOS.entitlements";
264 | CODE_SIGN_IDENTITY = "iPhone Developer";
265 | DEVELOPMENT_TEAM = X633GS7245;
266 | ENABLE_BITCODE = NO;
267 | "EXCLUDED_ARCHS[sdk=iphoneos*]" = "arm64-sim x86_64";
268 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
269 | FRAMEWORK_SEARCH_PATHS = (
270 | "$(inherited)",
271 | "\".\"",
272 | );
273 | INFOPLIST_FILE = "polyphony-tauri_iOS/Info.plist";
274 | LD_RUNPATH_SEARCH_PATHS = (
275 | "$(inherited)",
276 | "@executable_path/Frameworks",
277 | );
278 | "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)";
279 | "LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)";
280 | "LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)";
281 | PRODUCT_BUNDLE_IDENTIFIER = "chat.polyphony.polyphony-tauri";
282 | PRODUCT_NAME = "polyphony-tauri";
283 | SDKROOT = iphoneos;
284 | TARGETED_DEVICE_FAMILY = "1,2";
285 | VALID_ARCHS = "arm64 arm64-sim";
286 | };
287 | name = release;
288 | };
289 | 3400622DAE66BAA1CE18B0BD /* debug */ = {
290 | isa = XCBuildConfiguration;
291 | buildSettings = {
292 | ALWAYS_SEARCH_USER_PATHS = NO;
293 | CLANG_ANALYZER_NONNULL = YES;
294 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
295 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
296 | CLANG_CXX_LIBRARY = "libc++";
297 | CLANG_ENABLE_MODULES = YES;
298 | CLANG_ENABLE_OBJC_ARC = YES;
299 | CLANG_ENABLE_OBJC_WEAK = YES;
300 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
301 | CLANG_WARN_BOOL_CONVERSION = YES;
302 | CLANG_WARN_COMMA = YES;
303 | CLANG_WARN_CONSTANT_CONVERSION = YES;
304 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
305 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
306 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
307 | CLANG_WARN_EMPTY_BODY = YES;
308 | CLANG_WARN_ENUM_CONVERSION = YES;
309 | CLANG_WARN_INFINITE_RECURSION = YES;
310 | CLANG_WARN_INT_CONVERSION = YES;
311 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
312 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
313 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
314 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
315 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
316 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
317 | CLANG_WARN_STRICT_PROTOTYPES = YES;
318 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
319 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
320 | CLANG_WARN_UNREACHABLE_CODE = YES;
321 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
322 | COPY_PHASE_STRIP = NO;
323 | DEBUG_INFORMATION_FORMAT = dwarf;
324 | ENABLE_STRICT_OBJC_MSGSEND = YES;
325 | ENABLE_TESTABILITY = YES;
326 | GCC_C_LANGUAGE_STANDARD = gnu11;
327 | GCC_DYNAMIC_NO_PIC = NO;
328 | GCC_NO_COMMON_BLOCKS = YES;
329 | GCC_OPTIMIZATION_LEVEL = 0;
330 | GCC_PREPROCESSOR_DEFINITIONS = (
331 | "$(inherited)",
332 | "DEBUG=1",
333 | );
334 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
335 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
336 | GCC_WARN_UNDECLARED_SELECTOR = YES;
337 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
338 | GCC_WARN_UNUSED_FUNCTION = YES;
339 | GCC_WARN_UNUSED_VARIABLE = YES;
340 | IPHONEOS_DEPLOYMENT_TARGET = 13.0;
341 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
342 | MTL_FAST_MATH = YES;
343 | ONLY_ACTIVE_ARCH = YES;
344 | PRODUCT_NAME = "$(TARGET_NAME)";
345 | SDKROOT = iphoneos;
346 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
347 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
348 | SWIFT_VERSION = 5.0;
349 | };
350 | name = debug;
351 | };
352 | 80F1AAC91DFA8AA386BE7589 /* debug */ = {
353 | isa = XCBuildConfiguration;
354 | buildSettings = {
355 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
356 | ARCHS = (
357 | arm64,
358 | "arm64-sim",
359 | );
360 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
361 | CODE_SIGN_ENTITLEMENTS = "polyphony-tauri_iOS/polyphony-tauri_iOS.entitlements";
362 | CODE_SIGN_IDENTITY = "iPhone Developer";
363 | DEVELOPMENT_TEAM = X633GS7245;
364 | ENABLE_BITCODE = NO;
365 | "EXCLUDED_ARCHS[sdk=iphoneos*]" = "arm64-sim x86_64";
366 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
367 | FRAMEWORK_SEARCH_PATHS = (
368 | "$(inherited)",
369 | "\".\"",
370 | );
371 | INFOPLIST_FILE = "polyphony-tauri_iOS/Info.plist";
372 | LD_RUNPATH_SEARCH_PATHS = (
373 | "$(inherited)",
374 | "@executable_path/Frameworks",
375 | );
376 | "LIBRARY_SEARCH_PATHS[arch=arm64-sim]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)";
377 | "LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)";
378 | "LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)";
379 | PRODUCT_BUNDLE_IDENTIFIER = "chat.polyphony.polyphony-tauri";
380 | PRODUCT_NAME = "polyphony-tauri";
381 | SDKROOT = iphoneos;
382 | TARGETED_DEVICE_FAMILY = "1,2";
383 | VALID_ARCHS = "arm64 arm64-sim";
384 | };
385 | name = debug;
386 | };
387 | D84D57F4A978F383CA0889E6 /* release */ = {
388 | isa = XCBuildConfiguration;
389 | buildSettings = {
390 | ALWAYS_SEARCH_USER_PATHS = NO;
391 | CLANG_ANALYZER_NONNULL = YES;
392 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
393 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
394 | CLANG_CXX_LIBRARY = "libc++";
395 | CLANG_ENABLE_MODULES = YES;
396 | CLANG_ENABLE_OBJC_ARC = YES;
397 | CLANG_ENABLE_OBJC_WEAK = YES;
398 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
399 | CLANG_WARN_BOOL_CONVERSION = YES;
400 | CLANG_WARN_COMMA = YES;
401 | CLANG_WARN_CONSTANT_CONVERSION = YES;
402 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
403 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
404 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
405 | CLANG_WARN_EMPTY_BODY = YES;
406 | CLANG_WARN_ENUM_CONVERSION = YES;
407 | CLANG_WARN_INFINITE_RECURSION = YES;
408 | CLANG_WARN_INT_CONVERSION = YES;
409 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
410 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
411 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
412 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
413 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
414 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
415 | CLANG_WARN_STRICT_PROTOTYPES = YES;
416 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
417 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
418 | CLANG_WARN_UNREACHABLE_CODE = YES;
419 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
420 | COPY_PHASE_STRIP = NO;
421 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
422 | ENABLE_NS_ASSERTIONS = NO;
423 | ENABLE_STRICT_OBJC_MSGSEND = YES;
424 | GCC_C_LANGUAGE_STANDARD = gnu11;
425 | GCC_NO_COMMON_BLOCKS = YES;
426 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
427 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
428 | GCC_WARN_UNDECLARED_SELECTOR = YES;
429 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
430 | GCC_WARN_UNUSED_FUNCTION = YES;
431 | GCC_WARN_UNUSED_VARIABLE = YES;
432 | IPHONEOS_DEPLOYMENT_TARGET = 13.0;
433 | MTL_ENABLE_DEBUG_INFO = NO;
434 | MTL_FAST_MATH = YES;
435 | PRODUCT_NAME = "$(TARGET_NAME)";
436 | SDKROOT = iphoneos;
437 | SWIFT_COMPILATION_MODE = wholemodule;
438 | SWIFT_OPTIMIZATION_LEVEL = "-O";
439 | SWIFT_VERSION = 5.0;
440 | };
441 | name = release;
442 | };
443 | /* End XCBuildConfiguration section */
444 |
445 | /* Begin XCConfigurationList section */
446 | 247124163CAC4E0DB9D57F6F /* Build configuration list for PBXNativeTarget "polyphony-tauri_iOS" */ = {
447 | isa = XCConfigurationList;
448 | buildConfigurations = (
449 | 80F1AAC91DFA8AA386BE7589 /* debug */,
450 | 320C09EFBEAC4B01104E99E1 /* release */,
451 | );
452 | defaultConfigurationIsVisible = 0;
453 | defaultConfigurationName = debug;
454 | };
455 | F42C37F34B833804E31BF1A6 /* Build configuration list for PBXProject "polyphony-tauri" */ = {
456 | isa = XCConfigurationList;
457 | buildConfigurations = (
458 | 3400622DAE66BAA1CE18B0BD /* debug */,
459 | D84D57F4A978F383CA0889E6 /* release */,
460 | );
461 | defaultConfigurationIsVisible = 0;
462 | defaultConfigurationName = debug;
463 | };
464 | /* End XCConfigurationList section */
465 | };
466 | rootObject = 337AD53871ED95199B8DFEA1 /* Project object */;
467 | }
468 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/polyphony-tauri.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
12 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/polyphony-tauri.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 | IDEDidComputeMac32BitWarning
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/polyphony-tauri.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 | BuildSystemType
14 | Original
15 | DisableBuildSystemDeprecationDiagnostic
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/polyphony-tauri.xcodeproj/xcshareddata/xcschemes/polyphony-tauri_iOS.xcscheme:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
13 |
16 |
17 |
23 |
29 |
30 |
31 |
32 |
33 |
38 |
39 |
45 |
46 |
47 |
48 |
52 |
53 |
57 |
58 |
59 |
60 |
61 |
62 |
72 |
74 |
80 |
81 |
82 |
83 |
87 |
88 |
92 |
93 |
94 |
95 |
101 |
103 |
109 |
110 |
111 |
112 |
116 |
117 |
121 |
122 |
123 |
124 |
126 |
127 |
130 |
131 |
132 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/polyphony-tauri_iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 | CFBundleDevelopmentRegion
14 | $(DEVELOPMENT_LANGUAGE)
15 | CFBundleExecutable
16 | $(EXECUTABLE_NAME)
17 | CFBundleIdentifier
18 | $(PRODUCT_BUNDLE_IDENTIFIER)
19 | CFBundleInfoDictionaryVersion
20 | 6.0
21 | CFBundleName
22 | $(PRODUCT_NAME)
23 | CFBundlePackageType
24 | APPL
25 | CFBundleShortVersionString
26 | 0.1.0
27 | CFBundleVersion
28 | 0.1.0
29 | LSRequiresIPhoneOS
30 |
31 | UILaunchStoryboardName
32 | LaunchScreen
33 | UIRequiredDeviceCapabilities
34 |
35 | arm64
36 | metal
37 |
38 | UISupportedInterfaceOrientations
39 |
40 | UIInterfaceOrientationPortrait
41 | UIInterfaceOrientationLandscapeLeft
42 | UIInterfaceOrientationLandscapeRight
43 |
44 | UISupportedInterfaceOrientations~ipad
45 |
46 | UIInterfaceOrientationPortrait
47 | UIInterfaceOrientationPortraitUpsideDown
48 | UIInterfaceOrientationLandscapeLeft
49 | UIInterfaceOrientationLandscapeRight
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/polyphony-tauri_iOS/polyphony-tauri_iOS.entitlements:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/gen/apple/project.yml:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024 star
2 | #
3 | # This Source Code Form is subject to the terms of the Mozilla Public
4 | # License, v. 2.0. If a copy of the MPL was not distributed with this
5 | # file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 |
7 | name: polyphony-tauri
8 | options:
9 | bundleIdPrefix: chat.polyphony
10 | deploymentTarget:
11 | iOS: 13.0
12 | fileGroups: [../../src]
13 | configs:
14 | debug: debug
15 | release: release
16 | settingGroups:
17 | app:
18 | base:
19 | PRODUCT_NAME: polyphony-tauri
20 | PRODUCT_BUNDLE_IDENTIFIER: chat.polyphony.polyphony-tauri
21 | DEVELOPMENT_TEAM: X633GS7245
22 | targetTemplates:
23 | app:
24 | type: application
25 | sources:
26 | - path: Sources
27 | scheme:
28 | environmentVariables:
29 | RUST_BACKTRACE: full
30 | RUST_LOG: info
31 | settings:
32 | groups: [app]
33 | targets:
34 | polyphony-tauri_iOS:
35 | type: application
36 | platform: iOS
37 | sources:
38 | - path: Sources
39 | - path: Assets.xcassets
40 | - path: Externals
41 | - path: polyphony-tauri_iOS
42 | - path: assets
43 | buildPhase: resources
44 | type: folder
45 | info:
46 | path: polyphony-tauri_iOS/Info.plist
47 | properties:
48 | LSRequiresIPhoneOS: true
49 | UILaunchStoryboardName: LaunchScreen
50 | UIRequiredDeviceCapabilities: [arm64, metal]
51 | UISupportedInterfaceOrientations:
52 | - UIInterfaceOrientationPortrait
53 | - UIInterfaceOrientationLandscapeLeft
54 | - UIInterfaceOrientationLandscapeRight
55 | UISupportedInterfaceOrientations~ipad:
56 | - UIInterfaceOrientationPortrait
57 | - UIInterfaceOrientationPortraitUpsideDown
58 | - UIInterfaceOrientationLandscapeLeft
59 | - UIInterfaceOrientationLandscapeRight
60 | CFBundleShortVersionString: 0.1.0
61 | CFBundleVersion: 0.1.0
62 | entitlements:
63 | path: polyphony-tauri_iOS/polyphony-tauri_iOS.entitlements
64 | scheme:
65 | environmentVariables:
66 | RUST_BACKTRACE: full
67 | RUST_LOG: info
68 | settings:
69 | base:
70 | ENABLE_BITCODE: false
71 | ARCHS: [arm64, arm64-sim]
72 | VALID_ARCHS: arm64 arm64-sim
73 | LIBRARY_SEARCH_PATHS[arch=x86_64]: $(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
74 | LIBRARY_SEARCH_PATHS[arch=arm64]: $(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
75 | LIBRARY_SEARCH_PATHS[arch=arm64-sim]: $(inherited) $(PROJECT_DIR)/Externals/arm64-sim/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
76 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: true
77 | EXCLUDED_ARCHS[sdk=iphonesimulator*]: arm64
78 | EXCLUDED_ARCHS[sdk=iphoneos*]: arm64-sim x86_64
79 | groups: [app]
80 | dependencies:
81 | - framework: libpolyphony_tauri_lib.a
82 | embed: false
83 | - sdk: CoreGraphics.framework
84 | - sdk: Metal.framework
85 | - sdk: MetalKit.framework
86 | - sdk: QuartzCore.framework
87 | - sdk: Security.framework
88 | - sdk: UIKit.framework
89 | - sdk: WebKit.framework
90 | preBuildScripts:
91 | - script: ../../../../../../../.cargo/bin/cargo-tauri tauri ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths "${FRAMEWORK_SEARCH_PATHS:?}" --header-search-paths "${HEADER_SEARCH_PATHS:?}" --gcc-preprocessor-definitions "${GCC_PREPROCESSOR_DEFINITIONS:-}" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}
92 | name: Build Rust Code
93 | basedOnDependencyAnalysis: false
94 | outputFiles:
95 | - $(SRCROOT)/target/aarch64-apple-ios/${CONFIGURATION}/deps/libpolyphony_tauri_lib.a
96 | - $(SRCROOT)/target/x86_64-apple-ios/${CONFIGURATION}/deps/libpolyphony_tauri_lib.a
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/128x128.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/128x128@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/128x128@2x.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/32x32.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/Square107x107Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/Square107x107Logo.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/Square142x142Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/Square142x142Logo.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/Square150x150Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/Square150x150Logo.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/Square284x284Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/Square284x284Logo.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/Square30x30Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/Square30x30Logo.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/Square310x310Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/Square310x310Logo.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/Square44x44Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/Square44x44Logo.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/Square71x71Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/Square71x71Logo.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/Square89x89Logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/Square89x89Logo.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/StoreLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/StoreLogo.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/icon.icns
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/icon.ico
--------------------------------------------------------------------------------
/crates/polyphony-tauri/icons/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/polyphony-chat/client/ac6d92ca02d024cf39ec1afcebb1f02a78734d66/crates/polyphony-tauri/icons/icon.png
--------------------------------------------------------------------------------
/crates/polyphony-tauri/src/lib.rs:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
6 | #[tauri::command]
7 | fn greet(name: &str) -> String {
8 | format!("Hello, {}! You've been greeted from Rust!", name)
9 | }
10 |
11 | #[cfg_attr(mobile, tauri::mobile_entry_point)]
12 | pub fn run() {
13 | tauri::Builder::default()
14 | .plugin(tauri_plugin_shell::init())
15 | .invoke_handler(tauri::generate_handler![greet])
16 | .run(tauri::generate_context!())
17 | .expect("error while running tauri application");
18 | }
19 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/src/main.rs:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | // Prevents additional console window on Windows in release, DO NOT REMOVE!!
6 | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
7 |
8 | fn main() {
9 | polyphony_tauri_lib::run()
10 | }
11 |
--------------------------------------------------------------------------------
/crates/polyphony-tauri/tauri.conf.json:
--------------------------------------------------------------------------------
1 | {
2 | "build": {
3 | "beforeBuildCommand": "cd polyphony-wasm && trunk build",
4 | "beforeDevCommand": "cd polyphony-wasm && trunk serve",
5 | "devPath": "http://localhost:8080",
6 | "distDir": "../polyphony-wasm/dist",
7 | "withGlobalTauri": true
8 | },
9 | "package": {
10 | "productName": "polyphony-tauri",
11 | "version": "0.1.0"
12 | },
13 | "plugins": {
14 | "shell": {
15 | "open": true
16 | }
17 | },
18 | "tauri": {
19 | "bundle": {
20 | "active": true,
21 | "category": "DeveloperTool",
22 | "copyright": "",
23 | "deb": {
24 | "depends": []
25 | },
26 | "externalBin": [],
27 | "icon": [
28 | "icons/32x32.png",
29 | "icons/128x128.png",
30 | "icons/128x128@2x.png",
31 | "icons/icon.icns",
32 | "icons/icon.ico"
33 | ],
34 | "identifier": "chat.polyphony.web",
35 | "longDescription": "",
36 | "macOS": {
37 | "entitlements": null,
38 | "exceptionDomain": "",
39 | "frameworks": [],
40 | "providerShortName": null,
41 | "signingIdentity": null
42 | },
43 | "resources": [],
44 | "shortDescription": "",
45 | "targets": "all",
46 | "updater": {
47 | "active": false
48 | },
49 | "windows": {
50 | "certificateThumbprint": null,
51 | "digestAlgorithm": "sha256",
52 | "timestampUrl": ""
53 | }
54 | },
55 | "security": {
56 | "csp": null
57 | },
58 | "windows": [
59 | {
60 | "fullscreen": false,
61 | "height": 600,
62 | "resizable": true,
63 | "title": "Polyphony",
64 | "width": 800
65 | }
66 | ]
67 | }
68 | }
--------------------------------------------------------------------------------
/crates/polyphony-wasm/.gitignore:
--------------------------------------------------------------------------------
1 | # Generated by Cargo
2 | # will have compiled files and executables
3 | debug/
4 | target/
5 |
6 | # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
7 | # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
8 | Cargo.lock
9 |
10 | # These are backup files generated by rustfmt
11 | **/*.rs.bk
12 |
13 | # MSVC Windows builds of rustc generate these, which store debugging information
14 | *.pdb
15 |
16 |
17 | # Added by cargo
18 |
19 | /target
20 |
21 | # Do not include dist directory in git repo
22 | dist/
--------------------------------------------------------------------------------
/crates/polyphony-wasm/Cargo.toml:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | [package]
6 | name = "polyphony-wasm"
7 | version = "0.1.0"
8 | edition = "2021"
9 | license = "MPL-2.0"
10 |
11 | [dependencies]
12 | chorus = { version = "0.13.0", default-features = false, features = [
13 | "rt",
14 | "client",
15 | ], git = "https://github.com/polyphony-chat/chorus.git", branch = "dev" }
16 | hashbrown = { version = "0.14.3", features = ["serde"] }
17 | leptos = { version = "0.5.4", features = ["csr"] }
18 | serde = { version = "1.0.193", features = ["derive"] }
19 | tokio = { version = "1.34.0", features = ["rt", "macros"] }
20 | wasm-bindgen-futures = "0.4.39"
21 | web-sys = "0.3.65"
22 | wasm-logger = "0.2.0"
23 | log = "0.4.20"
24 | leptos_router = { version = "0.5.4", features = ["csr"] }
25 |
--------------------------------------------------------------------------------
/crates/polyphony-wasm/index.html:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Tauri + Yew App
18 |
19 |
20 |
35 |
36 |
37 |
38 |
39 | This page runs with WebAssembly and needs JavaScript to execute the
40 | WebAssembly. Please allow JavaScript for this page.
41 | If you are concerned about privacy, you can view the data we collect
42 | here: [placeholder]
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/crates/polyphony-wasm/public/main.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
--------------------------------------------------------------------------------
/crates/polyphony-wasm/src/app/login.rs:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | use leptos::*;
6 |
7 | #[component]
8 | pub fn Login() -> impl IntoView {
9 | todo!()
10 | }
11 |
--------------------------------------------------------------------------------
/crates/polyphony-wasm/src/app/mod.rs:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | pub mod login;
6 | pub mod register;
7 |
8 | pub use login::*;
9 | pub use register::*;
10 |
--------------------------------------------------------------------------------
/crates/polyphony-wasm/src/app/register.rs:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | use chorus::errors::ChorusResult;
6 | use chorus::instance::{ChorusUser, Instance};
7 | use chorus::types::RegisterSchema;
8 | use chorus::UrlBundle;
9 | use hashbrown::HashMap;
10 | use leptos::*;
11 | use log::*;
12 |
13 | use crate::GlobalIdentifier;
14 |
15 | #[component]
16 | pub fn Register() -> impl IntoView {
17 | let (mail, set_mail) = create_signal(String::new());
18 | let (pass, set_pass) = create_signal(String::new());
19 | let (url, set_url) = create_signal(String::new());
20 |
21 | let submit = create_action(|input: &(String, String, String)| {
22 | let input = input.to_owned();
23 | async move { register(&input).await }
24 | });
25 | debug!("Rendering Register component");
26 | // TODO: Set an error if registering fails
27 | view! {
28 |
47 | }
48 | }
49 |
50 | async fn register(input: &(String, String, String)) -> ChorusResult<()> {
51 | let register_schema = RegisterSchema {
52 | username: input.2.clone(),
53 | password: Some(input.1.clone()),
54 | consent: true,
55 | email: Some(input.2.clone()),
56 | date_of_birth: Some("2000-01-01".to_string()),
57 | ..Default::default()
58 | };
59 | let instance_store = use_context::>>().unwrap();
60 | let urls = UrlBundle::from_root_url(&input.0).await?;
61 | let mut instance = match instance_store.get_untracked().get(&urls) {
62 | Some(cached_instance) => {
63 | debug!("Got cached instance: {:#?}", cached_instance);
64 | cached_instance.clone()
65 | }
66 | None => {
67 | debug!("No cached instance found. Attempting lookup");
68 | debug!("Attempting to create instance from URLBundle {:#?}", &urls);
69 | let new_instance = Instance::new(urls.clone()).await.unwrap();
70 | debug!(
71 | "Got fresh instance: {:#?}; Inserting into cache",
72 | &new_instance
73 | );
74 | instance_store.update(|map| {
75 | map.insert(urls.clone(), new_instance.clone());
76 | });
77 | new_instance
78 | }
79 | };
80 | debug!(
81 | "Registering account on instance {}",
82 | instance.instance_info.instance_name
83 | );
84 | let account = instance.register_account(register_schema).await;
85 | instance_store.update(|map| {
86 | map.insert(urls.clone(), instance);
87 | });
88 | debug!("Got account with token {}", account.as_ref().unwrap().token);
89 | if let Ok(account) = account {
90 | let user_store = use_context::>>().unwrap();
91 | let current_user = use_context::>>().unwrap();
92 | let id = account.object.read().unwrap().id;
93 | user_store.update(|map| {
94 | map.insert((urls.clone(), id), account);
95 | });
96 | current_user.set(Some((urls.clone(), id)));
97 | Ok(())
98 | } else {
99 | Err(account.unwrap_err())
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/crates/polyphony-wasm/src/main.rs:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | mod app;
6 | mod stores;
7 |
8 | use chorus::types::Snowflake;
9 | use chorus::UrlBundle;
10 | use leptos::*;
11 | use leptos_router::*;
12 | use log::*;
13 |
14 | use crate::app::{Login, Register};
15 | use crate::stores::ChorusStore;
16 |
17 | #[component]
18 | fn App() -> impl IntoView {
19 | let chorus_store = ChorusStore::default();
20 | provide_context(chorus_store.instances);
21 | provide_context(chorus_store.users);
22 | provide_context(chorus_store.current_user);
23 | debug!("Rendering the App view");
24 | view! {
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 | }
35 | }
36 |
37 | fn main() {
38 | wasm_logger::init(wasm_logger::Config::default());
39 | debug!("wasm_logger initialized!");
40 | debug!("Starting App...");
41 | leptos::mount_to_body(|| view! { })
42 | }
43 |
44 | /// Tuple of a [`UrlBundle`] and a [`Snowflake`], where the [`Snowflake`] is the ID of the User and
45 | /// the [`UrlBundle`] are the URLs of the Instance.
46 | pub type GlobalIdentifier = (UrlBundle, Snowflake);
47 |
--------------------------------------------------------------------------------
/crates/polyphony-wasm/src/stores.rs:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | use chorus::instance::{ChorusUser, Instance};
6 | use chorus::UrlBundle;
7 | use hashbrown::HashMap;
8 | use leptos::RwSignal;
9 |
10 | use crate::GlobalIdentifier;
11 |
12 | #[derive(Clone, Debug, Default)]
13 | pub(crate) struct ChorusStore {
14 | pub(crate) instances: RwSignal>,
15 | pub(crate) users: RwSignal>,
16 | pub(crate) current_user: RwSignal>,
17 | }
18 |
--------------------------------------------------------------------------------
/crates/polyphony-wasm/tailwind.config.js:
--------------------------------------------------------------------------------
1 | // This Source Code Form is subject to the terms of the Mozilla Public
2 | // License, v. 2.0. If a copy of the MPL was not distributed with this
3 | // file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 |
5 | /** @type {import('tailwindcss').Config} */
6 | module.exports = {
7 | content: [
8 | "./src/**/*.{rs,html}",
9 | "./index.html"
10 | ],
11 | theme: {
12 | extend: {},
13 | },
14 | plugins: [],
15 | }
16 |
17 |
--------------------------------------------------------------------------------