
CMAKE -Abhängigkeitsanbieter für den Paketmanager von Conan C und C ++.
cmake-conan . |
|---|
Die cmake-conan Integration in dieser develop2 von CMake-Abhängigkeitsanbietern in dieser Entwicklung von CMAKE-Abhängigkeit, auch wenn sie noch nicht als 1,0 veröffentlicht werden, ist stabiler, produktionsbereit und empfohlen als die Legacy cmake-conan für Conan 1. Bitte aktualisieren Sie auf Conan 2 und die neue cmake-conan Integration in diesem develop2 . |
Voraussetzungen:
conanfile.txt oder conanfile.py enthält, um die erforderlichen Abhängigkeiten aufzulisten. Klonen Sie zunächst dieses Repository im develop2 .
git clone https://github.com/conan-io/cmake-conan.git -b develop2 Dieses Repository enthält einen CMakeLists.txt mit einem Beispielprojekt, das von fmt abhängt.
cd cmake-conan/example
mkdir build
cmake -B build -S . -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=../conan_provider.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release Stellen Sie sicher, dass Sie eine conanfile.txt oder conanfile.py am Wurzel Ihres Projekts platziert haben und Ihre Anforderungen auflisten. Sie können ConanFile.txt für ein Beispiel sehen oder die Conan -Dokumentation für conanfile : .txt docs, .py docs überprüfen.
Wenn Sie CMake zum ersten Mal aufrufen, um das Projekt zu konfigurieren, bestehen Sie -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=[path-to-cmake-conan]/conan_provider.cmake . Dadurch wird sichergestellt, dass conan install innerhalb von CMAKE ausgerufen wird. Diese Integration erfordert keine Änderungen an Ihren CMakeLists.txt -Skripten .
cd [your-project]
mkdir build
cmake -B build -S . -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=[path-to-cmake-conan]/conan_provider.cmake -DCMAKE_BUILD_TYPE=ReleaseCMakeDeps -Generator wird angegeben - für Build -Einstellungen, die ansonsten von CMakeToolchain bereitgestellt werden (z. B. der Compiler selbst oder andere globale Build -Einstellungen), rufen Sie Conan bitte nach Dokumentation getrennt auf.find_package befriedigen kann. Für Abhängigkeiten, die Logik außerhalb von find_package haben, können Sie beispielsweise direkte Anrufe finden, um find_program , find_library , find_path oder find_file zu erhalten, diese funktionieren möglicherweise nicht korrekt.CMAKE_BUILD_TYPE angeben (kann nicht leer gelassen werden) Der CMake-Conan-Abhängigkeitsanbieter erstellt ein Conan-Profil, bei dem die Einstellungen ( os , arch , compiler , build_type ) aus dem abgerufen werden, was CMake für den aktuellen Build erkannt hat. Conan verwendet zwei Profile für Abhängigkeiten, den Host und die Build -Profile. Sie können hier mehr darüber lesen. In CMake-Conan lautet das Standardverhalten wie folgt:
default -Conan -Profil zurück.default -Conan -Profil. Bitte beachten Sie, dass ein default bereits vorhanden ist, damit die oben genannten Arbeiten arbeiten müssen. Wenn dies nicht der Fall ist, ruft cmake-conan den Autodetektionsmechanismus von Conans auf, der versucht, die Systemverlagerung zu erraten.
Wenn Sie das Profil anpassen müssen, können Sie dies tun, indem Sie den Wert von CONAN_HOST_PROFILE und CONAN_BUILD_PROFILE ändern und sie als CMake -Cache -Variablen übergeben. Einige Beispiele:
-DCONAN_HOST_PROFILE="default;auto-cmake" : Führen Sie eine Autodetektion wie oben beschrieben durch und fallback für das Standardprofil für alles andere (Standardverhalten).-DCONAN_HOST_PROFILE=clang16 : Führen Sie keine Autodetektion durch und verwenden Sie das clang16 -Profil, das im Ordner conan Profiles vorhanden ist (siehe Dokumente.)-DCONAN_BUILD_PROFILE="/path/to/profile" : Geben Sie alternativ einen Pfad zu einer Profildatei an, die sich möglicherweise überall im Dateisystem befindet.-DCONAN_HOST_PROFILE="default;custom" : Semi-Colon getrennte Liste von Profilen. Es wird ein zusammengesetztes Profil verwendet (siehe Dokumente) - von links nach rechts erwähnt, wo rechts die höchste Priorität hat. Der Anbieter von CMake-Conan-Abhängigkeit wird die oben beschriebenen Profilinformationen autodieren und übergeben. Wenn der Befehlsaufruf conan install weiter angepasst werden muss, kann die Variable CONAN_INSTALL_ARGS verwendet werden.
CONAN_INSTALL_ARGS initialisiert, um zu bestehen --build=missing . Wenn Sie diese Variable anpassen, beachten Sie bitte, dass Conan zu seinem Standardverhalten zurückgeht, es sei denn, Sie geben das Flag --build -Flag an.conanfile.txt|.py und dem Ausgabeformat ( --format ).--build=never;--update;--lockfile-out='' Es gibt einige Tests, Sie können in Python mit PyTest laufen, zum Beispiel:
$ pytest -rA