Paglabas ng CMake 3.18 build system

Ipinasa ni paglabas ng isang cross-platform open build script generator CMake 3.18, na nagsisilbing alternatibo sa Autotools at ginagamit sa mga proyekto tulad ng KDE, LLVM/Clang, MySQL, MariaDB, ReactOS at Blender. Ang CMake code ay nakasulat sa C++ at ipinamahagi sa ilalim ng lisensya ng BSD.

Ang CMake ay kapansin-pansin sa pagbibigay ng isang simpleng scripting language, isang paraan ng pagpapalawak ng functionality sa pamamagitan ng mga module, isang minimal na bilang ng mga dependency (walang binding sa M4, Perl o Python), suporta sa pag-cache, pagkakaroon ng mga tool para sa cross-compilation, suporta para sa pagbuo ng build mga file para sa malawak na hanay ng mga build system at compiler, ang presensya ng ctest at cpack na mga utility para sa pagtukoy ng mga test script at mga building package, cmake-gui utility para sa interactive na pagtatakda ng mga parameter ng build.

Ang pangunahing mga pagpapabuti:

  • Для языка CUDA обСспСчСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Clang Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Windows. РаздСльная компиляция CUDA ΠΏΠΎΠΊΠ° Π½Π΅ поддСрТиваСтся Π½ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° профилирования сцСнариСв CMake, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΡ†ΠΈΠΈ Β«β€”profiling-outputΒ» ΠΈ Β«β€”profiling-formatΒ».
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ add_library() ΠΈ add_executable() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° создания Ρ†Π΅Π»Π΅ΠΉ-псСвдонимов (Alias Targets), ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° Π½Π΅Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° cmake_language() для ΠΌΠ΅Ρ‚Π°-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ скриптованными ΠΈΠ»ΠΈ встроСнными ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π° file(CONFIGURE), аналогичная ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ configure_file(), Π½ΠΎ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ содСрТимого Π² Ρ„ΠΎΡ€ΠΌΠ΅ строки, Π° Π½Π΅ ссылки Π½Π° Ρ„Π°ΠΉΠ».
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ find_program(), find_library(), find_path() ΠΈ find_file() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция REQUIRED, ΠΏΡ€Π΅Π΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ с ошибкой, Ссли Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° пСрСмСнная Β«CMAKE_CUDA_ARCHITECTURESΒ» для указания Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ CUDA (устанавливаСтся автоматичСски, Ссли пСрСмСнная Β«CMAKE_CUDA_COMPILER_IDΒ» ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«NVIDIAΒ»).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ свойство Β«UNITY_BUILD_MODEΒ» для Π²Ρ‹Π±ΠΎΡ€Π° Π² Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… исходных Ρ„Π°ΠΉΠ»ΠΎΠ² (BATCH, GROUP).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ CheckLinkerFlag для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ коррСктности Ρ„Π»Π°Π³ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ выраТСния Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° $<DEVICE_LINK:…>, $<HOST_LINK:…>, $<LINK_LANGUAGE:…> ΠΈ $<LINK_LANG_AND_ID:…>.
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ctest Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° пСрСмСнная CTEST_RESOURCE_SPEC_FILE для указания Ρ„Π°ΠΉΠ»Π° со спСцификациСй рСсурсов.

Pinagmulan: opennet.ru

Magdagdag ng komento