Π Π΅Π»ΠΈΠ· Π½Π° сборната систСма CMake 4.0.0

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ Ρ€Π΅Π»ΠΈΠ· Π½Π° кросплатформСния ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π·Π° скриптовС Π·Π° компилация CMake 4.0.0, ΠΊΠΎΠΉΡ‚ΠΎ слуТи ΠΊΠ°Ρ‚ΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° Autotools ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ΠΈ Blender. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° CMake Π΅ написан Π½Π° C++ ΠΈ сС разпространява ΠΏΠΎΠ΄ BSD Π»ΠΈΡ†Π΅Π½Π·.

CMake сС ΠΎΡ‚Π»ΠΈΡ‡Π°Π²Π° с прСдоставянСто Π½Π° прост скриптов Π΅Π·ΠΈΠΊ, срСдства Π·Π° Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° функционалността Ρ‡Ρ€Π΅Π· ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° инструмСнти Π·Π° крос-компилация, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° компилация Π·Π° ΡˆΠΈΡ€ΠΎΠΊ ΡΠΏΠ΅ΠΊΡ‚ΡŠΡ€ ΠΎΡ‚ систСми Π·Π° компилация ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ ctest ΠΈ cpack Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° тСстови скриптовС ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° cmake-gui Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° компилацията.

Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π‘ΠΏΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π° с вСрсии Π½Π° CMake ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ 3.5 Π΅ Π² сила. Π‘Π΅Π³Π° ΠΏΡ€ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с Π½Π΅ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ вСрсии Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ cmake_minimum_required() ΠΈ cmake_policy() Ρ‰Π΅ сС ΠΏΠΎΠΊΠ°Π·Π²Π° Π³Ρ€Π΅ΡˆΠΊΠ°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° срСдата β€žCMAKE_POLICY_VERSION_MINIMUMβ€œ Π·Π° прСопрСдСлянС Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π°Ρ‚Π° вСрсия Π½Π° CMake, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π”ΠΎΠ±Π°Π²Π΅Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° позволява Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ смяна Π½Π° извикванията cmake_minimum_required(VERSION) ΠΈ cmake_policy(VERSION) Π² самия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° вСрсиитС Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠΆΠ΄Π°Ρ‚ Ρ‚Π°ΠΊΠ°Π²Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚.
  • Π’ ΠΈΠ·Ρ€Π°Π·Π° Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° β€ž$β€œ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опСрация β€žNATIVE_PATHβ€œ Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° файловия ΠΏΡŠΡ‚ ΠΎΡ‚ прСдставянСто Π½Π° CMake (ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π·Π° раздСлянС Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° β€ž/β€œ) Π² систСмния ΠΏΡŠΡ‚ (Π² Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ систСми сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° β€ž/β€œ, Π° Π² Windows β€” β€ž\β€œ).
  • На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° macOS, ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ скриптовС, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° инструмСнтариума Ninja ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Makefile, Π°ΠΊΠΎ Π² дирСкторията β€ž/usr/binβ€œ ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€, Ρ‚ΠΎΠΉ Π²Π΅Ρ‡Π΅ остава Ρ‚Π°ΠΊΡŠΠ², Π±Π΅Π· ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Π² Xcode. ΠŸΡ€ΠΈ компилация Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° macOS ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ спиран Π΅ ΠΈΠ·Π±ΠΎΡ€ΡŠΡ‚ Π½Π° SDK ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„Π»Π°Π³Π° β€ž-isysrootβ€œ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° (SDK сСга сС ΠΈΠ·Π±ΠΈΡ€Π° ΠΎΡ‚ самия ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€, Π° Π½Π΅ ΠΎΡ‚ CMake).
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ свойство LINK_WARNING_AS_ERROR, ΠΏΡ€ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ прСдупрСТдСнията Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ° Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ. Π—Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠ²Π° свойство Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опция Π½Π° командния Ρ€Π΅Π΄ β€žβ€”link-no-warning-as-errorβ€œ.
  • Към ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° cmake Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° опция β€žβ€”project-fileβ€œ Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈΠΌΠ΅ Π½Π° Ρ„Π°ΠΉΠ»Π° CMakeLists.txt.
  • Π’ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° CPack Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° създаванС Π½Π° нСсТати tar-Π°Ρ€Ρ…ΠΈΠ²ΠΈ.
  • Π’ функцията target_link_libraries() ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ CMAKE_EXE_LINKER_FLAGS*, CMAKE_SHARED_LINKER_FLAGS*, CMAKE_MODULE_LINKER_FLAGS* Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° прСфикса β€žLINKER:β€œ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π½ΠΎΠ²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ:
    • CMAKE_EXECUTE_PROCESS_COMMAND_ERROR_IS_FATAL,
    • CMAKE__LINK_MODE,
    • CMAKE__DEVICE_LINK_MODE,
    • CMAKE_LINK_WARNING_AS_ERROR,
    • CMAKE_MSVC_RUNTIME_CHECKS,
    • CMAKE_DEBUGGER_WORKING_DIRECTORY,
    • CMAKE_XCODE_SCHEME_LLDB_INIT_FILE,
    • CMAKE_XCODE_SCHEME_TEST_CONFIGURATION.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π½ΠΎΠ²ΠΈ свойства: DEBUGGER_WORKING_DIRECTORY ΠΈ VS_SOLUTION_ITEMS (Π·Π° прикрСпянС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ към .sln Π·Π° Visual Studio).
  • ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½ΠΎ Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π³ΠΎΡ‚ΠΎΠ²ΠΈ CMake сборки Π·Π° SunOS Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ sparc64 ΠΈ x86_64.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster