
CMAKE依賴提供者的Conan C和C ++軟件包管理器。
cmake-conan的推薦生產版本。 |
|---|
使用CMAKE依賴性提供商,即使尚未以1.0的釋放, cmake-conan develop2更穩定,準備就緒,並且推薦了Conan 1的傳統cmake-conan請更新到Conan 2和新的CMAKE-CONAN在此develop2分支中的新cmake-conan集成。 |
先決條件:
conanfile.txt或conanfile.py列出所需的依賴項。首先,將此存儲庫克隆到develop2分支中。
git clone https://github.com/conan-io/cmake-conan.git -b develop2該存儲庫包含一個CMakeLists.txt ,其示例項目取決於fmt 。
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確保您已將conanfile.txt或conanfile.py放在項目的根源上,以列出您的要求。您可以在示例中查看Conanfile.txt,或檢查conanfile的Conan文檔:.txt文檔,.py Docs。
首次調用cmake配置項目時,通過-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=[path-to-cmake-conan]/conan_provider.cmake 。這將確保從CMAKE內部調用conan install 。此集成不需要對您的CMakeLists.txt腳本進行任何更改。
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生成器 - 對於CMakeToolchain否則將提供的構建設置(例如,編譯器本身或其他全局構建設置),請根據文檔單獨調用Conan。find_package的調用。例如,對於在find_package之外具有邏輯的依賴項,例如,通過直接呼叫find_program , find_library , find_path或find_file ,這些可能無法正常工作。CMAKE_BUILD_TYPE (不能讓空白)CMAKE-CONAN依賴關係提供商將創建一個CONAN配置文件,其中設置( os , arch , compiler , build_type )從CMAKE檢測到的當前構建中檢測到的內容。柯南使用兩個配置文件用於依賴關係,主機和構建配置文件。您可以在這裡閱讀有關它們的更多信息。在Cmake-Conan中,默認行為如下:
default Conan配置文件。default柯南配置文件。請注意,要使上述工作,必須已經存在default文件。如果不是這樣, cmake-conan將調用Conan的自動檢測機制,該機制試圖猜測系統默認設置。
如果您需要自定義配置文件,則可以通過修改CONAN_HOST_PROFILE和CONAN_BUILD_PROFILE的值並將其作為CMAKE CACHE變量傳遞來做到這一點。一些例子:
-DCONAN_HOST_PROFILE="default;auto-cmake" :按照上述執行自動檢測,並將其他任何事物的默認配置文件退回(默認行為)。-DCONAN_HOST_PROFILE=clang16 :請勿執行自動檢測,並使用conan profiles文件夾中必須存在的clang16配置文件(請參閱文檔。)。-DCONAN_BUILD_PROFILE="/path/to/profile" :可或,提供可能在文件系統中任何地方的配置文件的路徑。-DCONAN_HOST_PROFILE="default;custom" :semi-Colon分離的配置文件列表。將使用一個複合配置文件(請參閱DOCS) - 從左到右組合,右側的優先級最高。CMAKE-CONAN依賴提供者將自動檢索並傳遞上述配置文件信息。如果需要進一步自定義conan install命令調用,則可以使用CONAN_INSTALL_ARGS變量。
CONAN_INSTALL_ARGS初始化為通過--build=missing 。如果您自定義此變量,請注意,除非您指定--build標誌,否則Conan將恢復其默認行為。conanfile.txt|.py的路徑和輸出格式( --format )。--build=never;--update;--lockfile-out='' 有一些測試,例如,您可以在python上運行,例如:
$ pytest -rA