CMakeでGCCバージョン4+を必要とする方法はありますか?

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

  •  22-07-2019
  •  | 
  •  

質問

GCC v4 +で提供されているいくつかの機能を使用していますが、CMakeでGCC v4コンパイラを検索し、見つからない場合はGCC v4が必要であることを示すエラーを返します。

誰もがこのようなことをする方法に関するモジュール/アイデアを持っていますか?

ありがとう。

役に立ちましたか?

解決

try_compile()コマンドを使用して、次のプログラムのコンパイルを試みます

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

他のヒント

gccバージョンチェックを実装するためのまったく異なる(必ずしも良いとは限りません)方法は次のようになります。

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自体にすぐに解決策があるかもしれません。 http://cmake.3232098.n2.nabble.com/GCC -compiler-version-td7185771.html

cmakeの今後のリリースには、 CMAKE_C_COMPILER_VERSION および CMAKE_CXX_COMPILER_VERSION の2つの変数が含まれる場合があります。

ハラス、2.8.8の変更ログではまだ見ていません。

今のところ@cmakerソリューションを使用しています。

ツールチェーンファイルもあります。これは、 vtk wikiで言及されています。これにより、カスタムツールチェーンを指定できます。通常、クロスコンパイルに使用されますが、他のツールチェーンを機能させるために以前に使用しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top