Liberigo de CMake 3.15 konstrusistemo

okazis liberigo de transplatforma malferma konstrua skriptogeneratoro CMake 3.15, kiu funkcias kiel alternativo al Autotools kaj estas uzata en projektoj kiel KDE, LLVM/Clang, MySQL, MariaDB, ReactOS kaj Blender. La CMake-kodo estas skribita en C++ kaj distribuita sub la BSD-licenco.

CMake estas rimarkinda pro disponigado de simpla skriptlingvo, rimedo por etendi funkciecon per moduloj, minimuma nombro da dependecoj (neniu ligado al M4, Perl aŭ Python), kaŝmemorsubteno, la ĉeesto de iloj por kruc-kompilo, subteno por generado de konstruo. dosieroj por ampleksa gamo de konstrusistemoj kaj kompililoj, la ĉeesto ctest kaj cpack-utiloj por difini testajn skriptojn kaj konstrui pakaĵojn, cmake-gui-utilo por interage agordi konstruajn parametrojn.

Ĉefa plibonigoj:

  • Komenca lingvosubteno estis aldonita al la Ninja-bazita konstruskriptogenerilo Swift, disvolvita de Apple;
  • Aldonita subteno por varianto de la Clang-kompililo por Vindozo kiu konstruas kun la MSVC ABI, sed uzas GNU-stilan komandliniopciojn;
  • Aldonitaj variabloj CMAKE_MSVC_RUNTIME_LIBRARY kaj MSVC_RUNTIME_LIBRARY por elekti rultempajn bibliotekojn uzatajn de kompililoj bazitaj sur MSVC ABI (MS Visual Studio);
  • Por kompililoj kiel MSVC, CMAKE__FLAGS defaŭlte ĉesas listigi avertajn kontrolajn flagojn kiel "/W3";
  • Aldonita generatora esprimo "COMPILE_LANG_AND_ID:" por difini kompililojn por celdosieroj, uzante la CMAKE__COMPILER_ID kaj LANGUAGE variabloj por ĉiu koddosiero;
  • En la generatoraj esprimoj C_COMPILER_ID, CXX_COMPILER_ID,
    CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE,
    COMPILE_LANG_AND_ID kaj PLATFORM_ID aldonis subtenon por kongrui unuopan valoron al listo, kies elementoj estas apartigitaj per komo;

  • Aldonita variablo CMAKE_FIND_PACKAGE_PREFER_CONFIG tiel ke voki find_package() serĉos unue la agordan dosieron de la pako, eĉ se trovilo estas disponebla;
  • Por interfacbibliotekoj, subteno estis aldonita por agordo de la PUBLIC_HEADER kaj PRIVATE_HEADER-ecoj, per kiuj kaplinioj povas esti agorditaj uzante la instal(CEBLOJ) komandon preter la argumentoj PUBLIC_HEADER kaj PRIVATE_HEADER;
  • Aldonita CMAKE_VS_JUST_MY_CODE_DEBUGGING-variablo kaj cela posedaĵo VS_JUST_MY_CODE_DEBUGGING por ebligi "Nur Mia Kodo" reĝimo en la Visual Studio-sencimigilo dum kompilado uzante MSVC cl 19.05 kaj pli novaj versioj;
  • La modulo FindBoost estis restrukturita, kiu nun funkcias pli holisme en Reĝimoj Agordo kaj Modulo en ĉeesto de aliaj serĉmoduloj;
  • La komando message() nun subtenas la tipojn NOTICE, VERBOSE,
    ELSENCIGI kaj SPURO;

  • La komando "export(PACKAGE)" nun faras nenion krom se eksplicite ebligita per la variablo CMAKE_EXPORT_PACKAGE_REGISTRY.

fonto: opennet.ru

Aldoni komenton