Lëshimi i sistemit të ndërtimit CMake 3.16

prezantuar lëshimi i një gjeneratori të skripteve të hapura ndër-platformë Bëni 3.16, i cili vepron si një alternativë për Autotools dhe përdoret në projekte të tilla si KDE, LLVM/Clang, MySQL, MariaDB, ReactOS dhe Blender. Kodi CMake është shkruar në C++ dhe shpërndahet nën licencën BSD.

CMake është i dukshëm për ofrimin e një gjuhe të thjeshtë skriptimi, një mjet për të zgjeruar funksionalitetin përmes moduleve, një numër minimal varësish (pa lidhje me M4, Perl ose Python), mbështetje për caching, praninë e mjeteve për përpilim të kryqëzuar, mbështetje për gjenerimin e ndërtimit skedarë për një gamë të gjerë sistemesh ndërtimi dhe përpiluesish, prania e shërbimeve ctest dhe cpack për përcaktimin e skripteve të testimit dhe ndërtimit të paketave, mjeti cmake-gui për vendosjen interaktive të parametrave të ndërtimit.

Kryesore përmirësime:

  • Mbështetje e shtuar për objektivin C ("OBJC") dhe gjuhët objektive
    C++ ("OBJCXX"), i cili mund të aktivizohet nëpërmjet komandave project() dhe enable_language(), pas së cilës kodi në skedarët ".m" ".mm" do të përpilohet si kod Objektivi C dhe Objektivi C++, dhe jo si C++, siç ishte më parë;

  • Mbështetje e shtuar për përpiluesin Clang në platformën Solaris;
  • Shtuar opsione të reja të linjës së komandës: “cmake -E true|false” për të printuar kodet e kthimit 0 dhe 1; "cmake --trace-redirect=" për të ridrejtuar informacionin e gjurmës në një skedar
    "stderr"; komanda "cmake --loglevel" është riemërtuar në "--log-level" për ta sjellë atë në përputhje me emrat e komandave të tjera;

  • Shtoi komandën “target_precompile_headers()” për të renditur listën e skedarëve të titullit të përdorur gjatë parapërpilimit (zvogëlon kohën e ndërtimit);
  • U shtua veçoria "UNITY_BUILD", e cila aktivizon modalitetin e grupit për përpunimin e skedarëve burimor në gjeneratorë për të shpejtuar ndërtimin;
  • U shtuan komandat “find_file()”, “find_library()”, “find_path()”,
    "find_package()" dhe "find_program()" për të kërkuar skedarë, biblioteka, shtigje, paketa dhe ekzekutues sipas variablave që përcaktojnë shtigjet e kërkimit për kategori të ndryshme skedarësh.
    Ndryshoret "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH", "CMAKE_FIND_USE_CMAKE_PATH", "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH", "CMAKE_FIND_USE_PACKAGE_ROOT_PATH", "CMAKE_ENTH_FIND" USE_PACKAGE_REGIST" përdoren për të kontrolluar shtigjet e kërkimit bazë RY";

  • Shtoi modalitetin "file(GET_RUNTIME_DEPENDENCIES)" në komandën "file()", i cili ju lejon të rikuperoni në mënyrë rekursive listën e bibliotekave të përdorura kur lidhni në mënyrë dinamike një skedar ose bibliotekë të ekzekutueshme. Modaliteti zëvendësoi komandën GetPrerequisites(), e cila tani është zhvlerësuar;
  • Komanda “ctest(1)” zbaton aftësinë për të serializuar testet bazuar në burimet e kërkuara për çdo test;
  • Ndryshorja "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" është zhvlerësuar dhe duhet të zëvendësohet me "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Mbështetje e përmirësuar e platformës AIX. Kur përdorni veçorinë "ENABLE_EXPORTS", përveç skedarit të ekzekutueshëm, tani krijohet një skedar importi për lidhësin, i ruajtur me shtesën ".imp". Në shtojcat e krijuara duke thirrur "add_library()" me opsionin "MODULE", ky skedar mund të përdoret kur lidhet duke përdorur komandën "target_link_libraries()". Lidhja e kohës së funksionimit në AIX është çaktivizuar si parazgjedhje sepse CMake tani ofron të gjithë informacionin e nevojshëm të simboleve për lidhjen në kohën e ngarkimit. Për të përdorur lidhjen në kohën e ekzekutimit të bibliotekave dinamike ose moduleve të ngarkueshme, duhet të specifikoni në mënyrë eksplicite opsionet "-Wl, -G" në listat e flamujve të nisjes së lidhësit, të përcaktuara përmes variablave "CMAKE_SHARED_LINKER_FLAGS" dhe "CMAKE_MODULE_LINKER_FLAGS".

Burimi: opennet.ru

Shto një koment