Files
iptvnator/apps/electron-backend/project.json
T
4gray 9f873e6bed feat(player): add embedded-mpv player for macOS as experimental feature
- Introduced tooling for building and staging the macOS `libmpv` runtime for IPTVnator's embedded MPV player.
- Added `build-macos-runtime.mjs` for building an LGPL-compatible runtime from source.
- Created `stage-macos-runtime.mjs` for staging the built runtime artifacts.
- Implemented validation for the packaged embedded MPV runtime in `electron-after-pack.cjs` and `embedded-mpv-macos.cjs`.
- Updated packaging scripts to ensure the embedded MPV runtime is correctly integrated and validated during the build process.
- Added README files to document the expected layout and usage for the embedded MPV runtime artifacts.

Entire-Checkpoint: c6e522b4276c
2026-04-27 00:32:14 +02:00

148 lines
5.3 KiB
JSON

{
"name": "electron-backend",
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "apps/electron-backend/src",
"projectType": "application",
"targets": {
"build-worker": {
"executor": "nx:run-commands",
"outputs": ["{workspaceRoot}/dist/apps/electron-backend/workers"],
"options": {
"command": "node apps/electron-backend/build-worker.js"
}
},
"build-embedded-mpv": {
"executor": "nx:run-commands",
"cache": false,
"outputs": [
"{workspaceRoot}/apps/electron-backend/native/build/Release"
],
"options": {
"command": "node apps/electron-backend/build-embedded-mpv.js"
}
},
"build": {
"dependsOn": [
"electron-backend:build-worker",
"electron-backend:build-embedded-mpv",
{
"projects": ["web", "remote-control-web"],
"target": "build"
}
],
"executor": "nx-electron:build",
"outputs": ["{options.outputPath}"],
"inputs": [
"production",
"^production",
"{workspaceRoot}/apps/electron-backend/native/build/Release/**"
],
"options": {
"outputPath": "dist/apps/electron-backend",
"main": "apps/electron-backend/src/main.ts",
"tsConfig": "apps/electron-backend/tsconfig.app.json",
"assets": [
"apps/electron-backend/src/assets",
{
"glob": "{embedded_mpv.node,embedded-mpv-runtime.json,embedded-mpv-unavailable.txt,lib/*}",
"input": "apps/electron-backend/native/build/Release",
"output": "native"
}
]
},
"configurations": {
"production": {
"optimization": true,
"extractLicenses": true,
"inspect": false,
"fileReplacements": [
{
"replace": "apps/electron-backend/src/environments/environment.ts",
"with": "apps/electron-backend/src/environments/environment.prod.ts"
}
]
}
}
},
"build-e2e": {
"dependsOn": [
"electron-backend:build-worker",
"electron-backend:build-embedded-mpv",
{
"projects": ["web"],
"target": "build-e2e"
},
{
"projects": ["remote-control-web"],
"target": "build-e2e"
}
],
"executor": "nx-electron:build",
"outputs": ["{options.outputPath}"],
"inputs": [
"production",
"^production",
"{workspaceRoot}/apps/electron-backend/native/build/Release/**"
],
"options": {
"outputPath": "dist/apps/electron-backend",
"main": "apps/electron-backend/src/main.ts",
"tsConfig": "apps/electron-backend/tsconfig.app.json",
"assets": [
"apps/electron-backend/src/assets",
{
"glob": "{embedded_mpv.node,embedded-mpv-runtime.json,embedded-mpv-unavailable.txt,lib/*}",
"input": "apps/electron-backend/native/build/Release",
"output": "native"
}
]
}
},
"serve": {
"executor": "nx:run-commands",
"options": {
"command": "nx run electron-backend:serve-electron"
}
},
"serve-electron": {
"executor": "nx-electron:execute",
"options": {
"buildTarget": "electron-backend:build",
"waitUntilTargets": ["web:serve"],
"remoteDebuggingPort": 9222
}
},
"package": {
"dependsOn": ["electron-backend:build"],
"executor": "nx-electron:package",
"options": {
"name": "electron-backend",
"frontendProject": "web",
"sourcePath": "dist/apps",
"outputPath": "dist/packages",
"prepackageOnly": true
}
},
"make": {
"dependsOn": ["electron-backend:build"],
"executor": "nx-electron:make",
"options": {
"name": "electron-backend",
"frontendProject": "web",
"sourcePath": "dist/apps",
"outputPath": "dist/executables"
}
},
"lint": {
"command": "eslint apps/electron-backend/**/*.ts"
},
"test": {
"executor": "@nx/jest:jest",
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
"options": {
"jestConfig": "apps/electron-backend/jest.config.ts"
}
}
}
}