私の知る限り、cmake で使用されるターゲット C++ コンパイラを変更する最善の方法は、CXX
cmake の呼び出しの直前に環境変数を変更することです。
$ export CXX="clang++" && cmake --build
Travis CI ビルドは、ビルドの設定CXX
にCC
応じて と を設定します。したがって、これがあなたの中にある場合.travis.yml
:
language: cpp
compiler:
- gcc
- clang
script:
- cmake --build
- ./bin/foo
初めてcmake
GCCを使用し、後者でClangを使用する必要がありますか?
代わりに、GCC ビルドは問題なくコンパイルされます (cmake で使用されるデフォルトのコンパイラ) が、Clang バージョンも GCC を使用します。
0.01s$ echo $CC $CXX
clang clang++
コマンド「echo $CC $CXX」は 0 で終了しました。0.02s$ $CXX --version
clang バージョン 3.4 (tags/RELEASE_34/final) ターゲット: x86_64-unknown-linux-gnu スレッド モデル: posix実行: cmake -G "Unix Makefiles" -Wno-dev ../cmake
-- C コンパイラの識別は GNU です
-- CXX コンパイラの識別は GNU です
-- C コンパイラの動作を確認します: /usr/bin/gcc
-- チェックしますC コンパイラの動作について: /usr/bin/gcc -- 動作
-- C コンパイラの ABI 情報を
検出中 -- C コンパイラの ABI 情報を検出中 - 完了
-- CXX の動作をチェック コンパイラ: /usr/bin/c++
-- CXX の動作をチェックコンパイラ: /usr/bin/c++ -- 動作
-- CXX コンパイラ ABI 情報を
検出中 -- CXX コンパイラ ABI 情報を検出中 - 完了
呼び出しの直前に、これらの変数を再度設定しようとしました。
- if [ "$CXX" == "clang++" ]; then export CXX="clang++" && cmake --build; fi
- if [ "$CXX" == "g++" ]; then export CXX="g++" && cmake --build; fi
これはあまり意味がないと思います...
これはGCCを使用した成功したビルドで、これは (と思われる) clang ビルドです。
私の質問は次のとおりです: Travis CI で cmake が使用するコンパイラを変更するにはどうすればよいですか?
これが私の .travis.yml です。