CMake 3.16 உருவாக்க அமைப்பின் வெளியீடு

மூலம் சமர்ப்பிக்கப்பட்டது குறுக்கு-தளம் திறந்த உருவாக்க ஸ்கிரிப்ட் ஜெனரேட்டரின் வெளியீடு சிமேக் 3.16, இது Autotools க்கு மாற்றாக செயல்படுகிறது மற்றும் KDE, LLVM/Clang, MySQL, MariaDB, ReactOS மற்றும் Blender போன்ற திட்டங்களில் பயன்படுத்தப்படுகிறது. CMake குறியீடு C++ இல் எழுதப்பட்டு BSD உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது.

CMake ஒரு எளிய ஸ்கிரிப்டிங் மொழி, தொகுதிகள் மூலம் செயல்பாட்டை நீட்டிக்கும் வழிமுறை, குறைந்த எண்ணிக்கையிலான சார்புநிலைகள் (M4, Perl அல்லது Python உடன் பிணைப்பு இல்லை), கேச்சிங் ஆதரவு, குறுக்கு-தொகுப்புக்கான கருவிகளின் இருப்பு, உருவாக்கத்தை உருவாக்குவதற்கான ஆதரவு ஆகியவற்றில் குறிப்பிடத்தக்கது. பரந்த அளவிலான உருவாக்க அமைப்புகள் மற்றும் கம்பைலர்களுக்கான கோப்புகள், சோதனை ஸ்கிரிப்ட்கள் மற்றும் கட்டிட தொகுப்புகளை வரையறுப்பதற்கான இருப்பு ctest மற்றும் cpack பயன்பாடுகள், உருவாக்க அளவுருக்களை ஊடாடும் வகையில் அமைப்பதற்கான cmake-gui பயன்பாடு.

முக்கிய மேம்பாடுகள்:

  • ஆப்ஜெக்டிவ் சி ("ஓபிஜேசி") மற்றும் அப்ஜெக்டிவ் மொழிகளுக்கான ஆதரவு சேர்க்கப்பட்டது
    C++ ("OBJCXX"), இது project() மற்றும் enable_language() கட்டளைகள் வழியாக இயக்கப்படலாம், அதன் பிறகு ".m" ".mm" கோப்புகளில் உள்ள குறியீடு, குறிக்கோள் C மற்றும் குறிக்கோள் C++ குறியீடாக தொகுக்கப்படும். சி++, முன்பு இருந்தது போல்;

  • சோலாரிஸ் இயங்குதளத்தில் க்ளாங் கம்பைலருக்கான ஆதரவு சேர்க்கப்பட்டது;
  • புதிய கட்டளை வரி விருப்பங்கள் சேர்க்கப்பட்டது: "cmake -E true|false" ரிட்டர்ன் குறியீடுகள் 0 மற்றும் 1 அச்சிட; "cmake --trace-redirect=" பதிலாக ஒரு கோப்பிற்கு ட்ரேஸ் தகவலை திருப்பிவிட
    "stderr"; "cmake --loglevel" கட்டளை "--log-level" என மறுபெயரிடப்பட்டது, அதை மற்ற கட்டளைகளின் பெயர்களுக்கு ஏற்ப கொண்டு வரவும்;

  • முன்தொகுப்பின் போது பயன்படுத்தப்படும் தலைப்பு கோப்புகளின் பட்டியலை பட்டியலிட “target_precompile_headers()” கட்டளை சேர்க்கப்பட்டது (கட்டமைக்கும் நேரத்தை குறைக்கிறது);
  • "UNITY_BUILD" பண்பு சேர்க்கப்பட்டது, இது உருவாக்கத்தை விரைவுபடுத்த ஜெனரேட்டர்களில் மூல கோப்புகளை செயலாக்குவதற்கான தொகுதி பயன்முறையை செயல்படுத்துகிறது;
  • கட்டளைகள் சேர்க்கப்பட்டன “find_file()”, “find_library()”, “find_path()”,
    "find_package()" மற்றும் "find_program()" கோப்புகள், லைப்ரரிகள், பாதைகள், தொகுப்புகள் மற்றும் இயங்கக்கூடியவைகளை பல்வேறு வகை கோப்புகளுக்கான தேடல் பாதைகளை வரையறுக்கும் மாறிகளின்படி தேட.
    மாறிகள் "CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH", "CMAKE_FIND_USE_CMAKE_PATH", "CMAKE_FIND_USE_CMAKE_SYSTEM_PATH", "CMAKE_FINDEMKTH_USE_PY_ST" RY அடிப்படை தேடல் பாதைகளை கட்டுப்படுத்த _ENVIRONMENT_PATH" மற்றும் "CMAKE_FIND_USE_PACKAGE_REGIST" பயன்படுத்தப்படுகின்றன;

  • "file(GET_RUNTIME_DEPENDENCIES)" பயன்முறையானது "file()" கட்டளையில் சேர்க்கப்பட்டது, இது இயங்கக்கூடிய கோப்பு அல்லது நூலகத்தை மாறும் வகையில் இணைக்கும் போது பயன்படுத்தப்படும் நூலகங்களின் பட்டியலை மீண்டும் மீண்டும் பெற அனுமதிக்கிறது. பயன்முறையானது GetPrerequisites() கட்டளையை மாற்றியது, அது இப்போது நிறுத்தப்பட்டுள்ளது;
  • "ctest(1)" கட்டளையானது ஒவ்வொரு சோதனைக்கும் தேவையான ஆதாரங்களின் அடிப்படையில் சோதனைகளை வரிசைப்படுத்தும் திறனை செயல்படுத்துகிறது;
  • மாறி "CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY" நிராகரிக்கப்பட்டது மற்றும் "CMAKE_FIND_USE_PACKAGE_REGISTRY" ஆல் மாற்றப்பட வேண்டும்;
  • மேம்படுத்தப்பட்ட AIX இயங்குதள ஆதரவு. "ENABLE_EXPORTS" பண்பைப் பயன்படுத்தும் போது, ​​இயங்கக்கூடிய கோப்புடன் கூடுதலாக, இணைப்பாளருக்கான இறக்குமதி கோப்பு இப்போது உருவாக்கப்பட்டு, ".imp" நீட்டிப்புடன் சேமிக்கப்படும். "MODULE" விருப்பத்துடன் "add_library()" ஐ அழைப்பதன் மூலம் உருவாக்கப்பட்ட செருகுநிரல்களில், "target_link_libraries()" கட்டளையைப் பயன்படுத்தி இணைக்கும்போது இந்தக் கோப்பைப் பயன்படுத்தலாம். AIX இல் இயக்க நேர இணைப்பு இயல்புநிலையாக முடக்கப்பட்டுள்ளது, ஏனெனில் CMake இப்போது ஏற்ற நேரத்தில் இணைக்க தேவையான அனைத்து குறியீடு தகவல்களையும் வழங்குகிறது. டைனமிக் லைப்ரரிகள் அல்லது ஏற்றக்கூடிய தொகுதிகளின் இயக்க நேர இணைப்பைப் பயன்படுத்த, "CMAKE_SHARED_LINKER_FLAGS" மற்றும் "CMAKE_MODULE_LINKERFLAGS"_ என்ற மாறிகள் மூலம் வரையறுக்கப்பட்ட இணைப்பான் தொடக்கக் கொடிகளின் பட்டியல்களில் "-Wl, -G" விருப்பங்களை நீங்கள் வெளிப்படையாகக் குறிப்பிட வேண்டும்.

ஆதாரம்: opennet.ru

கருத்தைச் சேர்