CMake 3.16 build sistema rilaxx

Introdott rilaxx ta' ġeneratur ta' script ta' bini miftuħ fuq pjattaforma CMake 3.16, li taġixxi bħala alternattiva għall-Autotools u tintuża fi proġetti bħal KDE, LLVM/Clang, MySQL, MariaDB, ReactOS u Blender. Il-kodiċi CMake huwa miktub f'C++ u mqassam taħt il-liċenzja BSD.

CMake huwa notevoli li jipprovdi lingwa ta' skriptjar sempliċi, mezz biex testendi l-funzjonalità permezz ta' moduli, numru minimu ta' dipendenzi (l-ebda rabta ma' M4, Perl jew Python), appoġġ għall-caching, il-preżenza ta' għodod għall-kumpilazzjoni inkroċjata, appoġġ għall-ġenerazzjoni tal-bini fajls għal firxa wiesgħa ta 'sistemi ta' bini u kompilaturi, il-preżenza ctest u utilitajiet cpack għad-definizzjoni ta 'skripts tat-test u pakketti ta' bini, utilità cmake-gui għall-issettjar interattiv ta 'parametri ta' bini.

Il-prinċipali titjib:

  • Appoġġ miżjud għal Objective C (“OBJC”) u lingwi Objective
    C++ ("OBJCXX"), li jista' jiġi attivat permezz tal-kmandi project() u enable_language(), wara li l-kodiċi fil-fajls ".m" ".mm" se jikkompila bħala Objective C u Objective C++ kodiċi, aktar milli bħala C++, kif kien qabel;

  • Appoġġ miżjud għall-kompilatur Clang fuq il-pjattaforma Solaris;
  • Miżjud għażliet ġodda tal-linja tal-kmand: "cmake -E true|false" biex tipprintja l-kodiċijiet tar-ritorn 0 u 1; "cmake --trace-redirect=" biex tindirizza mill-ġdid l-informazzjoni tat-traċċa għal fajl minflok
    "stderr"; il-kmand "cmake --loglevel" ingħata isem ġdid għal "--log-level" biex iġibu konformi mal-ismijiet tal-kmandi l-oħra;

  • Żid il-kmand "target_precompile_headers()" biex telenka l-lista ta 'fajls header użati waqt il-precompilation (inaqqas il-ħin tal-bini);
  • Miżjud il-proprjetà "UNITY_BUILD", li jattiva l-mod tal-lott għall-ipproċessar ta 'fajls tas-sors fil-ġeneraturi biex tħaffef il-bini;
  • Kmandi miżjuda “find_file()”, “find_library()”, “find_path()”,
    "find_package()" u "find_program()" biex tfittex fajls, libreriji, mogħdijiet, pakketti u eżekutibbli skont varjabbli li jiddefinixxu mogħdijiet ta 'tfittxija għal diversi kategoriji ta' fajls.
    Il-varjabbli "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" u "CMAKE_FIND_USE_CMAKE_PATH" u "CMAKE_FIND_USE_SYSTEM_PATH_ENVIRON_SYSTEM_PATH" u "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH" jintużaw biex jikkontrollaw il-mogħdijiet ta' tfittxija bażi RY";

  • Żid il-mod "file(GET_RUNTIME_DEPENDENCIES)" mal-kmand "file()", li jippermettilek tirkupra b'mod rikorsiv il-lista ta' libreriji użati meta tgħaqqad b'mod dinamiku fajl eżekutibbli jew librerija. Il-mod issostitwixxa l-kmand GetPrerequisites(), li issa ġie deprecated;
  • Il-kmand "ctest(1)" jimplimenta l-abbiltà li jiġu serialize testijiet ibbażati fuq ir-riżorsi meħtieġa għal kull test;
  • Il-varjabbli "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" ġiet deprecata u għandha tiġi sostitwita bi "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Appoġġ imtejjeb tal-pjattaforma AIX. Meta tuża l-proprjetà "ENABLE_EXPORTS", minbarra l-fajl eżekutibbli, issa jiġi ġġenerat fajl ta 'importazzjoni għall-linker, salvat bl-estensjoni ".imp". Fil-plugins maħluqa billi ssejjaħ "add_library()" bl-għażla "MODULE", dan il-fajl jista 'jintuża meta jgħaqqad bl-użu tal-kmand "target_link_libraries()". Runtime linking fuq AIX huwa diżattivat awtomatikament minħabba li CMake issa jipprovdi l-informazzjoni kollha meħtieġa dwar is-simbolu għall-linking fil-ħin tat-tagħbija. Biex tuża runtime linking ta 'libreriji dinamiċi jew moduli li jistgħu jitgħabbew, trid tispeċifika b'mod espliċitu l-għażliet "-Wl, -G" fil-listi ta' bnadar tal-istartjar tal-linker, definiti permezz tal-varjabbli "CMAKE_SHARED_LINKER_FLAGS" u "CMAKE_MODULE_LINKER_FLAGS".

Sors: opennet.ru

Żid kumment