À propos du projet
## Ce qu'est ce dépôt
`nx_open` contient les composants open-source de Network Optix Meta Platform — le code source et les spécifications utilisés pour construire tous les produits Powered-by-Nx, y compris le système de gestion vidéo (VMS) Nx Witness. Le principal composant compilable depuis ce dépôt est le VMS Desktop Client. La bibliothèque Nx Kit (`artifacts/nx_kit/`) fait partie du Desktop Client mais peut également être utilisée de manière indépendante ; son propre readme contient les détails.
La plupart des fichiers sont sous licence Mozilla Public License 2.0 sauf indication contraire ; le texte de la licence se trouve dans `licenses/license_mpl2.md`. Une liste complète des composants open-source tiers inclus est publiée sur la page de divulgation des logiciels open-source du projet.
## Plateformes prises en charge
- Windows 10 x64 (Microsoft Visual Studio)
- Linux Ubuntu 20.04, 22.04, 24.04 (GCC ou Clang) x64, ARM 32/64 via compilation croisée sur Linux x64
- macOS Monterey 12.6.3 (Xcode avec Clang) x64 et Apple M1/M2
## Prérequis de compilation
- Python 3.8+ disponible sur `PATH` en tant que `python`, et sur macOS/Ubuntu également en tant que `python3`
- Pip disponible sur `PATH` et installé pour l'interpréteur utilisé par la compilation
- CMake, Ninja et Conan, recommandés pour être installés via pip à partir du `requirements.txt` de la branche `master`
- Linux : dépendances de compilation et d'exécution installées via CMake avec `-DinstallSystemRequirements=ON` ; le compilateur lui-même est récupéré en tant qu'artefact Conan plutôt que pris depuis le système
- Windows : Visual Studio 2022 Community Edition avec la charge de travail « Desktop development with C++ » et le composant « C++ CMake tools for Windows »
- macOS : Xcode Command Line Tools 14.2+, plus Rosetta 2 sur Apple M1/M2
## Compilation du Desktop Client
Les textes et graphiques de l'interface graphique du Client proviennent d'un Customization Package (un fichier zip) qui définit la marque du VMS. Un package par défaut de marque Nx-Meta avec des espaces réservés est récupéré depuis Conan ; des packages personnalisés peuvent être générés sur le Nx Meta Developer Portal.
Les scripts utilitaires `build.sh` (Linux/macOS) et `build.bat` (Windows) encapsulent les étapes de configuration et de compilation CMake. Ils créent un répertoire de compilation comme voisin de la racine du dépôt avec un suffixe `-build`. Une exécution simple produit une compilation Debug propre avec les exécutables dans `nx_open-build/bin/` ; `-DdeveloperBuild=OFF` produit une compilation Release avec des packages de distribution et une archive de tests unitaires sous `nx_open-build/distrib/`. Un package personnalisé peut être fourni avec `-DcustomizationPackageFile=<customization.zip>`, dont l'identifiant `description.json` doit correspondre à celui du Server. Les compilations incrémentielles se contentent de relancer le script ; la génération est relancée automatiquement lorsque nécessaire. La compilation croisée utilise `-DtargetDevice=` avec des valeurs telles que `linux_x64`, `linux_arm64`, `linux_arm32`, `macos_x64`, `macos_arm64`. La compilation et le débogage dans l'IDE Visual Studio sont pris en charge après avoir exécuté l'étape de génération depuis la ligne de commande. Définir `NX_CONAN_DOWNLOAD_CACHE` évite de retélécharger les artefacts lors de compilations propres.
## Signature
Sur Windows, les exécutables et le fichier de distribution peuvent être signés avec un certificat d'éditeur PKCS#12 via `signtool.py`, configuré via un fichier YAML (chemin du certificat, mot de passe, serveurs d'horodatage optionnels) et activé avec `-DsigntoolConfig=`. Un certificat de test auto-signé peut être généré avec le script batch fourni. Linux ne nécessite aucune signature et ne fournit aucun outil. Un outil de signature macOS autonome est décrit comme étant encore en développement.
## Exécution du client et compatibilité du serveur
Le Desktop Client s'exécute directement depuis le répertoire de compilation. Sur Windows, `activate_run.bat` (généré par Conan) doit être exécuté en premier pour définir PATH et d'autres variables ; `deactivate_run.bat` les restaure.
Étant donné que les sources du VMS Server ne sont pas publiques, un client compilé depuis ce dépôt ne peut se connecter qu'à un Server compatible obtenu à partir d'une version publique du VMS, y compris les versions préliminaires de Nx Meta VMS. La compatibilité n'est garantie que lorsque le Client est compilé à partir du même commit que le Server, identifié par des tags git tels que `vms/4.2/12345_release_all`. Les clients issus de commits ultérieurs dans la même branche peuvent continuer à fonctionner pendant un certain temps mais peuvent perdre la compatibilité. Le Client et le Server doivent également utiliser des Customization Packages avec le même identifiant de personnalisation. Le système de compilation tente de déduire la version compatible du Server à partir des tags git lors de la génération ; `-DbuildNumber=` peut remplacer cette valeur et `-DbuildNumber=AUTO` restaure la détection automatique.
Les mises à jour automatiques du VMS sont désactivées pour le Desktop Client open-source, car elles écraseraient une compilation personnalisée par une compilation Nx ; un administrateur peut néanmoins forcer une telle mise à jour. Des serveurs et packages de mise à jour personnalisés sont techniquement possibles, et des instructions ou des outils pourront être fournis à l'avenir.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.