Kutulutsidwa kwa CMake 3.16 build system

Yovomerezedwa ndi kutulutsidwa kwa jenereta yotsegulira script yotsegulira nsanja Mpweya 3.16, yomwe imakhala ngati njira ina ya Autotools ndipo imagwiritsidwa ntchito m'mapulojekiti monga KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ndi Blender. Khodi ya CMake imalembedwa mu C ++ ndikugawidwa pansi pa layisensi ya BSD.

CMake ndiwodziwikiratu popereka chilankhulo chosavuta cholembera, njira yowonjezerera magwiridwe antchito kudzera m'ma module, kudalira pang'ono (palibe chomangirira ku M4, Perl kapena Python), chithandizo cha caching, kupezeka kwa zida zophatikizira, kuthandizira popanga zomangamanga. mafayilo amitundu yosiyanasiyana yomangira ndi ma compilers, kupezeka kwa ctest ndi cpack zofunikira pofotokozera zolemba zoyeserera ndi phukusi lomanga, cmake-gui utility pakukhazikitsa magawo omangika molumikizana.

waukulu kuwongolera:

  • Thandizo lowonjezera la Objective C ("OBJC") ndi zilankhulo za Objective
    C++ ("OBJCXX"), yomwe ingathe kuthandizidwa kudzera mu project() ndi enable_language() malamulo, pambuyo pake code yomwe ili mu ".m" ".mm" mafayilo idzapanga monga Objective C ndi Objective C++ code, osati monga C ++, monga zinalili kale;

  • Thandizo lowonjezera la wopanga Clang pa nsanja ya Solaris;
  • Onjezani zosankha zatsopano za mzere wamalamulo: "cmake -E true|false" kuti musindikize ma code 0 ndi 1; "cmake --trace-redirect = "kuwongolera zambiri ku fayilo m'malo mwake
    "chizindikiro"; lamulo la "cmake --loglevel" lasinthidwa kukhala "--log-level" kuti ligwirizane ndi mayina a malamulo ena;

  • Anawonjezera lamulo la "target_precompile_headers()" kuti alembe mndandanda wamafayilo apamutu omwe amagwiritsidwa ntchito pokonzekera (amachepetsa nthawi yomanga);
  • Anawonjezera katundu wa "UNITY_BUILD", omwe amatsegula mawonekedwe a batch kuti akonze mafayilo amtundu mu jenereta kuti afulumizitse kumanga;
  • Malamulo owonjezera "find_file()", "find_library()", "find_path()",
    "find_package()" ndi "find_program()" kuti mufufuze mafayilo, malaibulale, njira, phukusi ndi zoyeserera malinga ndi zosintha zomwe zimatanthawuza njira zosaka zamagulu osiyanasiyana a mafayilo.
    Zosintha "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_CMGIST_ENVI_zogwiritsidwa ntchito" ndi "CMAKE_FIND_USE_SYSTEM_CMGIST_ENVI_ENVI" wongolera njira zosakira zoyambira RY";

  • Onjezani "fayilo(GET_RUNTIME_DEPENDENCIES)" ku lamulo la "file()", lomwe limakupatsani mwayi wopezanso mndandanda wamalaibulale omwe amagwiritsidwa ntchito polumikiza fayilo kapena laibulale yomwe ingagwiritsidwe ntchito. Njirayi idalowa m'malo mwa GetPrerequisites() lamulo, lomwe tsopano lachotsedwa;
  • Lamulo la "ctest(1)" limagwiritsa ntchito kuthekera koyesa mayeso potengera zomwe zimafunikira pamayeso aliwonse;
  • Mtundu wa "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" watsitsidwa ndipo uyenera kusinthidwa ndi "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Kupititsa patsogolo chithandizo cha nsanja ya AIX. Mukamagwiritsa ntchito katundu wa "ENABLE_EXPORTS", kuwonjezera pa fayilo yomwe ingathe kuchitidwa, fayilo yotumizidwa kwa ogwirizanitsa tsopano imapangidwa, yosungidwa ndi ".imp" yowonjezera. M'mapulagini opangidwa poyitana "add_library()" ndi "MODULE", fayiloyi ingagwiritsidwe ntchito polumikiza pogwiritsa ntchito lamulo la "target_link_libraries()". Kulumikizana kwa Runtime pa AIX kumayimitsidwa mwachisawawa chifukwa CMake tsopano imapereka zidziwitso zonse zofunikira zolumikizira nthawi yonyamula. Kuti mugwiritse ntchito ulalo wa nthawi yothamanga ya malaibulale osinthika kapena ma module otha kupakia, muyenera kufotokoza momveka bwino zosankha "-Wl, -G" pamndandanda wa mbendera zoyambira zolumikizira, zomwe zimatanthauzidwa ndi "CMAKE_SHARED_LINKER_FLAGS" ndi "CMAKE_MODULE_LINKER_FLAGS".

Source: opennet.ru

Kuwonjezera ndemanga