CMake 3.17.0 бүтээх системийн хувилбар

Оруулсан платформ хоорондын нээлттэй скрипт үүсгэгчийг гаргах CMake 3.17, энэ нь Autotools-ийн өөр хувилбар болж, KDE, LLVM/Clang, MySQL, MariaDB, ReactOS болон Blender зэрэг төслүүдэд ашиглагддаг. CMake код нь C++ хэл дээр бичигдсэн бөгөөд BSD лицензийн дагуу түгээгддэг.

CMake нь энгийн скрипт хэл, модулиар дамжуулан функцийг өргөтгөх хэрэгсэл, хамгийн бага тооны хамаарал (M4, Perl эсвэл Python-д холбогдоогүй), кэшийн дэмжлэг, хөндлөн эмхэтгэл хийх хэрэгслүүд, бүтэц үүсгэх дэмжлэг зэргээрээ онцлог юм. өргөн хүрээний бүтээх систем болон хөрвүүлэгчийн файлууд, тестийн скриптүүд болон бүтээх багцуудыг тодорхойлоход зориулагдсан ctest болон cpack хэрэгслүүд, бүтээх параметрүүдийг интерактив байдлаар тохируулах cmake-gui хэрэгсэл.

Үндсэн сайжруулалт:

  • Нинжа хэрэгслийн хэрэгсэлд суурилсан шинэ угсралтын скрипт үүсгэгч нэмэгдсэн - "Ninja Multi-Config" нь хуучин генератороос хэд хэдэн угсралтын тохиргоог нэгэн зэрэг боловсруулах чадвараараа ялгаатай.
  • Visual Studio-д зориулсан угсралтын скрипт үүсгэгч дотор гарч ирэв тохиргоо бүртэй холбоотой эх файлуудыг тодорхойлох чадвар (тохиргоо бүрийн эх сурвалж).
  • CUDA-д зориулсан мета параметрүүдийг тохируулах чадварыг ("cuda_std_03", "cuda_std_14" гэх мэт) хөрвүүлэгчийн параметрүүдийг тохируулах хэрэгслүүдэд (Хөрвүүлэх онцлог) нэмсэн.
  • CUDA ашиглах үед ажиллах үеийн номын сангийн төрлийг сонгохын тулд "CMAKE_CUDA_RUNTIME_LIBRARY" болон "CUDA_RUNTIME_LIBRARY" хувьсагчуудыг нэмсэн.
  • CUDA хэлийг идэвхжүүлэлгүйгээр систем дээр байгаа CUDA хэрэгслийн багцыг тодорхойлохын тулд "FindCUDAToolkit" модулийг нэмсэн.
  • Хайлтын ажиллагааг гүйцэтгэх үед уншигдахуйц нэмэлт оношилгоо гаргахын тулд cmake-д "--debug-find" командыг нэмсэн. Үүнтэй төстэй зорилгоор CMAKE_FIND_DEBUG_MODE хувьсагчийг нэмсэн.
  • "FindCURL" модульд cmake-ээр үүсгэсэн "CURLConfig.cmake" тохиргооны файлуудыг ашиглан CURL хэрэгслийг хайх дэмжлэгийг нэмсэн. Энэ үйлдлийг идэвхгүй болгохын тулд CURL_NO_CURL_CMAKE хувьсагчийг өгсөн болно.
  • FindPython модуль нь "conda" ашиглан удирддаг виртуал орчинд Python бүрэлдэхүүн хэсгүүдийг хайх чадварыг нэмсэн.
  • ctest хэрэгсэл нь туршилт хийгдээгүй тохиолдолд зан төлөвийг тодорхойлохын тулд "--no-tests=[error|idore]" сонголтыг нэмсэн ба "--repeat"-ыг дахин ажиллуулах нөхцөлийг тохируулах (дамжих хүртэл, хугацаа дууссаны дараа).
  • INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES болон INTERFACE_LINK_DEPENDS угсралтын зорилтот шинж чанаруудыг статик байдлаар угсарсан номын сангийн дотоод хамаарал дунд шилжүүлсэн.
  • MinGW хэрэгслийг ашиглах үед find_library командын тусламжтайгаар DLL файл хайх нь анхдагчаар идэвхгүй болно (оронд нь ".dll.a" номын санг импортлохыг анхдагч оролдлого хийдэг).
  • Нинжа үүсгэгч дэх нинжа хэрэгслийг сонгох логик нь одоо гүйцэтгэх боломжтой файлын нэрээс хамаарахгүй - PATH орчны хувьсагчаар тодорхойлогдсон замуудаас олдсон анхны нинжа бүтээх, нинжа эсвэл саму хэрэгслийг ашиглаж байна.
  • Тусдаа "-E remove" болон "-E remove_directory" командын оронд файл, санг устгахад ашиглаж болох "-E rm" командыг cmake-д нэмсэн.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх