البرمجة

تنفيذ سكريبت الشل مع CMake

عند العمل مع CMake لتنفيذ سكريبتات الشل المخصصة ونسخ الملفات في وقت البناء، هناك بعض الأمور التي يجب مراعاتها لضمان عملية التنفيذ بنجاح. للقيام بذلك، يمكنك اتباع الخطوات التالية:

أولاً وقبل كل شيء، يجب التأكد من أن الأذونات اللازمة مُمنحة لملف السكريبت لتنفيذه. يمكنك استخدام الأمر chmod لمنح الأذونات اللازمة للملف. على سبيل المثال، يمكنك استخدام الأمر التالي:

bash
chmod +x /path/to/create-doc.sh

ثانياً، يجب تضمين السكريبت وعملية النسخ في ملف CMakeLists.txt الخاص بالمشروع. يجب وضع الأمر في الجزء المناسب من ملف CMakeLists.txt لضمان تنفيذه في الوقت المناسب أثناء عملية البناء. يمكنك استخدام الأمر add_custom_command مع الأمر BYPRODUCTS لتحديد الملفات الناتجة والتي يتعين نسخها إلى دليل البناء.

قد يبدو ملف CMakeLists.txt الخاص بالمجلد doc كالتالي:

cmake
# CMakeLists.txt في مجلد doc # تعريف الأمر الخاص لتنفيذ السكريبت add_custom_command( OUTPUT doc.pdf COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/create-doc.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMENT "Generating documentation" VERBATIM ) # تحديد الملف الناتج والذي يجب نسخه إلى دليل البناء add_custom_target( generated_docs DEPENDS doc.pdf COMMENT "Copying generated documentation to build directory" COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc.pdf ${CMAKE_BINARY_DIR}/doc.pdf ) # ضمان تنفيذ عملية النسخ بعد تنفيذ الأمر الخاص add_dependencies(generated_docs doc.pdf)

في هذا المثال، يتم استخدام add_custom_command لتنفيذ السكريبت create-doc.sh في وقت البناء لإنشاء ملف doc.pdf. ثم يتم استخدام add_custom_target لنسخ الملف الناتج إلى دليل البناء باستخدام أمر ${CMAKE_COMMAND} -E copy. يتم تحديد الأمر الخاص بنسخ الملف باعتماده على الأمر الخاص بتنفيذ السكريبت، وهذا يضمن أنه سيتم نسخ الملف فقط بعد إنشائه.

من الجدير بالذكر أن استخدام الأمر VERBATIM يضمن أن الشرطات الخاصة بالأمر الخاص ستُفسر بشكل صحيح، مما يضمن تنفيذه بدقة.

باستخدام هذه الإعدادات، يجب أن يعمل سكريبت create-doc.sh وأن يتم نسخ الملف الناتج إلى دليل البناء بنجاح خلال عملية البناء باستخدام CMake.

المزيد من المعلومات

بعدما قمت بإضافة الأمر الخاص لتنفيذ السكريبت وتحديد الملف الناتج الذي يجب نسخه إلى دليل البناء، يمكنك الآن استكمال ملف CMakeLists.txt الخاص بالمشروع لتضمين هذه العمليات وتنفيذها بنجاح.

إليك كيفية استكمال الملف:

cmake
# تضمين CMakeLists.txt في مجلد doc إلى المشروع الرئيسي add_subdirectory(doc) # تحديد الهدف النهائي للبناء add_executable(my_executable main.cpp) # ربط الأمر الخاص بالتنفيذ السابق لإنشاء الملفات اللازمة add_dependencies(my_executable generated_docs)

هذا الجزء من الملف يقوم بتضمين الملف CMakeLists.txt في مجلد doc إلى المشروع الرئيسي باستخدام add_subdirectory. وبعد ذلك، يتم تعريف الهدف النهائي للبناء باستخدام add_executable. وأخيرًا، يتم ربط الأمر الخاص بتنفيذ السكريبت ونسخ الملفات إلى الهدف النهائي للبناء باستخدام add_dependencies.

من خلال هذه الخطوات، يجب أن يتم تنفيذ السكريبت create-doc.sh في وقت البناء ونسخ ملف الناتج إلى دليل البناء بنجاح. يُمكنك الآن بناء المشروع باستخدام CMake دون مشاكل، مع ضمان إنشاء الملفات اللازمة ونسخها بنجاح.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر