CMake Variables
- متغيرات CMake: دليل شامل للمبتدئين
تُعدّ متغيرات CMake جزءًا أساسيًا من عملية بناء المشاريع باستخدام نظام CMake. فهم هذه المتغيرات ضروري لأي شخص يرغب في تخصيص عملية البناء، وإدارة الاعتماديات، وتعديل سلوك CMake. يهدف هذا المقال إلى تقديم شرح مفصل لمتغيرات CMake للمبتدئين، مع التركيز على الاستخدامات الشائعة وأفضل الممارسات.
- ما هي متغيرات CMake؟
متغيرات CMake هي ببساطة أزواج اسم-قيمة تُستخدم لتخزين المعلومات التي يمكن الوصول إليها بواسطة CMake أثناء عملية البناء. يمكن استخدام هذه المتغيرات لتحديد مسارات الملفات، وتعيين خيارات المترجم، وتحديد العلامات، والتحكم في سلوك CMake بشكل عام. هناك نوعان رئيسيان من المتغيرات:
- **المتغيرات العادية:** تُستخدم لتخزين القيم التي يمكن تغييرها بواسطة المستخدم أو بواسطة CMakeLists.txt.
- **المتغيرات المخزنة (Cached Variables):** تُخزن قيمها في ذاكرة التخزين المؤقت لـ CMake، مما يسمح للمستخدم بتعديلها بسهولة عبر واجهة المستخدم الرسومية (مثل ccmake أو cmake-gui) أو من سطر الأوامر.
- أنواع متغيرات CMake
CMake يدعم أنواعًا مختلفة من المتغيرات:
- **String:** سلسلة نصية. غالبًا ما تستخدم لتخزين المسارات والأسماء.
- **Integer:** عدد صحيح.
- **Boolean:** قيمة منطقية (TRUE أو FALSE).
- **List:** قائمة من القيم.
- **Path:** مسار إلى ملف أو دليل.
- كيفية تعريف المتغيرات
يمكن تعريف المتغيرات في CMakeLists.txt باستخدام الأمر `set()`.
```cmake set(MY_VARIABLE "Hello, CMake!") set(MY_INTEGER 123) set(MY_BOOLEAN TRUE) ```
لتعريف متغير مخزن (cached variable)، استخدم الأمر `set()` مع الخيار `CACHE`.
```cmake set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the build type." FORCE) ```
الخيار `FORCE` يضمن استبدال أي قيمة موجودة للمتغير.
- كيفية الوصول إلى المتغيرات
يمكن الوصول إلى قيمة المتغير باستخدام بناء الجملة `${MY_VARIABLE}`.
```cmake message(STATUS "Value of MY_VARIABLE: ${MY_VARIABLE}") ```
- المتغيرات المدمجة (Built-in Variables)
CMake يوفر مجموعة من المتغيرات المدمجة التي توفر معلومات حول النظام والبيئة وعملية البناء. بعض المتغيرات الشائعة تشمل:
- `CMAKE_SOURCE_DIR`: دليل المصدر الرئيسي للمشروع.
- `CMAKE_BINARY_DIR`: دليل البناء.
- `CMAKE_BUILD_TYPE`: نوع البناء (Debug، Release، إلخ).
- `CMAKE_CXX_COMPILER`: مسار مترجم ++C.
- `CMAKE_C_COMPILER`: مسار مترجم C.
- `CMAKE_SYSTEM_NAME`: اسم نظام التشغيل.
- `CMAKE_SYSTEM_PROCESSOR`: معالج النظام.
- `PROJECT_NAME`: اسم المشروع (يتم تعيينه بواسطة الأمر `project()`).
- `PROJECT_VERSION`: رقم إصدار المشروع (يتم تعيينه بواسطة الأمر `project()`).
- استخدام المتغيرات في بناء المشروع
تُستخدم متغيرات CMake على نطاق واسع في عملية بناء المشروع. يمكن استخدامها لتحديد خيارات المترجم، وإضافة مسارات التضمين، وتحديد المكتبات المرتبطة، وإنشاء ملفات التكوين.
مثال:
```cmake set(INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/include") include_directories(${INCLUDE_DIRS})
set(LIBRARY_DIRS "${CMAKE_SOURCE_DIR}/lib") link_directories(${LIBRARY_DIRS})
add_executable(my_program main.cpp) target_link_libraries(my_program my_library) ```
- التعامل مع القوائم (Lists)
يمكن استخدام المتغيرات لتخزين قوائم من القيم. يمكن معالجة هذه القوائم باستخدام أوامر CMake مثل `list()` و `foreach()`.
```cmake set(MY_LIST "item1" "item2" "item3") list(LENGTH MY_LIST MY_LIST_LENGTH) message(STATUS "Length of MY_LIST: ${MY_LIST_LENGTH}")
foreach(ITEM ${MY_LIST})
message(STATUS "Item: ${ITEM}")
endforeach() ```
- أفضل الممارسات
- استخدم أسماء وصفية للمتغيرات.
- قم بتعليق CMakeLists.txt الخاص بك بشكل جيد لشرح الغرض من المتغيرات.
- استخدم المتغيرات المخزنة (cached variables) للسماح للمستخدم بتخصيص عملية البناء.
- تجنب استخدام المتغيرات العامة (global variables) قدر الإمكان. بدلاً من ذلك، استخدم المتغيرات المحلية داخل الوظائف والنطاقات.
- استخدم الأمر `find_package()` للعثور على الاعتماديات الخارجية.
- CMake و تداول الخيارات الثنائية (ربط مفاهيمي)
على الرغم من أن CMake لا يرتبط بشكل مباشر بتداول الخيارات الثنائية، إلا أن مبادئ إدارة الاعتماديات وتكوين البيئة التي يطبقها CMake يمكن أن تكون ذات صلة. تمامًا كما تحتاج إلى تحديد الاعتماديات الصحيحة (المكتبات، المترجمات) لبناء برنامج، يحتاج المتداول إلى تحديد المؤشرات الصحيحة (التحليل الفني، الأخبار الاقتصادية، تحليل حجم التداول) لاتخاذ قرارات تداول مستنيرة. يمكن تشبيه متغيرات CMake بالمعلمات التي يتم ضبطها في استراتيجية تداول لتحسين الأداء.
- استراتيجيات التداول والتحليل الفني
- استراتيجية مارتينجال
- استراتيجية المضاعفة
- استراتيجية المتوسطات المتحركة
- استراتيجية مؤشر القوة النسبية (RSI)
- استراتيجية بولينجر باند
- استراتيجية MACD
- تحليل الشموع اليابانية
- التحليل الموجي إليوت
- التحليل الفني الشامل
- التحليل الأساسي
- استراتيجيات إدارة المخاطر
- تداول الأخبار
- تداول الاختراقات
- تداول الارتدادات
- تداول النطاق
- تحليل حجم التداول
- حجم التداول كمؤشر للاتجاه
- حجم التداول وتأكيده للأنماط السعرية
- حجم التداول وتحديد نقاط الدعم والمقاومة
- حجم التداول والتقلبات
- التحليل المتقدم لحجم التداول
- الموارد الإضافية
- CMake Documentation
- CMake Wiki
- CMake Tutorial
- CMake FAQ
- CMake Mailing Lists
- CMake Stack Overflow
- CMake project examples
- Managing Dependencies with CMake
- Building and Installing Projects with CMake
- CMake Best Practices
- Advanced CMake Techniques
- Using CMake with IDEs
- CMake and Cross-Platform Development
- CMake Modules and Functions
- CMake Generators
ابدأ التداول الآن
سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين