├── .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 | The Polyphony logo. a purple, square background with rounded edges. on this background, there are four vertically stacked, white lines. The lines each resemble a sine curve, although they are all shaped a little differently. 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 | 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 |
33 | 34 |
37 | 38 |
41 | 42 |
45 | 46 |
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 | --------------------------------------------------------------------------------