Vrystelling van CMake 3.16-boustelsel

Bekendgestel vrystelling van 'n kruis-platform oopbou script generator CMaak 3.16, wat dien as 'n alternatief vir Autotools en word gebruik in projekte soos KDE, LLVM/Clang, MySQL, MariaDB, ReactOS en Blender. Die CMake-kode is in C++ geskryf en onder die BSD-lisensie versprei.

CMake is opvallend vir die verskaffing van 'n eenvoudige skriftaal, 'n manier om funksionaliteit deur modules uit te brei, 'n minimale aantal afhanklikhede (geen binding aan M4, Perl of Python), kasondersteuning, die teenwoordigheid van gereedskap vir kruissamestelling, ondersteuning vir die generering van bou. lêers vir 'n wye reeks boustelsels en samestellers, die teenwoordigheid ctest- en cpack-hulpmiddels vir die definisie van toetsskrifte en boupakkette, cmake-gui-hulpmiddel om bouparameters interaktief in te stel.

Die belangrikste verbeterings:

  • Bygevoeg ondersteuning vir Objective C ("OBJC") en Objective-tale
    C++ ("OBJCXX"), wat geaktiveer kan word via die project() en enable_language() opdragte, waarna die kode in die ".m" ".mm" lêers as Objective C en Objective C++ kode sal saamstel, eerder as as as C++, soos dit voorheen was;

  • Bygevoeg ondersteuning vir die Clang samesteller op die Solaris platform;
  • Nuwe opdragreëlopsies bygevoeg: "cmake -E true|false" om terugkeerkodes 0 en 1 te druk; "cmake --trace-redirect=" om spoorinligting eerder na 'n lêer te herlei
    "stderr"; die "cmake --loglevel"-opdrag is hernoem na "--log-level" om dit in lyn te bring met die name van die ander opdragte;

  • Het die "target_precompile_headers()"-opdrag bygevoeg om die lys van koplêers wat tydens voorafsamestelling gebruik word, te lys (verminder boutyd);
  • Het die "UNITY_BUILD"-eienskap bygevoeg, wat die bondelmodus aktiveer vir die verwerking van bronlêers in kragopwekkers om die bou te bespoedig;
  • Bygevoeg opdragte "find_file()", "find_library()", "find_path()",
    "find_package()" en "find_program()" om te soek na lêers, biblioteke, paaie, pakkette en uitvoerbare programme volgens veranderlikes wat soekpaaie vir verskeie kategorieë lêers definieer.
    Die veranderlikes "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_EN_USE_CEMA_USE_USE_USE_USE_USE_USE_USE_USE_USE_USE_USE_USE" RE" word gebruik om die basis soekpaaie GISTRY te beheer";

  • Het die "file(GET_RUNTIME_DEPENDENCIES)"-modus by die "file()"-opdrag gevoeg, wat jou toelaat om rekursief die lys biblioteke te herwin wat gebruik word wanneer 'n uitvoerbare lêer of biblioteek dinamies gekoppel word. Die modus het die GetPrerequisites()-opdrag vervang, wat nou afgekeur is;
  • Die "ctest(1)"-opdrag implementeer die vermoë om toetse te serialiseer gebaseer op die hulpbronne wat vir elke toets benodig word;
  • Die veranderlike "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" is opgeskort en moet vervang word deur "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Verbeterde AIX platform ondersteuning. Wanneer die "ENABLE_EXPORTS"-eienskap gebruik word, bykomend tot die uitvoerbare lêer, word 'n invoerlêer vir die skakelaar nou gegenereer, gestoor met die ".imp"-uitbreiding. In inproppe wat geskep is deur "add_library()" met die "MODULE"-opsie te roep, kan hierdie lêer gebruik word wanneer jy met die "target_link_libraries()"-opdrag skakel. Looptydskakeling op AIX is by verstek gedeaktiveer omdat CMake nou al die nodige simboolinligting verskaf vir skakeling tydens laaityd. Om runtime-koppeling van dinamiese biblioteke of laaibare modules te gebruik, moet jy die opsies "-Wl, -G" uitdruklik spesifiseer in die lyste van koppel-opstartvlae, gedefinieer deur die veranderlikes "CMAKE_SHARED_LINKER_FLAGS" en "CMAKE_MODULE_LINKER_FLAGS".

Bron: opennet.ru

Voeg 'n opmerking