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

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

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

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

  • Ավելացվել է «Ninja Multi-Config»-ի վրա հիմնված հավաքման սցենարների նոր գեներատոր՝ «Ninja Multi-Config», որը տարբերվում է հին գեներատորից միանգամից մի քանի հավաքման կոնֆիգուրացիաներ մշակելու ունակությամբ:
  • Visual Studio-ի հավաքման սցենարների գեներատորում հայտնվեց յուրաքանչյուր կոնֆիգուրացիայի հետ կապված սկզբնաղբյուր ֆայլեր սահմանելու ունակություն (ըստ կազմաձևման աղբյուրների):
  • Կոմպիլյատորի պարամետրերը (Compile Features) կարգավորելու գործիքներին ավելացվել է CUDA-ի համար մետա պարամետրեր սահմանելու հնարավորությունը («cuda_std_03», «cuda_std_14» և այլն):
  • Ավելացվել են «CMAKE_CUDA_RUNTIME_LIBRARY» և «CUDA_RUNTIME_LIBRARY» փոփոխականները՝ CUDA-ն օգտագործելիս գործարկման ժամանակի գրադարանների տեսակն ընտրելու համար:
  • Ավելացրել է «FindCUDAToolkit» մոդուլը՝ համակարգում հասանելի CUDA գործիքակազմը որոշելու համար՝ առանց CUDA լեզուն միացնելու:
  • «--debug-find» հրամանն ավելացվել է cmake-ին՝ որոնման գործողություններ կատարելիս լրացուցիչ ընթեռնելի ախտորոշում ստանալու համար: Նմանատիպ նպատակների համար ավելացվել է CMAKE_FIND_DEBUG_MODE փոփոխականը:
  • «FindCURL» մոդուլին ավելացվել է CURL գործիքների որոնման աջակցություն՝ «CURLConfig.cmake» կազմաձևման ֆայլերի միջոցով: Այս վարքագիծն անջատելու համար տրամադրվում է CURL_NO_CURL_CMAKE փոփոխականը:
  • FindPython մոդուլն ավելացրել է Python բաղադրիչները որոնելու հնարավորությունը վիրտուալ միջավայրերում, որոնք կառավարվում են «conda»-ի միջոցով:
  • ctest կոմունալն ավելացրել է «--no-tests=[error|անտեսել]» ընտրանքները՝ սահմանելու վարքագիծը թեստերի բացակայության դեպքում, և «--repeat»՝ թեստերի վերագործարկման պայմանները սահմանելու համար (մինչև անցնել, ժամանակից հետո):
  • INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES և INTERFACE_LINK_DEPENDS կառուցման թիրախային հատկություններն այժմ ներառված են ստատիկ կառուցված գրադարանների ներքին կախվածությունների շարքում:
  • MinGW գործիքակազմն օգտագործելիս, find_library հրամանով DLL ֆայլերի որոնումը լռելյայն անջատված է (փոխարենը, լռելյայն փորձը «.dll.a» գրադարանների ներմուծումն է):
  • Ninja գեներատորում նինջա օգտակար գործիքն ընտրելու տրամաբանությունն այժմ կախված չէ գործարկվող ֆայլի անունից. օգտագործվում է PATH միջավայրի փոփոխականով սահմանված արահետներում հայտնաբերված առաջին ninja-build, ninja կամ samu կոմունալը:
  • cmake-ին ավելացվել է «-E rm» հրաման, որը կարող է օգտագործվել առանձին «-E remove» և «-E remove_directory» հրամանների փոխարեն ֆայլեր և գրացուցակներ հեռացնելու համար:

Source: opennet.ru

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