
Penyedia ketergantungan CMake untuk manajer paket Conan C dan C ++.
cmake-conan . |
|---|
Integrasi cmake-conan dalam cabang develop2 ini untuk Conan 2 menggunakan penyedia ketergantungan CMAKE, bahkan jika belum dirilis sebagai 1.0, lebih stabil, siap produksi dan direkomendasikan daripada warisan cmake-conan untuk Conan 1. Perbarui ke Conan 2 dan integrasi cmake-conan yang baru di cabang develop2 ini. |
Prasyarat:
conanfile.txt atau conanfile.py untuk mendaftar dependensi yang diperlukan. Pertama, klon repositori ini di cabang develop2 .
git clone https://github.com/conan-io/cmake-conan.git -b develop2 Repositori ini berisi CMakeLists.txt dengan contoh proyek yang tergantung pada 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 Pastikan Anda telah menempatkan conanfile.txt atau conanfile.py di akar proyek Anda, mendaftarkan kebutuhan Anda. Anda dapat melihat conanfile.txt sebagai contoh, atau memeriksa dokumentasi Conan untuk conanfile : .txt docs, .py docs.
Saat pertama kali meminta CMake untuk mengonfigurasi proyek, lulus -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=[path-to-cmake-conan]/conan_provider.cmake . Ini akan memastikan bahwa conan install dipanggil dari dalam cmake. Integrasi ini tidak perlu membuat perubahan apa pun pada skrip CMakeLists.txt Anda .
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 yang ditentukan - untuk pengaturan pembuatan yang seharusnya disediakan oleh CMakeToolchain (misalnya, kompiler itu sendiri atau pengaturan bangunan global lainnya) Harap minta Conan secara terpisah sesuai dokumentasi.find_package CMake. Untuk dependensi yang memiliki logika di luar find_package , misalnya, dengan melakukan panggilan langsung ke find_program , find_library , find_path atau find_file , ini mungkin tidak berfungsi dengan benar.CMAKE_BUILD_TYPE yang valid (tidak dapat dibiarkan kosong) Penyedia ketergantungan Cmake-Conan akan membuat profil Conan di mana pengaturan ( os , arch , compiler , build_type ) diambil dari apa yang dideteksi CMake untuk build saat ini. Conan menggunakan dua profil untuk dependensi, tuan rumah dan profil build . Anda dapat membaca lebih lanjut tentang mereka di sini. Di Cmake-Conan, perilaku default adalah sebagai berikut:
default .default . Harap dicatat bahwa agar di atas berfungsi, profil default harus sudah ada. Jika tidak, cmake-conan akan memohon mekanisme autodeteksi Conan yang mencoba menebak default sistem.
Jika Anda perlu menyesuaikan profil, Anda dapat melakukannya dengan memodifikasi nilai CONAN_HOST_PROFILE dan CONAN_BUILD_PROFILE dan meneruskannya sebagai variabel cache cmake. Beberapa contoh:
-DCONAN_HOST_PROFILE="default;auto-cmake" : Lakukan autodetection seperti yang dijelaskan di atas, dan mundur ke profil default untuk hal lain (perilaku default).-DCONAN_HOST_PROFILE=clang16 : Jangan melakukan autodetection, dan gunakan profil clang16 yang harus ada di folder Profil Conan (lihat Docs.)-DCONAN_BUILD_PROFILE="/path/to/profile" : Sebagai alternatif, berikan jalur ke file profil yang mungkin ada di mana saja di sistem file.-DCONAN_HOST_PROFILE="default;custom" : daftar profil yang dipisahkan semi-kolon. Profil senyawa akan digunakan (lihat Docs) - dipaksa dari kiri ke kanan, di mana kanan memiliki prioritas tertinggi. Penyedia ketergantungan Cmake-Conan akan secara otomatis dan melewati informasi profil seperti dijelaskan di atas. Jika doa perintah conan install perlu disesuaikan lebih lanjut, variabel CONAN_INSTALL_ARGS dapat digunakan.
CONAN_INSTALL_ARGS diinisialisasi untuk lulus --build=missing . Jika Anda menyesuaikan variabel ini, berhati -hatilah bahwa Conan akan kembali ke perilaku defaultnya kecuali Anda menentukan bendera --build .conanfile.txt|.py , dan format output ( --format ).--build=never;--update;--lockfile-out='' Ada beberapa tes, Anda dapat berlari di Python, dengan Pytest, misalnya:
$ pytest -rA