标题几乎是自我解释的。我需要检测VS Express以禁用Express中无法使用的某些功能。
答案 0 :(得分:0)
在CMake中,理念是直接检测特征,然后定义指示这些特征存在的变量。您可以使用该变量来调整构建。
在这种情况下,该功能是ATL,因此您要做的不是识别Visual Studio的免费版本,而是检测系统上是否存在ATL。您可以通过多种方式执行此操作:
以下是使用第二种方法的示例:
cmake_minimum_required(VERSION 3.0)
project(foo CXX)
get_filename_component(_vc_bin_dir ${CMAKE_CXX_COMPILER} DIRECTORY)
get_filename_component(_vc_dir ${_vc_bin_dir} DIRECTORY)
set(_vc_atlmfc ${_vc_dir}/atlmfc)
if(IS_DIRECTORY ${_vc_atlmfc})
message(STATUS "You have ATL/MFC available in ${_vc_atlmfc}.")
else()
message(STATUS "You don't have ATL/MFC.")
endif()
add_executable(a a.cpp)
get_filename_component
是一个CMake 3.0命令,因此需要3.0版本。