I-CMake iphawuleka ngokubonelela ngolwimi olulula lokubhala, indlela yokwandisa ukusebenza ngeemodyuli, inani elincinci lokuxhomekeka (akukho nto ibophelelayo kwi-M4, i-Perl okanye i-Python), inkxaso ye-caching, ubukho bezixhobo zokudibanisa, inkxaso yokuvelisa ukwakha. iifayile kuluhlu olubanzi lweenkqubo zokwakha kunye nabaqulunqi, ubukho be-ctest kunye ne-cpack eziluncedo zokuchaza izikripthi zovavanyo kunye neepakethi zokwakha, i-cmake-gui utility yokuseta ngokudibeneyo iparameters zokwakha.
Siseko
- Inkxaso eyongeziweyo kwiNjongo C (“OBJC”) kunye neelwimi zeNjongo
C++ ("OBJCXX"), enokuthi yenziwe ngeprojekthi () kwaye enable_language() imiyalelo, emva koko ikhowudi ekwiifayile ".m" ".mm" iya kuqulunqa njenge Objective C ne Objective C++ code, kunokuba C ++, njengoko kwakunjalo ngaphambili; - Inkxaso eyongeziweyo yeClang compiler kwiqonga leSolaris;
- Kongezwe ukhetho olutsha lwelayini yomyalelo: “cmake -E true|false” ukuprinta iikhowudi zokubuya 0 kunye no-1; "cmake --trace-redirect=" ukwalathisa kwakhona ulwazi kwifayile endaweni yoko
"stderr"; Umyalelo othi "cmake --loglevel" unikwe igama ngokutsha ube ngu "--log-level" ukuwuzisa emgceni namagama eminye imiyalelo; - Kongezwe umyalelo othi “target_precompile_headers()” ukudwelisa uluhlu lweefayile zeheader ezisetyenziswe ngexesha lokuhlanganiswa kwangaphambili (ukunciphisa ixesha lokwakha);
- Yongeza ipropathi "UNITY_BUILD", eyenza imowudi yebhetshi yokucubungula iifayile zomthombo kwiijeneretha ukukhawulezisa ukwakha;
- Imiyalelo eyongeziweyo "fumana_ifayile ()", "fumana_ilayibrari ()", "fumana_indlela ()",
"find_package()" kunye "find_program()" ukukhangela iifayile, iilayibrari, iindlela, iipakethe kunye nezinto eziphunyezwayo ngokweenguqu ezichaza iindlela zokukhangela kwiindidi ezahlukeneyo zeefayile.
Izinto eziguquguqukayo "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 esetyenzisiweyo" kunye ne-"CMAKE_FIND_USE_SYSTEM_CMGIST_ENVI_ENVI" kwaye lawula isiseko sendlela zophendlo RY"; - Yongeza imo "yefayile(GET_RUNTIME_DEPENDENCIES)" kumyalelo "wefayile()", ekuvumela ukuba uphinde ufumane uluhlu lwamathala eencwadi asetyenziswayo xa udibanisa ifayile ephunyezwayo okanye ithala leencwadi. Indlela ithathe indawo ye GetPrerequisites() umyalelo, oyekisiweyo ngoku;
- Umyalelo we-“ctest(1)” usebenzisa ukukwazi ukwenza iimvavanyo ngokulandelelana ngokusekelwe kwimithombo efunekayo kuvavanyo ngalunye;
- Uguqulo oluguquguqukayo "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" luyekisiwe kwaye kufuneka endaweni yalo "CMAKE_FIND_USE_PACKAGE_REGISTRY";
- Uphuculo lwenkxaso yeqonga le-AIX. Xa usebenzisa i-"ENABLE_EXPORTS" ipropathi, ukongeza kwifayile ephunyezwayo, ifayile yokungenisa ikhonkco ngoku yenziwe, igcinwe ngesandiso ".imp". Kwii-plugins ezenziwe ngokubiza "add_library()" ngo-"MODULE" ukhetho, le fayile ingasetyenziswa xa idibanisa kusetyenziswa umyalelo othi "target_link_libraries()". Unxulumaniso lwexesha lokusebenza kwi-AIX luvaliwe ngokungagqibekanga kuba iCMake ngoku ibonelela ngolwazi oluyimfuneko lwesimboli yokudibanisa ngexesha lokulayisha. Ukusebenzisa unxulumaniso lwexesha lokuqhuba kwamathala eencwadi aguqukayo okanye iimodyuli ezilayishekayo, kufuneka ucacise ngokucacileyo ukhetho “-Wl, -G” kuludwe lweeflegi zoqaliso loqhagamshelo, ezichazwe ngokuguquguqukayo “CMAKE_SHARED_LINKER_FLAGS” kunye “CMAKE_MODULE_LINKER_FLAGS”.
umthombo: opennet.ru