【发布时间】:2012-01-16 11:21:16
【问题描述】:
我使用 CMake 生成 Visual Studio 2010 项目和解决方案文件。其实我可以设置不同的设置, 像警告级别,增量建筑标志等。来自 CMake。但我不能设置额外的包含和库, 列在 VC++ 目录配置选项卡中。实际上我必须手动设置这些目录。这是愚蠢的 又无聊……
我尝试设置以下 CMake 变量:CMAKE_INCLUDE_PATH、INCLUDE_DIRECTORY 但什么也没发生。如果我打开项目,解决方案的附加包含目录始终为空(仅给出标准 MSVE 设置)。
我也很累在创建可执行文件后设置这个变量,但这也没有效果。
这是我直接在 cmake 的标题中所做的 文件:
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(${MODULE_NAME})
IF (MSVC)
# Activate C++ exception handling
IF (NOT CMAKE_CXX_FLAGS MATCHES "/EHsc")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
ENDIF ()
# Set Warning level always to 4
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
ELSE ()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
ENDIF ()
#read path of dependency modules
file(READ "msvc.deps" MSVC_PROPERTIES)
STRING(REGEX REPLACE ";" "\\\\;" MSVC_PROPERTIES "${MSVC_PROPERTIES}")
STRING(REGEX REPLACE "\n" ";" MSVC_PROPERTIES "${MSVC_PROPERTIES}")
FOREACH(e ${MSVC_PROPERTIES})
SET(INCLUDE ${INCLUDE} ${e})
MESSAGE(STATUS "[INFO]: Value ${e}")
ENDFOREACH(e)
INCLUDE_DIRECTORIES(${INCLUDE})
ENDIF ()
在我添加到依赖模块路径的 .deps 文件中, 行分隔:
c:\binrev\development\boost\1.47\includes
c:\binrev\repository\modules\brCore\trunk\includes
均已成功读取,但无法设置为附加 在我的 MSVC 解决方案中包含目录。
最好的问候, 地狱犬
【问题讨论】:
标签: c++ visual-studio-2010 cmake