Release fan CMake 3.16 build systeem

Yntrodusearre frijlitting fan in cross-platform iepen build skriptgenerator CMake 3.16, dat fungearret as alternatyf foar Autotools en wurdt brûkt yn projekten lykas KDE, LLVM/Clang, MySQL, MariaDB, ReactOS en Blender. De CMake-koade is skreaun yn C++ en ferspraat ûnder de BSD-lisinsje.

CMake is opmerklik foar it leverjen fan in ienfâldige skripttaal, in middel om funksjonaliteit út te wreidzjen fia modules, in minimaal oantal ôfhinklikens (gjin bining oan M4, Perl of Python), caching-stipe, de oanwêzigens fan ark foar cross-kompilaasje, stipe foar it generearjen fan build triemmen foar in breed skala oan build systemen en gearstallers, de oanwêzigens ctest en cpack nutsfoarsjennings foar it definiearjen fan test skripts en gebou pakketten, cmake-gui nut foar ynteraktyf ynstellen build parameters.

haad ferbetterings:

  • Stipe tafoege foar Objective C ("OBJC") en Objective-talen
    C++ ("OBJCXX"), dat kin wurde ynskeakele fia de projekt () en enable_language () kommando's, wêrnei't de koade yn de ".m" ".mm" triemmen sil kompilearje as Objective C en Objective C++ koade, ynstee as as as C++, lykas it earder wie;

  • Stipe tafoege foar de Clang-kompiler op it Solaris-platfoarm;
  • Nije kommandorigelopsjes tafoege: "cmake -E true|false" om weromkommende koades 0 en 1 te printsjen; "cmake --trace-redirect=" om yn plak fan spoarynformaasje nei in bestân troch te lieden
    "stderr"; it kommando "cmake --loglevel" is omneamd ta "--log-level" om it yn oerienstimming te bringen mei de nammen fan 'e oare kommando's;

  • Tafoege it kommando "target_precompile_headers ()" om de list mei koptekstbestannen te listjen dy't brûkt wurde tidens foarkompilaasje (ferminderet boutiid);
  • De eigenskip "UNITY_BUILD" tafoege, dy't de batchmodus aktivearret foar it ferwurkjen fan boarnebestannen yn generators om de bou te fersnellen;
  • Tafoege kommando "find_file()", "find_library()", "find_path()",
    "find_package()" en "find_program()" om te sykjen nei bestannen, biblioteken, paden, pakketten en útfierbere bestannen neffens fariabelen dy't sykpaden definiearje foar ferskate kategoryen fan bestannen.
    De fariabelen "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" en IST" wurde brûkt om de basissykpaden RY te kontrolearjen";

  • De modus "bestân (GET_RUNTIME_DEPENDENCIES)" tafoege oan it kommando "bestân ()", wêrtroch jo de list mei bibleteken rekursyf kinne ophelje dy't brûkt wurde by it dynamysk keppeljen fan in útfierbere triem of bibleteek. De modus ferfong it kommando GetPrerequisites(), dat no ôfret is;
  • It kommando "ctest(1)" ymplementearret de mooglikheid om tests te serialisearjen basearre op de boarnen dy't nedich binne foar elke test;
  • De fariabele "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" is ôfret en moat ferfongen wurde troch "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Ferbettere AIX platfoarm stipe. By it brûken fan it eigenskip "ENABLE_EXPORTS", neist it útfierbere bestân, wurdt no in ymportbestân foar de linker oanmakke, bewarre mei de tafoeging ".imp". Yn plugins makke troch it oproppen fan "add_library()" mei de opsje "MODULE", kin dizze triem brûkt wurde by it keppeljen mei it kommando "target_link_libraries()". Runtime-keppeling op AIX is standert útskeakele, om't CMake no alle nedige symboalynformaasje leveret foar keppeljen by it laden. Om runtime-keppeling fan dynamyske bibleteken of laden modules te brûken, moatte jo de opsjes "-Wl, -G" eksplisyt spesifisearje yn 'e listen fan linker-startflaggen, definieare troch de fariabelen "CMAKE_SHARED_LINKER_FLAGS" en "CMAKE_MODULE_LINKER_FLAGS".

Boarne: opennet.ru

Add a comment