CMake 3.17.0 بلڈ سسٹم کی ریلیز

کی طرف سے پیش کراس پلیٹ فارم اوپن بلڈ اسکرپٹ جنریٹر کی رہائی وزیراعلیٰ 3.17، جو Autotools کے متبادل کے طور پر کام کرتا ہے اور KDE، LLVM/Clang، MySQL، MariaDB، ReactOS اور Blender جیسے پروجیکٹس میں استعمال ہوتا ہے۔ CMake کوڈ C++ میں لکھا جاتا ہے اور BSD لائسنس کے تحت تقسیم کیا جاتا ہے۔

CMake ایک سادہ اسکرپٹنگ لینگویج، ماڈیولز کے ذریعے فعالیت کو بڑھانے کا ایک ذریعہ، انحصار کی کم سے کم تعداد (M4، Perl یا Python کے لیے کوئی پابند نہیں)، کیشنگ سپورٹ، کراس کمپائلیشن کے لیے ٹولز کی موجودگی، تعمیر بنانے کے لیے معاونت فراہم کرنے کے لیے قابل ذکر ہے۔ بلڈ سسٹمز اور کمپائلرز کی ایک وسیع رینج کے لیے فائلیں، ٹیسٹ اسکرپٹس کی وضاحت اور پیکجز بنانے کے لیے موجودگی ctest اور cpack یوٹیلیٹی، تعاملاتی طور پر تعمیراتی پیرامیٹرز کو ترتیب دینے کے لیے cmake-gui یوٹیلٹی۔

اہم بہتری:

  • ننجا ٹول کٹ پر مبنی ایک نیا اسمبلی اسکرپٹ جنریٹر شامل کیا گیا ہے - "ننجا ملٹی کنفیگ"، جو ایک ساتھ کئی اسمبلی کنفیگریشنز پر کارروائی کرنے کی صلاحیت میں پرانے جنریٹر سے مختلف ہے۔
  • بصری اسٹوڈیو کے لیے اسمبلی اسکرپٹ جنریٹر میں نمودار ہوا ہر کنفیگریشن سے وابستہ سورس فائلوں کی وضاحت کرنے کی صلاحیت (فی کنفیگریشن ذرائع)۔
  • CUDA ("cuda_std_03"، "cuda_std_14"، وغیرہ) کے لیے میٹا پیرامیٹرز سیٹ کرنے کی صلاحیت کو کمپائلر پیرامیٹرز (کمپائل فیچرز) سیٹ کرنے کے ٹولز میں شامل کر دیا گیا ہے۔
  • CUDA استعمال کرتے وقت رن ٹائم لائبریریوں کی قسم کو منتخب کرنے کے لیے "CMAKE_CUDA_RUNTIME_LIBRARY" اور "CUDA_RUNTIME_LIBRARY" متغیرات کو شامل کیا گیا۔
  • CUDA زبان کو فعال کیے بغیر سسٹم پر دستیاب CUDA ٹول کٹ کا تعین کرنے کے لیے "FindCUDAToolkit" ماڈیول شامل کیا گیا۔
  • تلاش کی کارروائیوں کو انجام دیتے وقت اضافی پڑھنے کے قابل تشخیص کو آؤٹ پٹ کرنے کے لیے cmake میں "-debug-find" کمانڈ شامل کی گئی۔ اسی طرح کے مقاصد کے لیے، CMAKE_FIND_DEBUG_MODE متغیر کو شامل کیا گیا ہے۔
  • "FindCURL" ماڈیول میں cmake سے تیار کردہ کنفیگریشن فائلز "CURLConfig.cmake" کا استعمال کرتے ہوئے CURL ٹولز کی تلاش کے لیے معاونت شامل کی گئی۔ اس رویے کو غیر فعال کرنے کے لیے، CURL_NO_CURL_CMAKE متغیر فراہم کیا جاتا ہے۔
  • FindPython ماڈیول نے "conda" کا استعمال کرتے ہوئے منظم مجازی ماحول میں Python اجزاء کو تلاش کرنے کی صلاحیت کو شامل کیا ہے۔
  • ctest یوٹیلیٹی نے ٹیسٹ نہ ہونے کی صورت میں رویے کی وضاحت کرنے کے لیے "--no-tests=[error|ignore]" کے اختیارات شامل کیے ہیں اور ٹیسٹوں کو دوبارہ چلانے کے لیے شرائط طے کرنے کے لیے "--دوہرائیں" (پاس ہونے تک، ٹائم آؤٹ کے بعد)۔
  • اسمبلی ٹارگٹ پراپرٹیز INTERFACE_LINK_OPTIONS, INTERFACE_LINK_DIRECTORIES اور INTERFACE_LINK_DEPENDS اب جامد طور پر جمع شدہ لائبریریوں کے اندرونی انحصار میں منتقل کر دیے گئے ہیں۔
  • MinGW ٹول کٹ کا استعمال کرتے وقت، find_library کمانڈ کے ساتھ DLL فائلوں کی تلاش کو ڈیفالٹ کے ذریعے غیر فعال کر دیا جاتا ہے (اس کے بجائے، پہلے سے طے شدہ کوشش ".dll.a" لائبریریوں کو درآمد کرنا ہے)۔
  • ننجا جنریٹر میں ننجا یوٹیلیٹی کو منتخب کرنے کی منطق اب ایگزیکیوٹیبل فائل کے نام پر منحصر نہیں ہے - PATH ماحولیاتی متغیر کے ذریعے بیان کردہ راستوں میں پائی جانے والی پہلی ننجا بلڈ، ننجا یا سامو یوٹیلیٹی استعمال کی جاتی ہے۔
  • cmake میں ایک "-E rm" کمانڈ شامل کی گئی جسے الگ الگ "-E remove" اور "-E remove_directory" کمانڈز کی بجائے فائلوں اور ڈائریکٹریوں کو ہٹانے کے لیے استعمال کیا جا سکتا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں