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

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

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

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

  • Objective C (“OBJC”) болон Objective хэлний дэмжлэгийг нэмсэн
    Project() болон enable_language() командуудаар дамжуулан идэвхжүүлэх боломжтой C++ ("OBJCXX") ба үүний дараа ".m" ".mm" файл дахь код нь Objective C болон Objective C++ код хэлбэрээр хөрвүүлэгдэх болно. Өмнө нь байсан шиг C++;

  • Solaris платформ дээрх Clang хөрвүүлэгчийн дэмжлэгийг нэмсэн;
  • Шинэ командын мөрийн сонголтуудыг нэмсэн: 0 ба 1 буцах кодыг хэвлэхийн тулд “cmake -E true|false”; "cmake --trace-redirect="-ийн оронд ул мөрийн мэдээллийг файл руу дахин чиглүүлэх
    "stderr"; "cmake --loglevel" командыг бусад командуудын нэртэй нийцүүлэхийн тулд "--log-level" болгон өөрчилсөн;

  • Урьдчилан эмхэтгэх явцад ашигласан толгой файлуудын жагсаалтыг жагсаахын тулд “target_precompile_headers()” командыг нэмсэн (үүсгэх хугацааг багасгадаг);
  • Бүтэцийг хурдасгахын тулд генератор дахь эх файлуудыг боловсруулах багц горимыг идэвхжүүлдэг "UNITY_BUILD" шинж чанарыг нэмсэн;
  • “Fid_file()”, “find_library()”, “find_path()”, командуудыг нэмсэн.
    "find_package()" болон "find_program()" нь файл, номын сан, зам, багц болон гүйцэтгэгдэх файлуудыг янз бүрийн категорийн файлуудын хайлтын замыг тодорхойлсон хувьсагчийн дагуу хайх.
    Хувьсагчууд "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH", "CMAKE_FIND_USE_CMAKE_PATH", "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH", "CMAKE_FIND_USE_PACKAGE_ROOT_PATHENEMPATHIN_MATH_MUSE_ON "" болон" CMAKE_FIND_USE_PACKAGE_REGIST" нь RY хайлтын үндсэн замыг удирдахад ашиглагддаг";

  • "file()" командад "file(GET_RUNTIME_DEPENDENCIES)" горимыг нэмсэн бөгөөд энэ нь гүйцэтгэх боломжтой файл эсвэл номын санг динамикаар холбоход ашигласан сангуудын жагсаалтыг рекурсив байдлаар сэргээх боломжийг олгодог. Уг горим нь одоо хуучирсан GetPrerequisites() командыг сольсон;
  • "ctest(1)" команд нь тест бүрт шаардагдах нөөцөд тулгуурлан тестүүдийг цуваа болгох чадварыг хэрэгжүүлдэг;
  • "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" хувьсагчийг хуучирсан бөгөөд "CMAKE_FIND_USE_PACKAGE_REGISTRY" гэж солих шаардлагатай;
  • Сайжруулсан AIX платформын дэмжлэг. "ENABLE_EXPORTS" шинж чанарыг ашиглах үед гүйцэтгэгдэх файлаас гадна ".imp" өргөтгөлөөр хадгалагдсан холбогчийн импортын файлыг үүсгэсэн. "MODULE" сонголттой "add_library()"-г дуудаж үүсгэсэн залгаасуудад энэ файлыг "target_link_libraries()" командыг ашиглан холбоход ашиглаж болно. CMake одоо ачаалах үед холбоход шаардлагатай тэмдэгтийн мэдээллийг өгдөг тул AIX дээр ажиллах цагийг холбох нь анхдагчаар идэвхгүй болсон. Динамик номын сан эсвэл ачаалах боломжтой модулиудын ажиллах цагийн холболтыг ашиглахын тулд та "CMAKE_SHARED_LINKER_FLAGS" болон "CMAKE_MODULE_LINKER_FLAGS" хувьсагчаар тодорхойлогдсон холбогч эхлүүлэх тугуудын жагсаалтад "-Wl, -G" сонголтуудыг тодорхой зааж өгөх ёстой.

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

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