Pagpagawas sa CMake 3.16 nga sistema sa pagtukod

Gipasa ni pagpagawas sa usa ka cross-platform open build script generator CMmake 3.16, nga naglihok isip alternatibo sa Autotools ug gigamit sa mga proyekto sama sa KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ug Blender. Ang code sa CMake gisulat sa C++ ug giapod-apod ubos sa lisensya sa BSD.

Nailhan ang CMake sa paghatag ug yano nga sinultian nga scripting, usa ka paagi sa pagpalapad sa pagpaandar pinaagi sa mga module, gamay nga gidaghanon sa mga dependency (walay pagbugkos sa M4, Perl o Python), suporta sa pag-cache, ang presensya sa mga himan alang sa cross-compilation, suporta alang sa paghimo sa pagtukod mga file alang sa usa ka halapad nga mga sistema sa pagtukod ug mga compiler, ang presensya nga ctest ug cpack nga mga gamit alang sa pagtino sa mga script sa pagsulay ug mga pakete sa pagtukod, gamit sa cmake-gui alang sa interactive nga pagpahimutang sa mga parameter sa pagtukod.

nag-unang mga kalamboan:

  • Gidugang nga suporta alang sa Objective C (β€œOBJC”) ug Objective nga mga pinulongan
    C++ ("OBJCXX"), nga mahimong ma-enable pinaagi sa project() ug enable_language() commands, pagkahuman ang code sa ".m" ".mm" nga mga file mag-compile isip Objective C ug Objective C++ code, kay sa ingon C++, sama sa kaniadto;

  • Gidugang nga suporta alang sa Clang compiler sa platform sa Solaris;
  • Gidugang ang bag-ong mga kapilian sa command line: "cmake -E true|false" aron maimprinta ang mga return code 0 ug 1; "cmake --trace-redirect=" aron i-redirect ang kasayuran sa pagsubay sa usa ka file
    "stderr"; ang "cmake --loglevel" nga sugo giilisan og ngalan ngadto sa "--log-level" aron ipahiangay kini sa mga ngalan sa ubang mga sugo;

  • Gidugang ang "target_precompile_headers()" nga sugo aron ilista ang lista sa mga file sa header nga gigamit sa panahon sa precompilation (pagminus sa oras sa pagtukod);
  • Gidugang ang "UNITY_BUILD" nga kabtangan, nga nagpalihok sa batch mode alang sa pagproseso sa mga source file sa mga generator aron mapadali ang pagtukod;
  • Gidugang nga mga sugo "find_file()", "find_library()", "find_path()",
    "find_package()" ug "find_program()" para pangitaon ang mga file, library, paths, packages ug executables sumala sa variables nga nagdefine sa search paths para sa lain-laing kategorya sa files.
    Ang mga baryable nga "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" ug kontrola ang base nga mga agianan sa pagpangita GISTRY";

  • Gidugang ang "file (GET_RUNTIME_DEPENDENCIES)" mode sa "file ()" nga mando, nga nagtugot kanimo sa pagbawi sa lista sa mga librarya nga gigamit kung dinamikong nag-link sa usa ka executable file o librarya. Gipulihan sa mode ang GetPrequisites() nga sugo, nga wala na magamit;
  • Ang "ctest(1)" nga sugo nagpatuman sa abilidad sa pag-serialize sa mga pagsulay base sa mga kapanguhaan nga gikinahanglan alang sa matag pagsulay;
  • Ang variable nga "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" wala na gamita ug kinahanglang pulihan sa "CMAKE_FIND_USE_PACKAGE_REGISTRY";
  • Gipauswag nga suporta sa platform sa AIX. Kung gigamit ang "ENABLE_EXPORTS" nga kabtangan, dugang sa executable file, usa ka import file para sa linker ang nahimo na karon, gitipigan gamit ang ".imp" extension. Sa mga plugins nga gihimo pinaagi sa pagtawag sa "add_library()" gamit ang "MODULE" nga opsyon, kini nga file mahimong gamiton kung mag-link gamit ang "target_link_libraries()" command. Ang runtime nga pag-link sa AIX gi-disable pinaagi sa default tungod kay ang CMake karon naghatag sa tanan nga gikinahanglan nga impormasyon sa simbolo alang sa pag-link sa oras sa pagkarga. Aron magamit ang runtime nga pag-link sa mga dinamikong librarya o loadable nga mga module, kinahanglan nimo nga klaro nga ipiho ang mga kapilian nga "-Wl, -G" sa mga lista sa linker startup flags, nga gihubit pinaagi sa mga variable nga "CMAKE_SHARED_LINKER_FLAGS" ug "CMAKE_MODULE_LINKER_FLAGS".

Source: opennet.ru

Idugang sa usa ka comment