CMake 3.16 kọ eto idasilẹ

Agbekale Tu ti a agbelebu-Syeed ìmọ Kọ akosile monomono Oṣuwọn 3.16, eyiti o ṣe bi yiyan si Autotools ati pe a lo ninu awọn iṣẹ akanṣe bii KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ati Blender. Awọn koodu CMake ti kọ sinu C ++ ati pinpin labẹ iwe-aṣẹ BSD.

CMake jẹ ohun akiyesi fun ipese ede iwe afọwọkọ ti o rọrun, ọna lati fa iṣẹ ṣiṣe nipasẹ awọn modulu, nọmba to kere julọ ti awọn igbẹkẹle (ko si abuda si M4, Perl tabi Python), atilẹyin caching, wiwa awọn irinṣẹ fun akopọ-agbelebu, atilẹyin fun ṣiṣẹda kikọ. awọn faili fun ọpọlọpọ awọn ọna ṣiṣe ati awọn olupilẹṣẹ, wiwa ctest ati awọn ohun elo cpack fun asọye awọn iwe afọwọkọ idanwo ati awọn idii ile, IwUlO cmake-gui fun eto ibaraenisepo Kọ awọn aye.

akọkọ awọn ilọsiwaju:

  • Atilẹyin ti a ṣafikun fun Objective C (“OBJC”) ati awọn ede Idi
    C ++ ("OBJCXX"), eyiti o le muu ṣiṣẹ nipasẹ iṣẹ akanṣe () ati awọn aṣẹ agbara_language (), lẹhin eyi koodu ti o wa ninu awọn faili “.m” “.mm” yoo ṣajọ bi Idi C ati Idi C ++ koodu, dipo bi bi C ++, gẹgẹ bi o ti jẹ tẹlẹ;

  • Atilẹyin ti a ṣafikun fun olupilẹṣẹ Clang lori pẹpẹ Solaris;
  • Awọn aṣayan laini aṣẹ tuntun ti a ṣafikun: “cmake -E otitọ | eke” lati tẹ awọn koodu ipadabọ 0 ati 1; "cmake --trace-redirect=" lati ṣe atunṣe alaye itọpa si faili dipo
    "stderr"; aṣẹ "cmake --loglevel" ti jẹ lorukọmii si "--log-level" lati mu u wa ni ila pẹlu awọn orukọ ti awọn ofin miiran;

  • Ṣafikun aṣẹ “target_precompile_headers ()” lati ṣe atokọ atokọ ti awọn faili akọsori ti a lo lakoko iṣaju (din akoko kikọ silẹ);
  • Ṣafikun ohun-ini “UNITY_BUILD”, eyiti o mu ipo ipele ṣiṣẹ fun sisẹ awọn faili orisun ni awọn olupilẹṣẹ lati yara kọle naa;
  • Awọn aṣẹ ti a ṣafikun “find_file()”, “find_library()”, “find_path()”,
    "find_package()" ati "find_program()" lati wa awọn faili, awọn ile-ikawe, awọn ọna, awọn idii ati awọn iṣẹ ṣiṣe ni ibamu si awọn oniyipada ti o ṣalaye awọn ọna wiwa fun awọn ẹka oriṣiriṣi ti awọn faili.
    Awọn oniyipada "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_VISTEM_VISTEM_" CMAKE_FIND_USE_SYSMPATH ti a lo lati ṣakoso awọn ọna wiwa ipilẹ RY";

  • Ṣafikun ipo “faili (GET_RUNTIME_DEPENDENCIES)” si aṣẹ “faili ()”, eyiti o fun ọ laaye lati gba atokọ ti awọn ile-ikawe ti a lo nigbagbogbo nigbati o ba sopọ mọ faili ti o le ṣiṣẹ tabi ile-ikawe. Ipo naa rọpo aṣẹ GetPrerequisites (), eyiti o ti parẹ bayi;
  • Aṣẹ “ctest (1)” ṣe imuse agbara lati serialize awọn idanwo ti o da lori awọn orisun ti o nilo fun idanwo kọọkan;
  • Oniyipada "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" ti ti parẹ ati pe o yẹ ki o rọpo nipasẹ "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Dara si AIX Syeed support. Nigbati o ba nlo ohun-ini “ENABLE_EXPORTS”, ni afikun si faili ti o le ṣiṣẹ, faili agbewọle fun ọna asopọ ti wa ni ipilẹṣẹ, ti o fipamọ pẹlu itẹsiwaju “.imp”. Ninu awọn afikun ti a ṣẹda nipasẹ pipe "add_library()" pẹlu aṣayan "MODULE", faili yii le ṣee lo nigbati o ba so pọ nipa lilo aṣẹ "target_link_libraries()". Sisopọ akoko ṣiṣe lori AIX jẹ alaabo nipasẹ aiyipada nitori CMake n pese gbogbo alaye aami pataki fun sisopọ ni akoko fifuye. Lati lo sisopo asiko asiko ti awọn ile ikawe ti o ni agbara tabi awọn modulu fifuye, o gbọdọ pato awọn aṣayan “-Wl, -G” ni kedere ninu awọn atokọ ti awọn asia ibẹrẹ ọna asopọ, ti ṣalaye nipasẹ awọn oniyipada “CMAKE_SHARED_LINKER_FLAGS” ati “CMAKE_MODULE_LINKER_FLAGS”.

orisun: opennet.ru

Fi ọrọìwòye kun