أي طريقة في CMake تتطلب من دول مجلس التعاون الخليجي الإصدار 4+?

StackOverflow https://stackoverflow.com/questions/435708

  •  22-07-2019
  •  | 
  •  

سؤال

أنا باستخدام بعض الميزات التي يتم توفيرها في دول مجلس التعاون الخليجي v4+ وأود CMake أن تجد دول مجلس التعاون الخليجي v4 مترجم و إذا لم تجده بإرجاع خطأ تفيد دول مجلس التعاون الخليجي v4 مطلوب.

أي شخص لديه أي وحدات / الأفكار حول كيفية القيام بشيء ما مثل هذا ؟

شكرا

هل كانت مفيدة؟

المحلول

استخدم الأمر try_compile () ومحاولة لترجمة البرنامج التالي

#if __GNUC__ != 4
#error
#endif
int main() { return 0; }

نصائح أخرى

وهناك مختلفة تماما طريقة (وليس بالضرورة أفضل) لتنفيذ التحقق من الإصدار دول مجلس التعاون الخليجي سيكون شيئا مثل:

if(CMAKE_COMPILER_IS_GNUCXX)
  exec_program(
      ${CMAKE_CXX_COMPILER}
      ARGS                    --version
      OUTPUT_VARIABLE _compiler_output)
  string(REGEX REPLACE ".* ([0-9]\\.[0-9]\\.[0-9]) .*" "\\1"
         gcc_compiler_version ${_compiler_output})
  message(STATUS "C++ compiler version: ${gcc_compiler_version} [${CMAKE_CXX_COMPILER}]")

  if(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]")
    message(FATAL_ERROR "foobar")
    ...

  if(gcc_compiler_version VERSION_GREATER "4.5.99")
  ...
...

هناك قد يكون قريبا حل في cmake نفسها ، cf. http://cmake.3232098.n2.nabble.com/GCC-compiler-version-td7185771.html

الإصدارات المستقبلية من cmake قد تشمل اثنين من المتغيرات : CMAKE_C_COMPILER_VERSION و CMAKE_CXX_COMPILER_VERSION.

هالاس, أنا لم أر منهم حتى الآن في 2.8.8 التغيير.

يمكنني استخدام @cmaker حل الآن.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top