如何根据使用的功能自动选择最小的cmake版本?

Bha*_*rag 9 cmake

例如,我想要指定C++标准CMakeLists.txt:

set_property(TARGET tgt PROPERTY CXX_STANDARD 98)
Run Code Online (Sandbox Code Playgroud)

但是这只有在cmake 3.1.3之后才可用.不幸的是我仍然可以在第一行写CMakeLists.txt:

cmake_minimum_required(VERSION 2.8)
Run Code Online (Sandbox Code Playgroud)

我怎样才能确定我指定了正确的要求(3.1.3而不是2.8)?

usr*_*567 2

该命令cmake_minimum_required并不是为了检查您的代码是否可以从请求的 CMake 版本执行。CMake 策略的设置取决于请求的 CMake 版本,请参阅。文档.
因此,您必须使用给出的版本中的 CMake 测试您的代码cmake_minimum_required,并希望捕获所有相关的代码路径。