我正在开发一个模板CMake文件,用于将来的项目。 就我而言,我是clang的超级粉丝,但我不想强迫所有使用我的项目的人也使用clang。 最好的情况是,如果clang没有编译器,那么它可以简单地工作任何编译器。
我找到了下面这行代码,但在我的测试id中似乎没有做任何事情。
set(CMAKE_C_COMPILER_NAMES clang gcc icc cc)
set(CMAKE_CXX_COMPILER_NAMES clang++ g++ icpc c++ cxx)
按照以下顺序确定优先级的最佳方法是什么:
您应该让CMake使用用户配置它使用的编译器,或者他们配置为默认的编译器,或者他们的系统默认使用的编译器。 在cmakelists.txt中添加编译器选择代码会适得其反。
如果您知道程序不能与特定的编译器一起工作,您可以检查并显示一条警告消息。
作为用户,您可以指定cc
和cxx
环境变量来选择编译器,或者指定覆盖前者的cmake_
变量。