Ukukhishwa kwesistimu yokwakha ye-CMake 3.16

Kuthunyelwe ngu- ukukhululwa kwe-cross-platform open build script generator I-CMake 3.16, esebenza njengenye indlela ye-Autotools futhi isetshenziswa kumaphrojekthi afana ne-KDE, LLVM/Clang, MySQL, MariaDB, ReactOS kanye ne-Blender. Ikhodi ye-CMake ibhalwe ngo-C++ futhi isatshalaliswa ngaphansi kwelayisensi ye-BSD.

I-CMake iphawuleka ngokunikeza ulimi olulula lokubhala, indlela yokwandisa ukusebenza ngamamojula, inani elincane lokuncika (akukho ukubophezela ku-M4, i-Perl noma i-Python), ukusekelwa kwe-caching, ukuba khona kwamathuluzi okuhlanganiswa okuphambene, ukusekelwa kokukhiqiza isakhiwo. amafayela ezinhlobonhlobo zezinhlelo zokwakha nabahlanganisi, izinsiza zokubakhona ze-ctest ne-cpack zokuchaza imibhalo yokuhlola namaphakheji wokwakha, insiza ye-cmake-gui yokusetha ngokuhlanganyela imingcele yokwakha.

main ukuthuthukiswa:

  • Usekelo olungeziwe lwe-Objective C (“OBJC”) nezilimi zeNjongo
    I-C++ ("OBJCXX"), enganikwa amandla ngephrojekthi() kanye nemiyalo ye-enable_language(), ngemva kwalokho ikhodi kumafayela ".m" ".mm" izohlanganiswa njengekhodi ye-Objective C kanye ne-Objective C++, esikhundleni sokuthi C++, njengoba kwakunjalo ngaphambili;
  • Ukwesekwa okwengeziwe komhlanganisi we-Clang ku-platform ye-Solaris;
  • Kwengezwe izinketho zomugqa womyalo omusha: “cmake -E true|false” ukuze uphrinte amakhodi okubuyisela 0 kanye no-1; "cmake --trace-redirect=" ukuze uqondise kabusha ulwazi lokulandelela efayeleni esikhundleni salokho
    "stderr"; umyalo othi "cmake --loglevel" uqanjwe kabusha ukuze uthi "--log-level" ukuze uhambisane namagama weminye imiyalo;
  • Kwengezwe umyalo othi “target_precompile_headers()” ukuze kuhlu uhlu lwamafayela anhlokweni asetshenziswe phakathi nokuhlanganiswa kwangaphambili (kunciphisa isikhathi sokwakha);
  • Kwengezwe isakhiwo se-“UNITY_BUILD”, esenza kusebenze imodi yenqwaba yokucubungula amafayela omthombo kumajeneretha ukuze kusheshiswe ukwakha;
  • Imiyalo eyengeziwe ethi “find_file()”, “find_library()”, “find_path()”,
    "find_package()" kanye "find_program()" ukucinga amafayela, imitapo yolwazi, izindlela, amaphakheji nokusebenziseka ngokuvumelana neziguquko ezichaza izindlela zokusesha zezigaba ezihlukahlukene zamafayela.
    Okuguquguqukayo okungu-"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_CMGMENT_ENVIK kusetshenzisiwe" kanye "ku-"CMAKE_FIND_USE_SYSTEM_IDGMENT_ENVI". lawula izindlela zokusesha eziyisisekelo ISTRY";
  • Kwengezwe imodi “yefayela(GET_RUNTIME_DEPENDENCIES)” kumyalo we-“file()”, okuvumela ukuthi ubuyisele ngokuphindaphindiwe uhlu lwamalabhulali asetshenziswa lapho uxhumanisa ifayela elisebenzisekayo noma umtapo wolwazi. Imodi ithathe indawo yomyalo we-GetPrerequisites(), ohoxisiwe manje;
  • Umyalo we-“ctest(1)” usebenzisa ikhono lokulinganisa ukuhlola ngokusekelwe kuzinsiza ezidingekayo ekuhlolweni ngakunye;
  • Okuhlukile kokuthi "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" kwehlisiwe futhi kufanele kufakwe esikhundleni sika-"CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Usekelo lweplathifomu ye-AIX ethuthukisiwe. Uma usebenzisa isakhiwo se-"ENABLE_EXPORTS", ngaphezu kwefayela elisebenzisekayo, ifayela lokungenisa lesixhumanisi liyakhiqizwa, lilondolozwe ngesandiso se-".imp". Kuma-plugin adalwe ngokubiza okuthi "add_library()" ngenketho ethi "MODULE", leli fayela lingasetshenziswa lapho kuxhunywa kusetshenziswa umyalo othi "target_link_libraries()". Ukuxhumanisa kwesikhathi sokusebenza ku-AIX kukhutshazwe ngokuzenzakalela ngenxa yokuthi i-CMake manje inikeza lonke ulwazi lophawu oludingekayo ukuze lixhunywe ngesikhathi sokulayisha. Ukuze usebenzise ukuxhumanisa kwesikhathi sokusebenza kwamalabhulali ashintshashintshayo noma amamojula alayishekayo, kufanele ucacise izinketho “-Wl, -G” ohlwini lwamafulegi okuqalisa isixhumanisi, achazwe ngezinto ezihlukile “CMAKE_SHARED_LINKER_FLAGS” kanye “CMAKE_MODULE_LINKER_FLAGS”.

Source: opennet.ru

Thenga ukusingathwa okuthembekile kwamasayithi anokuvikelwa kwe-DDoS, amaseva e-VPS VDS 🔥 Thenga ukusingathwa kwewebhusayithi okuthembekile ngokuvikelwa kwe-DDoS, amaseva e-VPS VDS | ProHoster