CMake 3.16 build համակարգի թողարկում

Ներկայացվել է խաչաձև հարթակի բաց կառուցման սցենարների գեներատորի թողարկում CMake 3.16, որը հանդես է գալիս որպես Autotools-ի այլընտրանք և օգտագործվում է այնպիսի նախագծերում, ինչպիսիք են KDE, LLVM/Clang, MySQL, MariaDB, ReactOS և Blender: CMake կոդը գրված է C++-ով և տարածվում է BSD լիցենզիայի ներքո:

CMake-ը հատկանշական է սկրիպտավորման պարզ լեզու տրամադրելու, մոդուլների միջոցով ֆունկցիոնալությունը ընդլայնելու միջոցի, նվազագույն թվով կախվածությունների (առանց M4-ի, Perl-ի կամ Python-ի հետ կապվելու), քեշավորման աջակցությամբ, խաչաձեւ կոմպիլյացիայի գործիքների առկայությամբ, կառուցման ստեղծման աջակցությամբ: ֆայլեր կառուցման համակարգերի և կոմպիլյատորների լայն շրջանակի համար, առկայություն ctest և cpack կոմունալ ծառայություններ՝ թեստային սկրիպտների և կառուցման փաթեթների սահմանման համար, cmake-gui կոմունալ՝ ինտերակտիվ build պարամետրերը սահմանելու համար:

Հիմնական բարելավումներ:

  • Ավելացվեց Objective C («OBJC») և Objective լեզուների աջակցություն
    C++ («OBJCXX»), որը կարելի է միացնել project() և enable_language() հրամանների միջոցով, որից հետո «.m» «.mm» ֆայլերի կոդը կկազմվի որպես Objective C և Objective C++ կոդ, այլ ոչ թե որպես: C++, ինչպես նախկինում էր;

  • Solaris հարթակի վրա Clang կոմպիլյատորի համար ավելացված աջակցություն;
  • Ավելացվեց հրամանի տողի նոր տարբերակներ՝ «cmake -E true|false»՝ վերադարձի 0 և 1 կոդերը տպելու համար; «cmake --trace-redirect=" հետագծային տեղեկատվությունը ֆայլի փոխարեն վերահղելու համար
    «stderr»; «cmake --loglevel» հրամանը վերանվանվել է «--log-level»՝ այն համապատասխանեցնելու մյուս հրամանների անուններին.

  • Ավելացրել է «target_precompile_headers()» հրամանը՝ նախաքոմպիլյացիայի ժամանակ օգտագործվող վերնագրի ֆայլերի ցանկը ցուցակելու համար (նվազեցնում է ստեղծման ժամանակը);
  • Ավելացվեց «UNITY_BUILD» հատկությունը, որն ակտիվացնում է խմբաքանակի ռեժիմը՝ գեներատորներում աղբյուրի ֆայլերը մշակելու համար՝ կառուցումն արագացնելու համար;
  • Ավելացվել են «find_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_PATH», «CMAKE_FIND_USE_CMAKE_PATH», «CMAKE_FIND_USE_PACKAGE_ROOT_PATH», «CMAKE_FIND_USE_CMAKE_PATH» փոփոխականները 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» ընդլայնմամբ: «ADd_library()»-ը «MODULE» տարբերակով «add_library()» կանչով ստեղծված պլագիններում այս ֆայլը կարող է օգտագործվել «target_link_libraries()» հրամանի միջոցով կապակցվելիս: AIX-ի վրա գործարկման ժամանակի միացումը լռելյայն անջատված է, քանի որ CMake-ն այժմ տրամադրում է բոլոր անհրաժեշտ սիմվոլային տեղեկությունները բեռնման ժամանակ կապելու համար: Դինամիկ գրադարանների կամ բեռնվող մոդուլների գործարկման ժամանակի կապակցում օգտագործելու համար դուք պետք է հստակորեն նշեք «-Wl, -G» տարբերակները կապող գործարկման դրոշակների ցանկում, որոնք սահմանված են «CMAKE_SHARED_LINKER_FLAGS» և «CMAKE_MODULE_LINKER_FLAGS» փոփոխականների միջոցով:

Source: opennet.ru

Добавить комментарий