
ผู้ให้บริการพึ่งพา CMAKE สำหรับผู้จัดการแพ็คเกจ CONAN C และ C ++
cmake-conan |
|---|
การรวม cmake-conan ในสาขา develop2 นี้สำหรับ Conan 2 โดยใช้ผู้ให้บริการการพึ่งพา CMake แม้ว่าจะยังไม่ได้เปิดตัวเป็น 1.0 แต่ก็มีความเสถียรมากขึ้นพร้อมการผลิตและแนะนำกว่า cmake-conan มรดกสำหรับ Conan 1 โปรดอัปเดตเป็น Conan 2 และการรวม cmake-conan ใหม่ในสาขา develop2 นี้ |
ข้อกำหนดเบื้องต้น:
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 สำหรับตัวอย่างหรือตรวจสอบเอกสาร conan สำหรับ conanfile : .txt docs, .py docs
เมื่อเรียกใช้ cmake ครั้งแรกเพื่อกำหนดค่าโครงการให้ผ่าน -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=[path-to-cmake-conan]/conan_provider.cmake สิ่งนี้จะช่วยให้มั่นใจได้ว่า conan install จะถูกเรียกใช้จากภายใน cmake การรวมนี้ ไม่จำเป็นต้องมีการเปลี่ยนแปลงใด ๆ กับสคริปต์ 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 Generator - สำหรับการตั้งค่าการสร้างที่ CMakeToolchain ให้ไว้ (ตัวอย่างเช่นคอมไพเลอร์เองหรือการตั้งค่าบิลด์ทั่วโลกอื่น ๆ ) โปรดเรียกร้องให้โคนันแยกกันตามเอกสารfind_package ของ CMake ได้ สำหรับการพึ่งพาที่มีตรรกะนอก find_package ตัวอย่างเช่นโดยการโทรโดยตรงไปยัง find_program , find_library , find_path หรือ find_file สิ่งเหล่านี้อาจทำงานไม่ถูกต้องCMAKE_BUILD_TYPE ที่ถูกต้อง (ไม่สามารถว่างเปล่าได้) ผู้ให้บริการการพึ่งพา CMake-Conan จะสร้างโปรไฟล์โคนันซึ่งการตั้งค่า ( os , arch , compiler , build_type ) จะถูกเรียกคืนจากสิ่งที่ CMake ตรวจพบสำหรับการสร้างปัจจุบัน โคนันใช้สองโปรไฟล์สำหรับการพึ่งพา โฮสต์ และโปรไฟล์ การสร้าง คุณสามารถอ่านเพิ่มเติมเกี่ยวกับพวกเขาได้ที่นี่ ใน cmake-conan พฤติกรรมเริ่มต้นมีดังนี้:
defaultdefault โปรดทราบว่าสำหรับการทำงานข้างต้นจะต้องมีโปรไฟล์ default ต้นอยู่แล้ว หากไม่เป็นเช่นนั้น cmake-conan จะเรียกใช้กลไกการตรวจสอบอัตโนมัติของโคนันซึ่งพยายามคาดเดาค่าเริ่มต้นของระบบ
หากคุณต้องการปรับแต่งโปรไฟล์คุณสามารถทำได้โดยการปรับเปลี่ยนค่าของ CONAN_HOST_PROFILE และ CONAN_BUILD_PROFILE และส่งผ่านเป็นตัวแปรแคช CMake ตัวอย่างบางส่วน:
-DCONAN_HOST_PROFILE="default;auto-cmake" : ดำเนินการตรวจสอบอัตโนมัติตามที่อธิบายไว้ข้างต้นและกลับไปยังโปรไฟล์เริ่มต้นสำหรับสิ่งอื่นใด (พฤติกรรมเริ่มต้น)-DCONAN_HOST_PROFILE=clang16 : อย่าทำการตรวจจับอัตโนมัติและใช้โปรไฟล์ clang16 ซึ่งต้องมีอยู่ในโฟลเดอร์โปรไฟล์โคนัน (ดูเอกสาร)-DCONAN_BUILD_PROFILE="/path/to/profile" : อีกทางเลือกหนึ่งให้พา ธ ไปยังไฟล์โปรไฟล์ที่อาจอยู่ที่ใดก็ได้ในระบบไฟล์-DCONAN_HOST_PROFILE="default;custom" : รายการโปรไฟล์กึ่งโคโลลอน โปรไฟล์สารประกอบจะถูกใช้ (ดูเอกสาร) - ถูกจัดทำจากซ้ายไปขวาโดยที่ขวามีลำดับความสำคัญสูงสุด ผู้ให้บริการการพึ่งพา CMake-Conan จะตรวจจับและส่งผ่านข้อมูลโปรไฟล์ตามที่อธิบายไว้ข้างต้น หากจำเป็นต้องมีการปรับแต่งคำสั่ง conan install ต่อไปสามารถใช้ตัวแปร CONAN_INSTALL_ARGS ได้
CONAN_INSTALL_ARGS จะเริ่มต้นที่จะผ่าน --build=missing หากคุณปรับแต่งตัวแปรนี้โปรดทราบว่าโคนันจะเปลี่ยนกลับไปเป็นพฤติกรรมเริ่มต้นเว้นแต่คุณจะระบุธง --build สร้างconanfile.txt|.py และรูปแบบเอาต์พุต ( --format )--build=never;--update;--lockfile-out='' มีการทดสอบบางอย่างคุณสามารถเรียกใช้ใน Python ด้วย pytest ตัวอย่างเช่น:
$ pytest -rA