Famoahana ny rafitra fananganana CMake 3.16

nampidirina famotsorana mpamorona script open build cross-platform CMmake 3.16, izay miasa ho solon'ny Autotools ary ampiasaina amin'ny tetikasa toy ny KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ary Blender. Ny kaody CMake dia voasoratra amin'ny C++ ary zaraina amin'ny alΓ lan'ny fahazoan-dΓ lana BSD.

Ny CMake dia miavaka amin'ny fanomezana fiteny tsotra amin'ny scripting, fomba fanitarana ny fiasa amin'ny alΓ lan'ny maody, fiankinan-doha kely indrindra (tsy misy mifamatotra amin'ny M4, Perl na Python), fanohanana ny caching, ny fisian'ny fitaovana ho an'ny fanangonana cross-compilation, fanohanana amin'ny famoronana fananganana. rakitra ho an'ny rafitra fananganana sy compiler isan-karazany, ny fisian'ny ctest sy ny cpack utility ho an'ny famaritana ny sora-baventy fitsapana sy ny fananganana fonosana, ny cmake-gui ampiasaina amin'ny fametrahana marimaritra iraisana amin'ny fananganana.

tena fanatsarana:

  • Fanohanana fanampiny ho an'ny fiteny Objective C (β€œOBJC”) sy Objective
    C++ ("OBJCXX"), izay azo alefa amin'ny alalan'ny baiko project() sy enable_language(), ary aorian'izay dia hatambatra ho code Objective C sy Objective C++ ny code ao amin'ny rakitra ".m" ".mm", fa tsy hoe C++, toy ny teo aloha;

  • Fanampiana fanampiny ho an'ny Clang compiler amin'ny sehatra Solaris;
  • Nampiana safidy andalana baiko vaovao: "cmake -E marina|diso" hanontana kaody miverina 0 sy 1; "cmake --trace-redirect=" hamerenana ny mombamomba ny trace amin'ny rakitra iray
    "stderr"; ny baiko "cmake --loglevel" dia novana ho "--log-level" mba hampifanaraka azy amin'ny anaran'ny baiko hafa;

  • Nampiana ny baiko "target_precompile_headers()" mba hitanisana ny lisitry ny fisie lohapejy ampiasaina mandritra ny precompilation (mampihena ny fotoana fananganana);
  • Nampiana ny fananana "UNITY_BUILD", izay manetsika ny maody batch amin'ny fanodinana ireo rakitra loharano ao amin'ny mpamokatra mba hanafaingana ny fananganana;
  • Nampiana baiko "find_file()", "find_library()", "find_path()",
    "find_package()" sy "find_program()" hitadiavana rakitra, tranomboky, lalana, fonosana ary azo tanterahana araka ny fari-piadidiana izay mamaritra ny lalan'ny fikarohana ho an'ny sokajy isan-karazany.
    Ny variables "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_SYSTEM_HNDAGE_ENVI" ary "CMAKE_FIND_USE_SYSTEM_HNDAGE" dia ampiasaina mifehy ny lalan'ny fikarohana fototra RY";

  • Nampiana ny maody β€œfile(GET_RUNTIME_DEPENDENCIES)” amin'ny baiko β€œfile()”, izay ahafahanao mamerina mamerina indray ny lisitr'ireo tranomboky ampiasaina rehefa mampifandray amina rakitra na tranomboky azo tanterahina. Ny fomba dia nisolo ny GetPrequisites() baiko, izay efa tsy ampiasaina intsony;
  • Ny baiko "ctest(1)" dia mampihatra ny fahafahana manao andiany fitsapana mifototra amin'ny loharano ilaina amin'ny fitsapana tsirairay;
  • Ny fari-piainana "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" dia tsy ampiasaina ary tokony hosoloina "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Fanohanana sehatra AIX nohatsaraina. Rehefa mampiasa ny fananana "ENABLE_EXPORTS", ankoatry ny rakitra azo tanterahana, dia misy rakitra fanafarana ho an'ny mpampitohy, voatahiry miaraka amin'ny fanitarana ".imp". Ao amin'ny plugins noforonina amin'ny fiantsoana "add_library()" miaraka amin'ny safidy "MODULE", ity rakitra ity dia azo ampiasaina rehefa mampifandray amin'ny baiko "target_link_libraries()". Ny fampifandraisana amin'ny fotoana fampandehanana amin'ny AIX dia kilemaina amin'ny alΓ lan'ny default satria ny CMake izao dia manome ny fampahalalana marika ilaina rehetra amin'ny fampifandraisana amin'ny fotoana entana. Raha te hampiasa fampifandraisana amin'ny tranomboky mavitrika na maody azo entina ianao dia tsy maintsy mamaritra mazava tsara ny safidy "-Wl, -G" ao amin'ny lisitry ny saina fanombohana mpampitohy, voafaritra amin'ny alΓ lan'ny variables "CMAKE_SHARED_LINKER_FLAGS" sy "CMAKE_MODULE_LINKER_FLAGS".

Source: opennet.ru

Add a comment