Natolotra ny famoahana ny mpamorona script open build cross-platform CMake 3.21, izay miasa ho solon'ny Autotools ary ampiasaina amin'ny tetikasa toy ny KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ary Blender. Ny kaody CMake dia voasoratra amin'ny C++ ary zaraina amin'ny alΓ lan'ny fahazoan-dΓ lana BSD.
Ny CMake dia miavaka amin'ny fanomezana fiteny tsotra amin'ny scripting, fomba fanitarana ny fiasa amin'ny alΓ lan'ny maody, fiankinan-doha kely indrindra (tsy misy mifamatotra amin'ny M4, Perl na Python), fanohanana ny caching, ny fisian'ny fitaovana ho an'ny fanangonana cross-compilation, fanohanana amin'ny famoronana fananganana. rakitra ho an'ny rafitra fananganana sy compiler isan-karazany, ny fisian'ny ctest sy ny cpack utility ho an'ny famaritana ny sora-baventy fitsapana sy ny fananganana fonosana, ny cmake-gui ampiasaina amin'ny fametrahana marimaritra iraisana amin'ny fananganana.
Fanatsarana lehibe:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ HIP (Heterogeneous-Computing Interface for Portability), Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ° ΡΠ·ΡΠΊΠ° C++, Π½Π°ΡΠ΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ CUDA Π² ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ C++.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Π΄Π»Ρ Visual Studio 17 2022, Π±Π°Π·ΠΈΡΡΡΡΠΈΠΉΡΡ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ Visual Studio 2022 Preview 1.1.
- Π Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°Ρ ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² Makefile ΠΈ Ninja Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° C_LINKER_LAUNCHER ΠΈ CXX_LINKER_LAUNCHER, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΡΠΊ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΡ Π·Π°ΠΏΡΡΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ°, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ. ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ Π·Π°ΠΏΡΡΡΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ° ΠΈ Π΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ.
- Π ΡΠ²ΠΎΠΉΡΡΠ²Π°Ρ Β«C_STANDARDΒ» ΠΈ Β«OBJC_STANDARDΒ», Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΡΡΠ΅Π΄ΡΡΠ²Π°Ρ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° (Compile Features), Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ C17 ΠΈ C23.
- Π ΡΡΠΈΠ»ΠΈΡΡ cmake Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ Β«βtoolchain <path/to/file>> Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΡΡΠΈ ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ Π½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π».
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Fujitsu.
- Π ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«foreach()Β» ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠΈΠΊΠ»Π° Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π²ΡΠΏΡΡΠΊ ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Meson 0.59, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠ°ΠΊ X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ΠΈ GTK. ΠΠΎΠ΄ Meson Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Python ΠΈ ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΊΡΠΎΡΡ-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ ΡΠ±ΠΎΡΠΊΠ° Π² Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ΠΈ Windows Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ GCC, Clang, Visual Studio ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ². ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠ±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ C, C++, Fortran, Java ΠΈ Rust. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΈΠ»ΠΈΡΡ make ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Ninja, Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈΡ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ xcode ΠΈ VisualStudio.
Π ΡΠΈΡΡΠ΅ΠΌΡ Π²ΡΡΡΠΎΠ΅Π½ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Meson Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ². ΠΡΠ°Π²ΠΈΠ»Π° ΡΠ±ΠΎΡΠΊΠΈ Π·Π°Π΄Π°ΡΡΡΡ Π½Π° ΡΠΏΡΠΎΡΡΠ½Π½ΠΎΠΌ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡΡ ΠΈ ΠΏΠΎΠ½ΡΡΠ½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΏΠΎ Π·Π°Π΄ΡΠΌΠΊΠ΅ Π°Π²ΡΠΎΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ°ΡΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ±ΠΎΡΠΊΠΈ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, Π²Π½Π΅ΡΡΠ½Π½ΡΠΌΠΈ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΡΠΎΡΠ»ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ. Meson ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΡΡ ΡΠ±ΠΎΡΠΎΠΊ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊ ΡΠ±ΠΎΡΠΊΠΈ Π² ΡΠ°Π·Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ².
Ny fanavaozana lehibe an'ny Meson 0.59:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ·ΡΠΊΠ° Cython (ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Python, Π½Π°ΡΠ΅Π»Π΅Π½Π½ΡΠΉ Π½Π° ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° Β«unescaped_variablesΒ» ΠΈ Β«unescaped_uninstalled_variablesΒ» Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² pkgconfig Π±Π΅Π· ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Β«\Β».
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° wrc (Wine Resource Compiler).
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ Visual Studio 2012 ΠΈ Visual Studio 2013.
- ΠΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΡΠ±ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ±ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ. Π§ΠΈΡΠ»ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Β«βnum-processesΒ».
Source: opennet.ru