Compare commits
No commits in common. 'master' and 'allelo' have entirely different histories.
@ -0,0 +1,2 @@ |
||||
[target.wasm32-unknown-unknown] |
||||
rustflags = ['--cfg', 'getrandom_backend="wasm_js"'] |
||||
@ -0,0 +1,25 @@ |
||||
# Logs |
||||
logs |
||||
*.log |
||||
npm-debug.log* |
||||
yarn-debug.log* |
||||
yarn-error.log* |
||||
pnpm-debug.log* |
||||
lerna-debug.log* |
||||
|
||||
node_modules |
||||
dist |
||||
dist-ssr |
||||
*.local |
||||
|
||||
# Editor directories and files |
||||
.vscode/* |
||||
!.vscode/extensions.json |
||||
.idea |
||||
.DS_Store |
||||
*.suo |
||||
*.ntvs* |
||||
*.njsproj |
||||
*.sln |
||||
*.sw? |
||||
coverage/ |
||||
@ -0,0 +1,3 @@ |
||||
{ |
||||
"recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] |
||||
} |
||||
@ -0,0 +1,9 @@ |
||||
# Allelo Personal Network Manager (PNM) Prototype |
||||
|
||||
``` |
||||
curl -fsSL https://bun.sh/install | bash |
||||
``` |
||||
|
||||
## Recommended IDE Setup |
||||
|
||||
- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer) |
||||
|
After Width: | Height: | Size: 641 KiB |
|
After Width: | Height: | Size: 111 KiB |
@ -0,0 +1,26 @@ |
||||
import js from '@eslint/js' |
||||
import globals from 'globals' |
||||
import reactHooks from 'eslint-plugin-react-hooks' |
||||
import reactRefresh from 'eslint-plugin-react-refresh' |
||||
import tseslint from 'typescript-eslint' |
||||
import { globalIgnores } from 'eslint/config' |
||||
|
||||
export default tseslint.config([ |
||||
globalIgnores(['dist']), |
||||
{ |
||||
files: ['**/*.{ts,tsx}'], |
||||
rules: { |
||||
"@typescript-eslint/no-explicit-any": "off" |
||||
}, |
||||
extends: [ |
||||
js.configs.recommended, |
||||
tseslint.configs.recommended, |
||||
reactHooks.configs['recommended-latest'], |
||||
reactRefresh.configs.vite, |
||||
], |
||||
languageOptions: { |
||||
ecmaVersion: 2020, |
||||
globals: globals.browser, |
||||
}, |
||||
}, |
||||
]) |
||||
@ -0,0 +1,60 @@ |
||||
export default { |
||||
preset: 'ts-jest/presets/default-esm', |
||||
extensionsToTreatAsEsm: ['.ts', '.tsx'], |
||||
transform: { |
||||
'^.+\\.(ts|tsx)$': ['ts-jest', { |
||||
useESM: true, |
||||
isolatedModules: true, |
||||
tsconfig: { |
||||
jsx: 'react-jsx', |
||||
esModuleInterop: true, |
||||
moduleResolution: 'nodenext', |
||||
baseUrl: '.', |
||||
noUnusedLocals: false, |
||||
noUnusedParameters: false, |
||||
paths: { |
||||
'@/*': ['src/*'], |
||||
'@/assets/*': ['src/assets/*'], |
||||
'@/components/*': ['src/components/*'], |
||||
'@/contexts/*': ['src/contexts/*'], |
||||
'@/hooks/*': ['src/hooks/*'], |
||||
'@/lib/*': ['src/lib/*'], |
||||
'@/pages/*': ['src/pages/*'], |
||||
'@/providers/*': ['src/providers/*'], |
||||
'@/services/*': ['src/services/*'], |
||||
'@/stores/*': ['src/stores/*'], |
||||
'@/types/*': ['src/types/*'], |
||||
'@/utils/*': ['src/utils/*'] |
||||
} |
||||
} |
||||
}], |
||||
}, |
||||
testEnvironment: 'jsdom', |
||||
moduleNameMapper: { |
||||
'^@/(.*)$': '<rootDir>/src/$1', |
||||
'^@/assets/(.*)$': '<rootDir>/src/assets/$1', |
||||
'^@/components/(.*)$': '<rootDir>/src/components/$1', |
||||
'^@/contexts/(.*)$': '<rootDir>/src/contexts/$1', |
||||
'^@/hooks/(.*)$': '<rootDir>/src/hooks/$1', |
||||
'^@/lib/(.*)$': '<rootDir>/src/lib/$1', |
||||
'^@/pages/(.*)$': '<rootDir>/src/pages/$1', |
||||
'^@/providers/(.*)$': '<rootDir>/src/providers/$1', |
||||
'^@/services/(.*)$': '<rootDir>/src/services/$1', |
||||
'^@/stores/(.*)$': '<rootDir>/src/stores/$1', |
||||
'^@/types/(.*)$': '<rootDir>/src/types/$1', |
||||
'^@/utils/(.*)$': '<rootDir>/src/utils/$1', |
||||
}, |
||||
setupFilesAfterEnv: ['<rootDir>/src/setupTests.ts'], |
||||
testMatch: [ |
||||
'<rootDir>/src/**/__tests__/**/*.(ts|tsx|js)', |
||||
'<rootDir>/src/**/*.(spec|test).(ts|tsx|js)', |
||||
], |
||||
collectCoverageFrom: [ |
||||
'src/**/*.(ts|tsx)', |
||||
'!src/**/*.d.ts', |
||||
'!src/main.tsx', |
||||
'!src/vite-env.d.ts', |
||||
], |
||||
coverageDirectory: 'coverage', |
||||
coverageReporters: ['text', 'lcov', 'html'], |
||||
}; |
||||
@ -0,0 +1,80 @@ |
||||
{ |
||||
"name": "allelo-pnm", |
||||
"private": true, |
||||
"version": "0.1.0", |
||||
"type": "module", |
||||
"scripts": { |
||||
"dev": "vite --host 0.0.0.0", |
||||
"build": "tsc -b && vite build", |
||||
"build-importer": "cd ../tauri-plugin-contacts-importer && bun run build", |
||||
"check": "tsc -p tsconfig.app.json --noEmit && eslint .", |
||||
"build:ldo": "ldo build --input src/.shapes --output src/.ldo && bun fix-ldo-types.js", |
||||
"lint": "eslint .", |
||||
"preview": "vite preview", |
||||
"tauri": "tauri", |
||||
"test": "jest", |
||||
"test:watch": "jest --watch", |
||||
"test:coverage": "jest --coverage", |
||||
"webdev": "cross-env NG_ENV_WEB=1 TAURI_DEBUG=1 NG_PUBLIC_DEV=1 vite", |
||||
"webbuild": "cross-env NG_ENV_WEB=1 NG_ENV_ONEFILE=1 vite build && node prepare-web-file.cjs", |
||||
"libwasm": "cd ../.. && cargo install cargo-run-script && cargo run-script libwasm" |
||||
}, |
||||
"dependencies": { |
||||
"@emotion/react": "^11.14.0", |
||||
"@emotion/styled": "^11.14.1", |
||||
"@ldo/connected-nextgraph": "1.0.0-alpha.15", |
||||
"@ldo/ldo": "1.0.0-alpha.14", |
||||
"@ldo/react": "1.0.0-alpha.15", |
||||
"@react-oauth/google": "^0.12.2", |
||||
"@mui/icons-material": "^7.2.0", |
||||
"@mui/material": "^7.2.0", |
||||
"@rdfjs/data-model": "^1.2.0", |
||||
"@rdfjs/types": "^1.0.1", |
||||
"qrcode.react": "^4.2.0", |
||||
"@tauri-apps/api": "^2.9.0", |
||||
"@tauri-apps/plugin-opener": "^2", |
||||
"@tauri-apps/plugin-log": "^2.7.0", |
||||
"dotenv": "^17.1.0", |
||||
"leaflet": "^1.9.4", |
||||
"libphonenumber-js": "^1.12.17", |
||||
"react": "^19.1.0", |
||||
"react-dom": "^19.1.0", |
||||
"react-hook-form": "^7.62.0", |
||||
"react-leaflet": "^5.0.0", |
||||
"react-router-dom": "^7.6.3", |
||||
"react-waypoint": "^10.3.0", |
||||
"zustand": "^5.0.6", |
||||
"async-proxy": "^0.4.1" |
||||
}, |
||||
"devDependencies": { |
||||
"@eslint/js": "^9.30.1", |
||||
"@ldo/cli": "1.0.0-alpha.15", |
||||
"@testing-library/jest-dom": "^6.4.2", |
||||
"@testing-library/react": "^14.2.1", |
||||
"@testing-library/user-event": "^14.5.2", |
||||
"@types/jest": "^29.5.12", |
||||
"@types/jsonld": "^1.5.15", |
||||
"@types/leaflet": "^1.9.20", |
||||
"@types/react": "^19.1.8", |
||||
"@types/react-dom": "^19.1.6", |
||||
"@types/react-router-dom": "^5.3.3", |
||||
"@types/shexj": "^2.1.7", |
||||
"@vitejs/plugin-react": "^4.6.0", |
||||
"eslint": "^9.30.1", |
||||
"eslint-plugin-react-hooks": "^5.2.0", |
||||
"eslint-plugin-react-refresh": "^0.4.20", |
||||
"globals": "^16.3.0", |
||||
"jest": "^29.7.0", |
||||
"jest-environment-jsdom": "^29.7.0", |
||||
"ts-jest": "^29.1.2", |
||||
"typescript": "~5.8.3", |
||||
"typescript-eslint": "^8.35.1", |
||||
"vite": "^7.0.4", |
||||
"@tauri-apps/cli": "^2.9.1", |
||||
"vite-plugin-singlefile": "^2.3.0", |
||||
"vite-plugin-top-level-await": "^1.6.0", |
||||
"vite-plugin-wasm": "^3.5.0", |
||||
"node-gzip": "^1.1.2", |
||||
"cross-env": "^10.1.0" |
||||
} |
||||
} |
||||
@ -0,0 +1,32 @@ |
||||
const crypto = require('crypto'); |
||||
const fs = require('fs'); |
||||
const {gzip, } = require('node-gzip'); |
||||
|
||||
var algorithm = 'sha256' |
||||
, shasum = crypto.createHash(algorithm) |
||||
|
||||
const sha_file = './dist-web/index.sha256'; |
||||
const gzip_file = './dist-web/index.gzip'; |
||||
var filename = './dist-web/index.html' |
||||
, s = fs.ReadStream(filename) |
||||
|
||||
var bufs = []; |
||||
s.on('data', function(data) { |
||||
shasum.update(data) |
||||
bufs.push(data); |
||||
}) |
||||
|
||||
s.on('end', function() { |
||||
var hash = shasum.digest('hex') |
||||
console.log(hash + ' ' + filename) |
||||
|
||||
fs.writeFileSync(sha_file, hash, 'utf8'); |
||||
|
||||
var buf = Buffer.concat(bufs); |
||||
gzip(buf).then((compressed) => {fs.writeFileSync(gzip_file, compressed);}); |
||||
|
||||
fs.rm(filename,()=>{}); |
||||
|
||||
}) |
||||
|
||||
|
||||
@ -0,0 +1,7 @@ |
||||
# Generated by Cargo |
||||
# will have compiled files and executables |
||||
/target/ |
||||
|
||||
# Generated by Tauri |
||||
# will have schema files for capabilities auto-completion |
||||
/gen/schemas |
||||
@ -0,0 +1,39 @@ |
||||
[package] |
||||
name = "AlleloPNM" |
||||
version = "0.1.0" |
||||
description = "Allelo PNM App" |
||||
authors = ["Niko Bonnieure"] |
||||
edition = "2021" |
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html |
||||
|
||||
[lib] |
||||
# The `_lib` suffix may seem redundant but it is necessary |
||||
# to make the lib name unique and wouldn't conflict with the bin name. |
||||
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519 |
||||
name = "allelo_lib" |
||||
crate-type = ["staticlib", "cdylib", "rlib"] |
||||
|
||||
[build-dependencies] |
||||
tauri-build = { version = "2.5.0", features = [] } |
||||
|
||||
[dependencies] |
||||
tauri = { version = "2.9.0", features = [] } |
||||
tauri-plugin-log = "2" |
||||
log = "0.4" |
||||
tauri-plugin-opener = "2" |
||||
serde = { version = "1", features = ["derive"] } |
||||
serde_json = "1" |
||||
tauri-plugin-contacts-importer = { path = "../../tauri-plugin-contacts-importer/" } |
||||
serde_bare = "0.5.0" |
||||
serde_bytes = "0.11.7" |
||||
tauri-plugin-barcode-scanner = "2" |
||||
ng-repo = { path = "../../../engine/repo" } |
||||
ng-net = { path = "../../../engine/net" } |
||||
ng-wallet = { path = "../../../engine/wallet" } |
||||
nextgraph = { path = "../../../sdk/rust" } |
||||
oxrdf = { git = "https://git.nextgraph.org/NextGraph/oxigraph.git", branch="main", features = ["rdf-star", "oxsdatatypes"] } |
||||
async-std = { version = "1.12.0", features = ["attributes", "unstable"] } |
||||
sys-locale = { version = "0.3.1" } |
||||
zeroize = { version = "1.7.0", features = ["zeroize_derive"] } |
||||
ng-async-tungstenite = { git = "https://git.nextgraph.org/NextGraph/async-tungstenite.git", branch = "nextgraph", features = ["async-std-runtime", "async-native-tls"] } |
||||
@ -0,0 +1,14 @@ |
||||
{ |
||||
"$schema": "../gen/schemas/desktop-schema.json", |
||||
"identifier": "default", |
||||
"description": "Capability for the main window", |
||||
"windows": ["main"], |
||||
"permissions": [ |
||||
"core:default", |
||||
"contacts-importer:allow-import-contacts", |
||||
"contacts-importer:allow-check-permissions", |
||||
"contacts-importer:allow-request-permissions", |
||||
"log:default", |
||||
"opener:default" |
||||
] |
||||
} |
||||
@ -0,0 +1,6 @@ |
||||
/src/main/java/eco/allelo/pnm/prototype/generated |
||||
/src/main/jniLibs/**/*.so |
||||
/src/main/assets/tauri.conf.json |
||||
/tauri.build.gradle.kts |
||||
/proguard-tauri.pro |
||||
/tauri.properties |
||||
@ -0,0 +1,70 @@ |
||||
import java.util.Properties |
||||
|
||||
plugins { |
||||
id("com.android.application") |
||||
id("org.jetbrains.kotlin.android") |
||||
id("rust") |
||||
} |
||||
|
||||
val tauriProperties = Properties().apply { |
||||
val propFile = file("tauri.properties") |
||||
if (propFile.exists()) { |
||||
propFile.inputStream().use { load(it) } |
||||
} |
||||
} |
||||
|
||||
android { |
||||
compileSdk = 36 |
||||
namespace = "eco.allelo.pnm.prototype" |
||||
defaultConfig { |
||||
manifestPlaceholders["usesCleartextTraffic"] = "false" |
||||
applicationId = "eco.allelo.pnm.prototype" |
||||
minSdk = 24 |
||||
targetSdk = 36 |
||||
versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() |
||||
versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") |
||||
} |
||||
buildTypes { |
||||
getByName("debug") { |
||||
manifestPlaceholders["usesCleartextTraffic"] = "true" |
||||
isDebuggable = true |
||||
isJniDebuggable = true |
||||
isMinifyEnabled = false |
||||
packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so") |
||||
jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so") |
||||
jniLibs.keepDebugSymbols.add("*/x86/*.so") |
||||
jniLibs.keepDebugSymbols.add("*/x86_64/*.so") |
||||
} |
||||
} |
||||
getByName("release") { |
||||
isMinifyEnabled = true |
||||
proguardFiles( |
||||
*fileTree(".") { include("**/*.pro") } |
||||
.plus(getDefaultProguardFile("proguard-android-optimize.txt")) |
||||
.toList().toTypedArray() |
||||
) |
||||
} |
||||
} |
||||
kotlinOptions { |
||||
jvmTarget = "1.8" |
||||
} |
||||
buildFeatures { |
||||
buildConfig = true |
||||
} |
||||
} |
||||
|
||||
rust { |
||||
rootDirRel = "../../../" |
||||
} |
||||
|
||||
dependencies { |
||||
implementation("androidx.webkit:webkit:1.14.0") |
||||
implementation("androidx.appcompat:appcompat:1.7.1") |
||||
implementation("androidx.activity:activity-ktx:1.10.1") |
||||
implementation("com.google.android.material:material:1.12.0") |
||||
testImplementation("junit:junit:4.13.2") |
||||
androidTestImplementation("androidx.test.ext:junit:1.1.4") |
||||
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") |
||||
} |
||||
|
||||
apply(from = "tauri.build.gradle.kts") |
||||
@ -0,0 +1,21 @@ |
||||
# Add project specific ProGuard rules here. |
||||
# You can control the set of applied configuration files using the |
||||
# proguardFiles setting in build.gradle. |
||||
# |
||||
# For more details, see |
||||
# http://developer.android.com/guide/developing/tools/proguard.html |
||||
|
||||
# If your project uses WebView with JS, uncomment the following |
||||
# and specify the fully qualified class name to the JavaScript interface |
||||
# class: |
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { |
||||
# public *; |
||||
#} |
||||
|
||||
# Uncomment this to preserve the line number information for |
||||
# debugging stack traces. |
||||
#-keepattributes SourceFile,LineNumberTable |
||||
|
||||
# If you keep the line number information, uncomment this to |
||||
# hide the original source file name. |
||||
#-renamesourcefileattribute SourceFile |
||||
@ -0,0 +1,37 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> |
||||
<uses-permission android:name="android.permission.INTERNET" /> |
||||
|
||||
<!-- AndroidTV support --> |
||||
<uses-feature android:name="android.software.leanback" android:required="false" /> |
||||
|
||||
<application |
||||
android:icon="@mipmap/ic_launcher" |
||||
android:label="@string/app_name" |
||||
android:theme="@style/Theme.allelo" |
||||
android:usesCleartextTraffic="${usesCleartextTraffic}"> |
||||
<activity |
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" |
||||
android:launchMode="singleTask" |
||||
android:label="@string/main_activity_title" |
||||
android:name=".MainActivity" |
||||
android:exported="true"> |
||||
<intent-filter> |
||||
<action android:name="android.intent.action.MAIN" /> |
||||
<category android:name="android.intent.category.LAUNCHER" /> |
||||
<!-- AndroidTV support --> |
||||
<category android:name="android.intent.category.LEANBACK_LAUNCHER" /> |
||||
</intent-filter> |
||||
</activity> |
||||
|
||||
<provider |
||||
android:name="androidx.core.content.FileProvider" |
||||
android:authorities="${applicationId}.fileprovider" |
||||
android:exported="false" |
||||
android:grantUriPermissions="true"> |
||||
<meta-data |
||||
android:name="android.support.FILE_PROVIDER_PATHS" |
||||
android:resource="@xml/file_paths" /> |
||||
</provider> |
||||
</application> |
||||
</manifest> |
||||
|
After Width: | Height: | Size: 49 KiB |
@ -0,0 +1,11 @@ |
||||
package eco.allelo.pnm.prototype |
||||
|
||||
import android.os.Bundle |
||||
import androidx.activity.enableEdgeToEdge |
||||
|
||||
class MainActivity : TauriActivity() { |
||||
override fun onCreate(savedInstanceState: Bundle?) { |
||||
enableEdgeToEdge() |
||||
super.onCreate(savedInstanceState) |
||||
} |
||||
} |
||||
@ -0,0 +1,5 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> |
||||
<background android:drawable="@color/ic_launcher_background"/> |
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/> |
||||
</adaptive-icon> |
||||
@ -0,0 +1,5 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> |
||||
<background android:drawable="@color/ic_launcher_background"/> |
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/> |
||||
</adaptive-icon> |
||||
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 19 KiB |
@ -0,0 +1,6 @@ |
||||
<resources xmlns:tools="http://schemas.android.com/tools"> |
||||
<!-- Base application theme. --> |
||||
<style name="Theme.allelo" parent="Theme.MaterialComponents.DayNight.NoActionBar"> |
||||
<!-- Customize your theme here. --> |
||||
</style> |
||||
</resources> |
||||
@ -0,0 +1,10 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<resources> |
||||
<color name="purple_200">#FFBB86FC</color> |
||||
<color name="purple_500">#FF6200EE</color> |
||||
<color name="purple_700">#FF3700B3</color> |
||||
<color name="teal_200">#FF03DAC5</color> |
||||
<color name="teal_700">#FF018786</color> |
||||
<color name="black">#FF000000</color> |
||||
<color name="white">#FFFFFFFF</color> |
||||
</resources> |
||||
@ -0,0 +1,4 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<resources> |
||||
<color name="ic_launcher_background">#FFFFFF</color> |
||||
</resources> |
||||
@ -0,0 +1,4 @@ |
||||
<resources> |
||||
<string name="app_name">allelo</string> |
||||
<string name="main_activity_title">allelo</string> |
||||
</resources> |
||||
@ -0,0 +1,6 @@ |
||||
<resources xmlns:tools="http://schemas.android.com/tools"> |
||||
<!-- Base application theme. --> |
||||
<style name="Theme.allelo" parent="Theme.MaterialComponents.DayNight.NoActionBar"> |
||||
<!-- Customize your theme here. --> |
||||
</style> |
||||
</resources> |
||||
@ -0,0 +1,22 @@ |
||||
buildscript { |
||||
repositories { |
||||
google() |
||||
mavenCentral() |
||||
} |
||||
dependencies { |
||||
classpath("com.android.tools.build:gradle:8.11.0") |
||||
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") |
||||
} |
||||
} |
||||
|
||||
allprojects { |
||||
repositories { |
||||
google() |
||||
mavenCentral() |
||||
} |
||||
} |
||||
|
||||
tasks.register("clean").configure { |
||||
delete("build") |
||||
} |
||||
|
||||
@ -0,0 +1,23 @@ |
||||
plugins { |
||||
`kotlin-dsl` |
||||
} |
||||
|
||||
gradlePlugin { |
||||
plugins { |
||||
create("pluginsForCoolKids") { |
||||
id = "rust" |
||||
implementationClass = "RustPlugin" |
||||
} |
||||
} |
||||
} |
||||
|
||||
repositories { |
||||
google() |
||||
mavenCentral() |
||||
} |
||||
|
||||
dependencies { |
||||
compileOnly(gradleApi()) |
||||
implementation("com.android.tools.build:gradle:8.11.0") |
||||
} |
||||
|
||||
@ -0,0 +1,52 @@ |
||||
import java.io.File |
||||
import org.apache.tools.ant.taskdefs.condition.Os |
||||
import org.gradle.api.DefaultTask |
||||
import org.gradle.api.GradleException |
||||
import org.gradle.api.logging.LogLevel |
||||
import org.gradle.api.tasks.Input |
||||
import org.gradle.api.tasks.TaskAction |
||||
|
||||
open class BuildTask : DefaultTask() { |
||||
@Input |
||||
var rootDirRel: String? = null |
||||
@Input |
||||
var target: String? = null |
||||
@Input |
||||
var release: Boolean? = null |
||||
|
||||
@TaskAction |
||||
fun assemble() { |
||||
val executable = """cargo"""; |
||||
try { |
||||
runTauriCli(executable) |
||||
} catch (e: Exception) { |
||||
if (Os.isFamily(Os.FAMILY_WINDOWS)) { |
||||
runTauriCli("$executable.cmd") |
||||
} else { |
||||
throw e; |
||||
} |
||||
} |
||||
} |
||||
|
||||
fun runTauriCli(executable: String) { |
||||
val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null") |
||||
val target = target ?: throw GradleException("target cannot be null") |
||||
val release = release ?: throw GradleException("release cannot be null") |
||||
val args = listOf("tauri", "android", "android-studio-script"); |
||||
|
||||
project.exec { |
||||
workingDir(File(project.projectDir, rootDirRel)) |
||||
executable(executable) |
||||
args(args) |
||||
if (project.logger.isEnabled(LogLevel.DEBUG)) { |
||||
args("-vv") |
||||
} else if (project.logger.isEnabled(LogLevel.INFO)) { |
||||
args("-v") |
||||
} |
||||
if (release) { |
||||
args("--release") |
||||
} |
||||
args(listOf("--target", target)) |
||||
}.assertNormalExitValue() |
||||
} |
||||
} |
||||
@ -0,0 +1,24 @@ |
||||
# Project-wide Gradle settings. |
||||
# IDE (e.g. Android Studio) users: |
||||
# Gradle settings configured through the IDE *will override* |
||||
# any settings specified in this file. |
||||
# For more details on how to configure your build environment visit |
||||
# http://www.gradle.org/docs/current/userguide/build_environment.html |
||||
# Specifies the JVM arguments used for the daemon process. |
||||
# The setting is particularly useful for tweaking memory settings. |
||||
org.gradle.jvmargs=-Xmx4608m -Dfile.encoding=UTF-8 |
||||
# When configured, Gradle will run in incubating parallel mode. |
||||
# This option should only be used with decoupled projects. More details, visit |
||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects |
||||
# org.gradle.parallel=true |
||||
# AndroidX package structure to make it clearer which packages are bundled with the |
||||
# Android operating system, and which are packaged with your app"s APK |
||||
# https://developer.android.com/topic/libraries/support-library/androidx-rn |
||||
android.useAndroidX=true |
||||
# Kotlin code style for this project: "official" or "obsolete": |
||||
kotlin.code.style=official |
||||
# Enables namespacing of each library's R class so that its R class includes only the |
||||
# resources declared in the library itself and none from the library's dependencies, |
||||
# thereby reducing the size of the R class for that library |
||||
android.nonTransitiveRClass=true |
||||
android.nonFinalResIds=false |
||||
@ -0,0 +1,6 @@ |
||||
#Tue May 10 19:22:52 CST 2022 |
||||
distributionBase=GRADLE_USER_HOME |
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip |
||||
distributionPath=wrapper/dists |
||||
zipStorePath=wrapper/dists |
||||
zipStoreBase=GRADLE_USER_HOME |
||||
@ -0,0 +1,89 @@ |
||||
@rem |
||||
@rem Copyright 2015 the original author or authors. |
||||
@rem |
||||
@rem Licensed under the Apache License, Version 2.0 (the "License"); |
||||
@rem you may not use this file except in compliance with the License. |
||||
@rem You may obtain a copy of the License at |
||||
@rem |
||||
@rem https://www.apache.org/licenses/LICENSE-2.0 |
||||
@rem |
||||
@rem Unless required by applicable law or agreed to in writing, software |
||||
@rem distributed under the License is distributed on an "AS IS" BASIS, |
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
@rem See the License for the specific language governing permissions and |
||||
@rem limitations under the License. |
||||
@rem |
||||
|
||||
@if "%DEBUG%" == "" @echo off |
||||
@rem ########################################################################## |
||||
@rem |
||||
@rem Gradle startup script for Windows |
||||
@rem |
||||
@rem ########################################################################## |
||||
|
||||
@rem Set local scope for the variables with windows NT shell |
||||
if "%OS%"=="Windows_NT" setlocal |
||||
|
||||
set DIRNAME=%~dp0 |
||||
if "%DIRNAME%" == "" set DIRNAME=. |
||||
set APP_BASE_NAME=%~n0 |
||||
set APP_HOME=%DIRNAME% |
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter. |
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi |
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. |
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" |
||||
|
||||
@rem Find java.exe |
||||
if defined JAVA_HOME goto findJavaFromJavaHome |
||||
|
||||
set JAVA_EXE=java.exe |
||||
%JAVA_EXE% -version >NUL 2>&1 |
||||
if "%ERRORLEVEL%" == "0" goto execute |
||||
|
||||
echo. |
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. |
||||
echo. |
||||
echo Please set the JAVA_HOME variable in your environment to match the |
||||
echo location of your Java installation. |
||||
|
||||
goto fail |
||||
|
||||
:findJavaFromJavaHome |
||||
set JAVA_HOME=%JAVA_HOME:"=% |
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe |
||||
|
||||
if exist "%JAVA_EXE%" goto execute |
||||
|
||||
echo. |
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% |
||||
echo. |
||||
echo Please set the JAVA_HOME variable in your environment to match the |
||||
echo location of your Java installation. |
||||
|
||||
goto fail |
||||
|
||||
:execute |
||||
@rem Setup the command line |
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar |
||||
|
||||
|
||||
@rem Execute Gradle |
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* |
||||
|
||||
:end |
||||
@rem End local scope for the variables with windows NT shell |
||||
if "%ERRORLEVEL%"=="0" goto mainEnd |
||||
|
||||
:fail |
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of |
||||
rem the _cmd.exe /c_ return code! |
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 |
||||
exit /b 1 |
||||
|
||||
:mainEnd |
||||
if "%OS%"=="Windows_NT" endlocal |
||||
|
||||
:omega |
||||
@ -0,0 +1,3 @@ |
||||
xcuserdata/ |
||||
build/ |
||||
Externals/ |
||||
@ -0,0 +1,489 @@ |
||||
// !$*UTF8*$! |
||||
{ |
||||
archiveVersion = 1; |
||||
classes = { |
||||
}; |
||||
objectVersion = 63; |
||||
objects = { |
||||
|
||||
/* Begin PBXBuildFile section */ |
||||
28BF89360F612D0B01477963 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 577D8E750BE93D9EAA3589DA /* Security.framework */; }; |
||||
333BC12279D965EAB5258F49 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA69AFCEFFB9B2637EA2735B /* CoreGraphics.framework */; }; |
||||
5E985361B7FFD1B2904D66C1 /* libapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B3E901BDA0460E4188DEE30B /* libapp.a */; }; |
||||
6173C941C6942DEBDCE4E34E /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9DD1F696D6366E51654869D /* Metal.framework */; }; |
||||
9514863B78DE92F92E6640A2 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A8A921DD9E7079DD30382EA4 /* UIKit.framework */; }; |
||||
9E680AC552407A58EE2DCCAF /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7138E06D25D06D333994FFD9 /* main.mm */; }; |
||||
9F597495A6AA394762782B9B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 53F6E03EA197F6A6F09CC927 /* Assets.xcassets */; }; |
||||
B2BE80B8093CFB7572728A69 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BAC4781903A2F2DBC2638326 /* LaunchScreen.storyboard */; }; |
||||
B5B9B67F0B874F814BCD23A4 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 403F1A6FAD8FE5D58625C6BD /* WebKit.framework */; }; |
||||
C223D37F3942F7744461AC94 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9436ED6F82A31B69B3C2CF4 /* QuartzCore.framework */; }; |
||||
C3FC9F3C82851A81823E94C9 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 95D05243CAEDE88D4DEB8663 /* assets */; }; |
||||
C4FC7D07FAAAA5741D481567 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A4E71F293DB22710E4CD3EFF /* MetalKit.framework */; }; |
||||
/* End PBXBuildFile section */ |
||||
|
||||
/* Begin PBXFileReference section */ |
||||
14C9A91FED765AD8296B7855 /* lib.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = lib.rs; sourceTree = "<group>"; }; |
||||
1F8121A172263DDB11D84DD5 /* mobile.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = mobile.rs; sourceTree = "<group>"; }; |
||||
3D04C6F4FB754F63A900149E /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = "<group>"; }; |
||||
403F1A6FAD8FE5D58625C6BD /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; |
||||
4D8D9976302B4006364692B3 /* main.rs */ = {isa = PBXFileReference; lastKnownFileType = text; path = main.rs; sourceTree = "<group>"; }; |
||||
53F6E03EA197F6A6F09CC927 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; |
||||
577D8E750BE93D9EAA3589DA /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; |
||||
6F2CE3B81F1C7DF000752FA7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; |
||||
7138E06D25D06D333994FFD9 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; }; |
||||
8A3E463873C3C90E808C5881 /* AlleloPNM_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = AlleloPNM_iOS.entitlements; sourceTree = "<group>"; }; |
||||
95D05243CAEDE88D4DEB8663 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = SOURCE_ROOT; }; |
||||
A323694DA279909245E1448D /* AlleloPNM.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AlleloPNM.app; sourceTree = BUILT_PRODUCTS_DIR; }; |
||||
A4E71F293DB22710E4CD3EFF /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; }; |
||||
A8A921DD9E7079DD30382EA4 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; |
||||
B3E901BDA0460E4188DEE30B /* libapp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libapp.a; sourceTree = "<group>"; }; |
||||
BA69AFCEFFB9B2637EA2735B /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; |
||||
BAC4781903A2F2DBC2638326 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; }; |
||||
C9DD1F696D6366E51654869D /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; |
||||
E9436ED6F82A31B69B3C2CF4 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; |
||||
/* End PBXFileReference section */ |
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */ |
||||
5CADD463727B2D8F792C6F21 /* Frameworks */ = { |
||||
isa = PBXFrameworksBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
5E985361B7FFD1B2904D66C1 /* libapp.a in Frameworks */, |
||||
333BC12279D965EAB5258F49 /* CoreGraphics.framework in Frameworks */, |
||||
6173C941C6942DEBDCE4E34E /* Metal.framework in Frameworks */, |
||||
C4FC7D07FAAAA5741D481567 /* MetalKit.framework in Frameworks */, |
||||
C223D37F3942F7744461AC94 /* QuartzCore.framework in Frameworks */, |
||||
28BF89360F612D0B01477963 /* Security.framework in Frameworks */, |
||||
9514863B78DE92F92E6640A2 /* UIKit.framework in Frameworks */, |
||||
B5B9B67F0B874F814BCD23A4 /* WebKit.framework in Frameworks */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
/* End PBXFrameworksBuildPhase section */ |
||||
|
||||
/* Begin PBXGroup section */ |
||||
03800BB3DD4503575CF7EEDA /* AlleloPNM */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
7138E06D25D06D333994FFD9 /* main.mm */, |
||||
29C7A11C187AAF8C09085F1F /* bindings */, |
||||
); |
||||
path = AlleloPNM; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
29C7A11C187AAF8C09085F1F /* bindings */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
3D04C6F4FB754F63A900149E /* bindings.h */, |
||||
); |
||||
path = bindings; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
30C28EBFE41CBC85260BB5B5 /* Frameworks */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
BA69AFCEFFB9B2637EA2735B /* CoreGraphics.framework */, |
||||
B3E901BDA0460E4188DEE30B /* libapp.a */, |
||||
C9DD1F696D6366E51654869D /* Metal.framework */, |
||||
A4E71F293DB22710E4CD3EFF /* MetalKit.framework */, |
||||
E9436ED6F82A31B69B3C2CF4 /* QuartzCore.framework */, |
||||
577D8E750BE93D9EAA3589DA /* Security.framework */, |
||||
A8A921DD9E7079DD30382EA4 /* UIKit.framework */, |
||||
403F1A6FAD8FE5D58625C6BD /* WebKit.framework */, |
||||
); |
||||
name = Frameworks; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
43D4899D514D738C896995F1 /* AlleloPNM_iOS */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
8A3E463873C3C90E808C5881 /* AlleloPNM_iOS.entitlements */, |
||||
6F2CE3B81F1C7DF000752FA7 /* Info.plist */, |
||||
); |
||||
path = AlleloPNM_iOS; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
87106571D67C5C0196DE38FB /* src */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
14C9A91FED765AD8296B7855 /* lib.rs */, |
||||
4D8D9976302B4006364692B3 /* main.rs */, |
||||
1F8121A172263DDB11D84DD5 /* mobile.rs */, |
||||
); |
||||
name = src; |
||||
path = ../../src; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
C735E16E47AFEFA09FD7A1CB /* Sources */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
03800BB3DD4503575CF7EEDA /* AlleloPNM */, |
||||
); |
||||
path = Sources; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
C8A45067838382C521889BBA = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
95D05243CAEDE88D4DEB8663 /* assets */, |
||||
53F6E03EA197F6A6F09CC927 /* Assets.xcassets */, |
||||
BAC4781903A2F2DBC2638326 /* LaunchScreen.storyboard */, |
||||
43D4899D514D738C896995F1 /* AlleloPNM_iOS */, |
||||
DB50C0C35C05E6D415F5D482 /* Externals */, |
||||
C735E16E47AFEFA09FD7A1CB /* Sources */, |
||||
87106571D67C5C0196DE38FB /* src */, |
||||
30C28EBFE41CBC85260BB5B5 /* Frameworks */, |
||||
E1EADDA28654D3A5AB7227FC /* Products */, |
||||
); |
||||
sourceTree = "<group>"; |
||||
}; |
||||
DB50C0C35C05E6D415F5D482 /* Externals */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
); |
||||
path = Externals; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
E1EADDA28654D3A5AB7227FC /* Products */ = { |
||||
isa = PBXGroup; |
||||
children = ( |
||||
A323694DA279909245E1448D /* AlleloPNM.app */, |
||||
); |
||||
name = Products; |
||||
sourceTree = "<group>"; |
||||
}; |
||||
/* End PBXGroup section */ |
||||
|
||||
/* Begin PBXNativeTarget section */ |
||||
DFEDF72E2564EDCE36B6D3C6 /* AlleloPNM_iOS */ = { |
||||
isa = PBXNativeTarget; |
||||
buildConfigurationList = 346ADC40307FA89B5F4278F6 /* Build configuration list for PBXNativeTarget "AlleloPNM_iOS" */; |
||||
buildPhases = ( |
||||
20A4C11E2B3317F9BAF3EC8D /* Build Rust Code */, |
||||
16B7B63524F8EAA724D1A3C1 /* Sources */, |
||||
FF44D36984BD984B41419CA1 /* Resources */, |
||||
5CADD463727B2D8F792C6F21 /* Frameworks */, |
||||
); |
||||
buildRules = ( |
||||
); |
||||
dependencies = ( |
||||
); |
||||
name = AlleloPNM_iOS; |
||||
packageProductDependencies = ( |
||||
); |
||||
productName = AlleloPNM_iOS; |
||||
productReference = A323694DA279909245E1448D /* AlleloPNM.app */; |
||||
productType = "com.apple.product-type.application"; |
||||
}; |
||||
/* End PBXNativeTarget section */ |
||||
|
||||
/* Begin PBXProject section */ |
||||
324F1B8C3DDE8D19A82C14C6 /* Project object */ = { |
||||
isa = PBXProject; |
||||
attributes = { |
||||
BuildIndependentTargetsInParallel = YES; |
||||
LastUpgradeCheck = 1430; |
||||
}; |
||||
buildConfigurationList = 95F0DD767693C6F10A354E66 /* Build configuration list for PBXProject "AlleloPNM" */; |
||||
compatibilityVersion = "Xcode 14.0"; |
||||
developmentRegion = en; |
||||
hasScannedForEncodings = 0; |
||||
knownRegions = ( |
||||
Base, |
||||
en, |
||||
); |
||||
mainGroup = C8A45067838382C521889BBA; |
||||
minimizedProjectReferenceProxies = 1; |
||||
projectDirPath = ""; |
||||
projectRoot = ""; |
||||
targets = ( |
||||
DFEDF72E2564EDCE36B6D3C6 /* AlleloPNM_iOS */, |
||||
); |
||||
}; |
||||
/* End PBXProject section */ |
||||
|
||||
/* Begin PBXResourcesBuildPhase section */ |
||||
FF44D36984BD984B41419CA1 /* Resources */ = { |
||||
isa = PBXResourcesBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
9F597495A6AA394762782B9B /* Assets.xcassets in Resources */, |
||||
B2BE80B8093CFB7572728A69 /* LaunchScreen.storyboard in Resources */, |
||||
C3FC9F3C82851A81823E94C9 /* assets in Resources */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
/* End PBXResourcesBuildPhase section */ |
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */ |
||||
20A4C11E2B3317F9BAF3EC8D /* Build Rust Code */ = { |
||||
isa = PBXShellScriptBuildPhase; |
||||
alwaysOutOfDate = 1; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
); |
||||
inputFileListPaths = ( |
||||
); |
||||
inputPaths = ( |
||||
); |
||||
name = "Build Rust Code"; |
||||
outputFileListPaths = ( |
||||
); |
||||
outputPaths = ( |
||||
"$(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a", |
||||
"$(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a", |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
shellPath = /bin/sh; |
||||
shellScript = "bun 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:?}"; |
||||
}; |
||||
/* End PBXShellScriptBuildPhase section */ |
||||
|
||||
/* Begin PBXSourcesBuildPhase section */ |
||||
16B7B63524F8EAA724D1A3C1 /* Sources */ = { |
||||
isa = PBXSourcesBuildPhase; |
||||
buildActionMask = 2147483647; |
||||
files = ( |
||||
9E680AC552407A58EE2DCCAF /* main.mm in Sources */, |
||||
); |
||||
runOnlyForDeploymentPostprocessing = 0; |
||||
}; |
||||
/* End PBXSourcesBuildPhase section */ |
||||
|
||||
/* Begin XCBuildConfiguration section */ |
||||
72A55CF869D96F9926E6DAFC /* release */ = { |
||||
isa = XCBuildConfiguration; |
||||
buildSettings = { |
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; |
||||
ARCHS = ( |
||||
arm64, |
||||
x86_64, |
||||
); |
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
||||
CODE_SIGN_ENTITLEMENTS = AlleloPNM_iOS/AlleloPNM_iOS.entitlements; |
||||
CODE_SIGN_IDENTITY = "iPhone Developer"; |
||||
DEVELOPMENT_TEAM = V2YR9RLTN7; |
||||
ENABLE_BITCODE = NO; |
||||
"EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; |
||||
FRAMEWORK_SEARCH_PATHS = ( |
||||
"$(inherited)", |
||||
"\".\"", |
||||
); |
||||
INFOPLIST_FILE = AlleloPNM_iOS/Info.plist; |
||||
INFOPLIST_KEY_CFBundleDisplayName = "Allelo PNM prototype"; |
||||
LD_RUNPATH_SEARCH_PATHS = ( |
||||
"$(inherited)", |
||||
"@executable_path/Frameworks", |
||||
); |
||||
"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)", |
||||
); |
||||
"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)", |
||||
); |
||||
PRODUCT_BUNDLE_IDENTIFIER = eco.allelo.pnm.prototype; |
||||
PRODUCT_NAME = "AlleloPNM"; |
||||
SDKROOT = iphoneos; |
||||
TARGETED_DEVICE_FAMILY = "1,2"; |
||||
VALID_ARCHS = "arm64 x86_64"; |
||||
}; |
||||
name = release; |
||||
}; |
||||
998DD1FAFA7BEB507CB0996C /* release */ = { |
||||
isa = XCBuildConfiguration; |
||||
buildSettings = { |
||||
ALWAYS_SEARCH_USER_PATHS = NO; |
||||
CLANG_ANALYZER_NONNULL = YES; |
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; |
||||
CLANG_CXX_LIBRARY = "libc++"; |
||||
CLANG_ENABLE_MODULES = YES; |
||||
CLANG_ENABLE_OBJC_ARC = YES; |
||||
CLANG_ENABLE_OBJC_WEAK = YES; |
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
||||
CLANG_WARN_BOOL_CONVERSION = YES; |
||||
CLANG_WARN_COMMA = YES; |
||||
CLANG_WARN_CONSTANT_CONVERSION = YES; |
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; |
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
||||
CLANG_WARN_EMPTY_BODY = YES; |
||||
CLANG_WARN_ENUM_CONVERSION = YES; |
||||
CLANG_WARN_INFINITE_RECURSION = YES; |
||||
CLANG_WARN_INT_CONVERSION = YES; |
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; |
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; |
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
||||
CLANG_WARN_STRICT_PROTOTYPES = YES; |
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES; |
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
||||
CLANG_WARN_UNREACHABLE_CODE = YES; |
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
||||
COPY_PHASE_STRIP = NO; |
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; |
||||
ENABLE_NS_ASSERTIONS = NO; |
||||
ENABLE_STRICT_OBJC_MSGSEND = YES; |
||||
GCC_C_LANGUAGE_STANDARD = gnu11; |
||||
GCC_NO_COMMON_BLOCKS = YES; |
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
||||
GCC_WARN_UNDECLARED_SELECTOR = YES; |
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
||||
GCC_WARN_UNUSED_FUNCTION = YES; |
||||
GCC_WARN_UNUSED_VARIABLE = YES; |
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0; |
||||
MTL_ENABLE_DEBUG_INFO = NO; |
||||
MTL_FAST_MATH = YES; |
||||
PRODUCT_NAME = "$(TARGET_NAME)"; |
||||
SDKROOT = iphoneos; |
||||
SWIFT_COMPILATION_MODE = wholemodule; |
||||
SWIFT_OPTIMIZATION_LEVEL = "-O"; |
||||
SWIFT_VERSION = 5.0; |
||||
}; |
||||
name = release; |
||||
}; |
||||
BFF915546DE0D147AEC09B86 /* debug */ = { |
||||
isa = XCBuildConfiguration; |
||||
buildSettings = { |
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; |
||||
ARCHS = ( |
||||
arm64, |
||||
x86_64, |
||||
); |
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
||||
CODE_SIGN_ENTITLEMENTS = AlleloPNM_iOS/AlleloPNM_iOS.entitlements; |
||||
CODE_SIGN_IDENTITY = "iPhone Developer"; |
||||
DEVELOPMENT_TEAM = V2YR9RLTN7; |
||||
ENABLE_BITCODE = NO; |
||||
"EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; |
||||
FRAMEWORK_SEARCH_PATHS = ( |
||||
"$(inherited)", |
||||
"\".\"", |
||||
); |
||||
INFOPLIST_FILE = AlleloPNM_iOS/Info.plist; |
||||
INFOPLIST_KEY_CFBundleDisplayName = "Allelo PNM prototype"; |
||||
LD_RUNPATH_SEARCH_PATHS = ( |
||||
"$(inherited)", |
||||
"@executable_path/Frameworks", |
||||
); |
||||
"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)", |
||||
); |
||||
"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)", |
||||
); |
||||
PRODUCT_BUNDLE_IDENTIFIER = eco.allelo.pnm.prototype; |
||||
PRODUCT_NAME = "AlleloPNM"; |
||||
SDKROOT = iphoneos; |
||||
TARGETED_DEVICE_FAMILY = "1,2"; |
||||
VALID_ARCHS = "arm64 x86_64"; |
||||
}; |
||||
name = debug; |
||||
}; |
||||
DE939100669CE5433FF559AB /* debug */ = { |
||||
isa = XCBuildConfiguration; |
||||
buildSettings = { |
||||
ALWAYS_SEARCH_USER_PATHS = NO; |
||||
CLANG_ANALYZER_NONNULL = YES; |
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; |
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; |
||||
CLANG_CXX_LIBRARY = "libc++"; |
||||
CLANG_ENABLE_MODULES = YES; |
||||
CLANG_ENABLE_OBJC_ARC = YES; |
||||
CLANG_ENABLE_OBJC_WEAK = YES; |
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; |
||||
CLANG_WARN_BOOL_CONVERSION = YES; |
||||
CLANG_WARN_COMMA = YES; |
||||
CLANG_WARN_CONSTANT_CONVERSION = YES; |
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; |
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
||||
CLANG_WARN_EMPTY_BODY = YES; |
||||
CLANG_WARN_ENUM_CONVERSION = YES; |
||||
CLANG_WARN_INFINITE_RECURSION = YES; |
||||
CLANG_WARN_INT_CONVERSION = YES; |
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; |
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; |
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; |
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; |
||||
CLANG_WARN_STRICT_PROTOTYPES = YES; |
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES; |
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; |
||||
CLANG_WARN_UNREACHABLE_CODE = YES; |
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
||||
COPY_PHASE_STRIP = NO; |
||||
DEBUG_INFORMATION_FORMAT = dwarf; |
||||
ENABLE_STRICT_OBJC_MSGSEND = YES; |
||||
ENABLE_TESTABILITY = YES; |
||||
GCC_C_LANGUAGE_STANDARD = gnu11; |
||||
GCC_DYNAMIC_NO_PIC = NO; |
||||
GCC_NO_COMMON_BLOCKS = YES; |
||||
GCC_OPTIMIZATION_LEVEL = 0; |
||||
GCC_PREPROCESSOR_DEFINITIONS = ( |
||||
"$(inherited)", |
||||
"DEBUG=1", |
||||
); |
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
||||
GCC_WARN_UNDECLARED_SELECTOR = YES; |
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
||||
GCC_WARN_UNUSED_FUNCTION = YES; |
||||
GCC_WARN_UNUSED_VARIABLE = YES; |
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0; |
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; |
||||
MTL_FAST_MATH = YES; |
||||
ONLY_ACTIVE_ARCH = YES; |
||||
PRODUCT_NAME = "$(TARGET_NAME)"; |
||||
SDKROOT = iphoneos; |
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; |
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; |
||||
SWIFT_VERSION = 5.0; |
||||
}; |
||||
name = debug; |
||||
}; |
||||
/* End XCBuildConfiguration section */ |
||||
|
||||
/* Begin XCConfigurationList section */ |
||||
346ADC40307FA89B5F4278F6 /* Build configuration list for PBXNativeTarget "AlleloPNM_iOS" */ = { |
||||
isa = XCConfigurationList; |
||||
buildConfigurations = ( |
||||
BFF915546DE0D147AEC09B86 /* debug */, |
||||
72A55CF869D96F9926E6DAFC /* release */, |
||||
); |
||||
defaultConfigurationIsVisible = 0; |
||||
defaultConfigurationName = debug; |
||||
}; |
||||
95F0DD767693C6F10A354E66 /* Build configuration list for PBXProject "AlleloPNM" */ = { |
||||
isa = XCConfigurationList; |
||||
buildConfigurations = ( |
||||
DE939100669CE5433FF559AB /* debug */, |
||||
998DD1FAFA7BEB507CB0996C /* release */, |
||||
); |
||||
defaultConfigurationIsVisible = 0; |
||||
defaultConfigurationName = debug; |
||||
}; |
||||
/* End XCConfigurationList section */ |
||||
}; |
||||
rootObject = 324F1B8C3DDE8D19A82C14C6 /* Project object */; |
||||
} |
||||
@ -0,0 +1,7 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<Workspace |
||||
version = "1.0"> |
||||
<FileRef |
||||
location = "self:"> |
||||
</FileRef> |
||||
</Workspace> |
||||
@ -0,0 +1,10 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
||||
<plist version="1.0"> |
||||
<dict> |
||||
<key>BuildSystemType</key> |
||||
<string>Original</string> |
||||
<key>DisableBuildSystemDeprecationDiagnostic</key> |
||||
<true/> |
||||
</dict> |
||||
</plist> |
||||
@ -0,0 +1,123 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<Scheme |
||||
LastUpgradeVersion = "1430" |
||||
version = "1.3"> |
||||
<BuildAction |
||||
parallelizeBuildables = "YES" |
||||
buildImplicitDependencies = "YES"> |
||||
<BuildActionEntries> |
||||
<BuildActionEntry |
||||
buildForTesting = "YES" |
||||
buildForRunning = "YES" |
||||
buildForProfiling = "YES" |
||||
buildForArchiving = "YES" |
||||
buildForAnalyzing = "YES"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "DFEDF72E2564EDCE36B6D3C6" |
||||
BuildableName = "AlleloPNM.app" |
||||
BlueprintName = "AlleloPNM_iOS" |
||||
ReferencedContainer = "container:AlleloPNM.xcodeproj"> |
||||
</BuildableReference> |
||||
</BuildActionEntry> |
||||
</BuildActionEntries> |
||||
</BuildAction> |
||||
<TestAction |
||||
buildConfiguration = "debug" |
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" |
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" |
||||
shouldUseLaunchSchemeArgsEnv = "NO"> |
||||
<MacroExpansion> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "DFEDF72E2564EDCE36B6D3C6" |
||||
BuildableName = "AlleloPNM.app" |
||||
BlueprintName = "AlleloPNM_iOS" |
||||
ReferencedContainer = "container:AlleloPNM.xcodeproj"> |
||||
</BuildableReference> |
||||
</MacroExpansion> |
||||
<EnvironmentVariables> |
||||
<EnvironmentVariable |
||||
key = "RUST_BACKTRACE" |
||||
value = "full" |
||||
isEnabled = "YES"> |
||||
</EnvironmentVariable> |
||||
<EnvironmentVariable |
||||
key = "RUST_LOG" |
||||
value = "info" |
||||
isEnabled = "YES"> |
||||
</EnvironmentVariable> |
||||
</EnvironmentVariables> |
||||
<Testables> |
||||
</Testables> |
||||
</TestAction> |
||||
<LaunchAction |
||||
buildConfiguration = "debug" |
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" |
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" |
||||
launchStyle = "0" |
||||
useCustomWorkingDirectory = "NO" |
||||
ignoresPersistentStateOnLaunch = "NO" |
||||
debugDocumentVersioning = "YES" |
||||
debugServiceExtension = "internal" |
||||
allowLocationSimulation = "YES"> |
||||
<BuildableProductRunnable |
||||
runnableDebuggingMode = "0"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "DFEDF72E2564EDCE36B6D3C6" |
||||
BuildableName = "AlleloPNM.app" |
||||
BlueprintName = "AlleloPNM_iOS" |
||||
ReferencedContainer = "container:AlleloPNM.xcodeproj"> |
||||
</BuildableReference> |
||||
</BuildableProductRunnable> |
||||
<EnvironmentVariables> |
||||
<EnvironmentVariable |
||||
key = "RUST_BACKTRACE" |
||||
value = "full" |
||||
isEnabled = "YES"> |
||||
</EnvironmentVariable> |
||||
<EnvironmentVariable |
||||
key = "RUST_LOG" |
||||
value = "info" |
||||
isEnabled = "YES"> |
||||
</EnvironmentVariable> |
||||
</EnvironmentVariables> |
||||
</LaunchAction> |
||||
<ProfileAction |
||||
buildConfiguration = "release" |
||||
shouldUseLaunchSchemeArgsEnv = "NO" |
||||
savedToolIdentifier = "" |
||||
useCustomWorkingDirectory = "NO" |
||||
debugDocumentVersioning = "YES"> |
||||
<BuildableProductRunnable |
||||
runnableDebuggingMode = "0"> |
||||
<BuildableReference |
||||
BuildableIdentifier = "primary" |
||||
BlueprintIdentifier = "DFEDF72E2564EDCE36B6D3C6" |
||||
BuildableName = "AlleloPNM.app" |
||||
BlueprintName = "AlleloPNM_iOS" |
||||
ReferencedContainer = "container:AlleloPNM.xcodeproj"> |
||||
</BuildableReference> |
||||
</BuildableProductRunnable> |
||||
<EnvironmentVariables> |
||||
<EnvironmentVariable |
||||
key = "RUST_BACKTRACE" |
||||
value = "full" |
||||
isEnabled = "YES"> |
||||
</EnvironmentVariable> |
||||
<EnvironmentVariable |
||||
key = "RUST_LOG" |
||||
value = "info" |
||||
isEnabled = "YES"> |
||||
</EnvironmentVariable> |
||||
</EnvironmentVariables> |
||||
</ProfileAction> |
||||
<AnalyzeAction |
||||
buildConfiguration = "debug"> |
||||
</AnalyzeAction> |
||||
<ArchiveAction |
||||
buildConfiguration = "release" |
||||
revealArchiveInOrganizer = "YES"> |
||||
</ArchiveAction> |
||||
</Scheme> |
||||
@ -0,0 +1,5 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
||||
<plist version="1.0"> |
||||
<dict/> |
||||
</plist> |
||||
@ -0,0 +1,44 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
||||
<plist version="1.0"> |
||||
<dict> |
||||
<key>CFBundleDevelopmentRegion</key> |
||||
<string>$(DEVELOPMENT_LANGUAGE)</string> |
||||
<key>CFBundleExecutable</key> |
||||
<string>$(EXECUTABLE_NAME)</string> |
||||
<key>CFBundleIdentifier</key> |
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> |
||||
<key>CFBundleInfoDictionaryVersion</key> |
||||
<string>6.0</string> |
||||
<key>CFBundleName</key> |
||||
<string>$(PRODUCT_NAME)</string> |
||||
<key>CFBundlePackageType</key> |
||||
<string>APPL</string> |
||||
<key>CFBundleShortVersionString</key> |
||||
<string>0.1.0</string> |
||||
<key>CFBundleVersion</key> |
||||
<string>0.1.0</string> |
||||
<key>LSRequiresIPhoneOS</key> |
||||
<true/> |
||||
<key>UILaunchStoryboardName</key> |
||||
<string>LaunchScreen</string> |
||||
<key>UIRequiredDeviceCapabilities</key> |
||||
<array> |
||||
<string>arm64</string> |
||||
<string>metal</string> |
||||
</array> |
||||
<key>UISupportedInterfaceOrientations</key> |
||||
<array> |
||||
<string>UIInterfaceOrientationPortrait</string> |
||||
<string>UIInterfaceOrientationLandscapeLeft</string> |
||||
<string>UIInterfaceOrientationLandscapeRight</string> |
||||
</array> |
||||
<key>UISupportedInterfaceOrientations~ipad</key> |
||||
<array> |
||||
<string>UIInterfaceOrientationPortrait</string> |
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string> |
||||
<string>UIInterfaceOrientationLandscapeLeft</string> |
||||
<string>UIInterfaceOrientationLandscapeRight</string> |
||||
</array> |
||||
</dict> |
||||
</plist> |
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 570 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 20 KiB |
@ -0,0 +1,116 @@ |
||||
{ |
||||
"images" : [ |
||||
{ |
||||
"size" : "20x20", |
||||
"idiom" : "iphone", |
||||
"filename" : "AppIcon-20x20@2x.png", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"size" : "20x20", |
||||
"idiom" : "iphone", |
||||
"filename" : "AppIcon-20x20@3x.png", |
||||
"scale" : "3x" |
||||
}, |
||||
{ |
||||
"size" : "29x29", |
||||
"idiom" : "iphone", |
||||
"filename" : "AppIcon-29x29@2x-1.png", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"size" : "29x29", |
||||
"idiom" : "iphone", |
||||
"filename" : "AppIcon-29x29@3x.png", |
||||
"scale" : "3x" |
||||
}, |
||||
{ |
||||
"size" : "40x40", |
||||
"idiom" : "iphone", |
||||
"filename" : "AppIcon-40x40@2x.png", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"size" : "40x40", |
||||
"idiom" : "iphone", |
||||
"filename" : "AppIcon-40x40@3x.png", |
||||
"scale" : "3x" |
||||
}, |
||||
{ |
||||
"size" : "60x60", |
||||
"idiom" : "iphone", |
||||
"filename" : "AppIcon-60x60@2x.png", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"size" : "60x60", |
||||
"idiom" : "iphone", |
||||
"filename" : "AppIcon-60x60@3x.png", |
||||
"scale" : "3x" |
||||
}, |
||||
{ |
||||
"size" : "20x20", |
||||
"idiom" : "ipad", |
||||
"filename" : "AppIcon-20x20@1x.png", |
||||
"scale" : "1x" |
||||
}, |
||||
{ |
||||
"size" : "20x20", |
||||
"idiom" : "ipad", |
||||
"filename" : "AppIcon-20x20@2x-1.png", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"size" : "29x29", |
||||
"idiom" : "ipad", |
||||
"filename" : "AppIcon-29x29@1x.png", |
||||
"scale" : "1x" |
||||
}, |
||||
{ |
||||
"size" : "29x29", |
||||
"idiom" : "ipad", |
||||
"filename" : "AppIcon-29x29@2x.png", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"size" : "40x40", |
||||
"idiom" : "ipad", |
||||
"filename" : "AppIcon-40x40@1x.png", |
||||
"scale" : "1x" |
||||
}, |
||||
{ |
||||
"size" : "40x40", |
||||
"idiom" : "ipad", |
||||
"filename" : "AppIcon-40x40@2x-1.png", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"size" : "76x76", |
||||
"idiom" : "ipad", |
||||
"filename" : "AppIcon-76x76@1x.png", |
||||
"scale" : "1x" |
||||
}, |
||||
{ |
||||
"size" : "76x76", |
||||
"idiom" : "ipad", |
||||
"filename" : "AppIcon-76x76@2x.png", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"size" : "83.5x83.5", |
||||
"idiom" : "ipad", |
||||
"filename" : "AppIcon-83.5x83.5@2x.png", |
||||
"scale" : "2x" |
||||
}, |
||||
{ |
||||
"size" : "1024x1024", |
||||
"idiom" : "ios-marketing", |
||||
"filename" : "AppIcon-512@2x.png", |
||||
"scale" : "1x" |
||||
} |
||||
], |
||||
"info" : { |
||||
"version" : 1, |
||||
"author" : "xcode" |
||||
} |
||||
} |
||||
@ -0,0 +1,6 @@ |
||||
{ |
||||
"info" : { |
||||
"version" : 1, |
||||
"author" : "xcode" |
||||
} |
||||
} |
||||
@ -0,0 +1,8 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
||||
<plist version="1.0"> |
||||
<dict> |
||||
<key>method</key> |
||||
<string>debugging</string> |
||||
</dict> |
||||
</plist> |
||||
@ -0,0 +1,30 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17150" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="Y6W-OH-hqX"> |
||||
<dependencies> |
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17122"/> |
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/> |
||||
<capability name="System colors in document resources" minToolsVersion="11.0"/> |
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> |
||||
</dependencies> |
||||
<scenes> |
||||
<!--View Controller--> |
||||
<scene sceneID="s0d-6b-0kx"> |
||||
<objects> |
||||
<viewController id="Y6W-OH-hqX" sceneMemberID="viewController"> |
||||
<view key="view" contentMode="scaleToFill" id="5EZ-qb-Rvc"> |
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/> |
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
||||
<viewLayoutGuide key="safeArea" id="vDu-zF-Fre"/> |
||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/> |
||||
</view> |
||||
</viewController> |
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="Ief-a0-LHa" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/> |
||||
</objects> |
||||
</scene> |
||||
</scenes> |
||||
<resources> |
||||
<systemColor name="systemBackgroundColor"> |
||||
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> |
||||
</systemColor> |
||||
</resources> |
||||
</document> |
||||
@ -0,0 +1,21 @@ |
||||
# Uncomment the next line to define a global platform for your project |
||||
|
||||
target 'AlleloPNM_iOS' do |
||||
platform :ios, '14.0' |
||||
# Pods for AlleloPNM_iOS |
||||
end |
||||
|
||||
target 'AlleloPNM_macOS' do |
||||
platform :osx, '11.0' |
||||
# Pods for AlleloPNM_macOS |
||||
end |
||||
|
||||
# Delete the deployment target for iOS and macOS, causing it to be inherited from the Podfile |
||||
post_install do |installer| |
||||
installer.pods_project.targets.each do |target| |
||||
target.build_configurations.each do |config| |
||||
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' |
||||
config.build_settings.delete 'MACOSX_DEPLOYMENT_TARGET' |
||||
end |
||||
end |
||||
end |
||||
@ -0,0 +1,8 @@ |
||||
#pragma once |
||||
|
||||
namespace ffi { |
||||
extern "C" { |
||||
void start_app(); |
||||
} |
||||
} |
||||
|
||||
@ -0,0 +1,6 @@ |
||||
#include "bindings/bindings.h" |
||||
|
||||
int main(int argc, char * argv[]) { |
||||
ffi::start_app(); |
||||
return 0; |
||||
} |
||||
@ -0,0 +1,88 @@ |
||||
name: AlleloPNM |
||||
options: |
||||
bundleIdPrefix: eco.allelo.pnm.prototype |
||||
deploymentTarget: |
||||
iOS: 14.0 |
||||
fileGroups: [../../src] |
||||
configs: |
||||
debug: debug |
||||
release: release |
||||
settingGroups: |
||||
app: |
||||
base: |
||||
PRODUCT_NAME: AlleloPNM |
||||
PRODUCT_BUNDLE_IDENTIFIER: eco.allelo.pnm.prototype |
||||
targetTemplates: |
||||
app: |
||||
type: application |
||||
sources: |
||||
- path: Sources |
||||
scheme: |
||||
environmentVariables: |
||||
RUST_BACKTRACE: full |
||||
RUST_LOG: info |
||||
settings: |
||||
groups: [app] |
||||
targets: |
||||
AlleloPNM_iOS: |
||||
type: application |
||||
platform: iOS |
||||
sources: |
||||
- path: Sources |
||||
- path: Assets.xcassets |
||||
- path: Externals |
||||
- path: AlleloPNM_iOS |
||||
- path: assets |
||||
buildPhase: resources |
||||
type: folder |
||||
- path: LaunchScreen.storyboard |
||||
info: |
||||
path: AlleloPNM_iOS/Info.plist |
||||
properties: |
||||
LSRequiresIPhoneOS: true |
||||
UILaunchStoryboardName: LaunchScreen |
||||
UIRequiredDeviceCapabilities: [arm64, metal] |
||||
UISupportedInterfaceOrientations: |
||||
- UIInterfaceOrientationPortrait |
||||
- UIInterfaceOrientationLandscapeLeft |
||||
- UIInterfaceOrientationLandscapeRight |
||||
UISupportedInterfaceOrientations~ipad: |
||||
- UIInterfaceOrientationPortrait |
||||
- UIInterfaceOrientationPortraitUpsideDown |
||||
- UIInterfaceOrientationLandscapeLeft |
||||
- UIInterfaceOrientationLandscapeRight |
||||
CFBundleShortVersionString: 0.1.0 |
||||
CFBundleVersion: "0.1.0" |
||||
entitlements: |
||||
path: AlleloPNM_iOS/AlleloPNM_iOS.entitlements |
||||
scheme: |
||||
environmentVariables: |
||||
RUST_BACKTRACE: full |
||||
RUST_LOG: info |
||||
settings: |
||||
base: |
||||
ENABLE_BITCODE: false |
||||
ARCHS: [arm64, x86_64] |
||||
VALID_ARCHS: arm64 x86_64 |
||||
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) |
||||
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) |
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: true |
||||
EXCLUDED_ARCHS[sdk=iphoneos*]: x86_64 |
||||
groups: [app] |
||||
dependencies: |
||||
- framework: libapp.a |
||||
embed: false |
||||
- sdk: CoreGraphics.framework |
||||
- sdk: Metal.framework |
||||
- sdk: MetalKit.framework |
||||
- sdk: QuartzCore.framework |
||||
- sdk: Security.framework |
||||
- sdk: UIKit.framework |
||||
- sdk: WebKit.framework |
||||
preBuildScripts: |
||||
- script: bun 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:?} |
||||
name: Build Rust Code |
||||
basedOnDependencyAnalysis: false |
||||
outputFiles: |
||||
- $(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a |
||||
- $(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a |
||||
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 2.8 KiB |