我使用CMake生成Visual Studio 2010项目和解决方案文件。其实我可以设置不同的设置,如警告等级 ,增量建筑标志等。来自CMake。但我无法设置其他包含和库,列在VC++目录配置选项卡中的 。其实我必须手动设置这些目录。这是愚蠢的 和无聊...如何将CMake包含和库添加到Visual Studio解决方案?
我试图设置下面的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文件我已经添加到我的dependeny模块路径, 行分隔:
c:\binrev\development\boost\1.47\includes
c:\binrev\repository\modules\brCore\trunk\includes
两者都读取成功,但不能设置为额外的 包括我的MSVC解决方案中的目录。
最好的问候, 地狱犬
我知道CMake是有据可查的,但这个变量不起作用。我设置了这些变量中的任何一个,但是当我打开MSVC解决方案时,没有任何设置。 – Hellhound 2012-01-16 11:39:54
我也尝试使用SET(ENV $ {PATH}“c:\ test \ ... \”)设置MSVC环境变量INCLUDE和PATH,但这也没有效果。 MSVC解决方案的目录是空的。 – Hellhound 2012-01-16 11:41:14
即使向'CMakeLists.txt'文件中添加'include_directories(/ path/to/include)',它们也不会被设置?你在声明你的目标之前是否加入了include_directories? (订单很重要)。如果是这样,你可以发布一些或全部说明问题的'CMakeLists.txt'文件吗?请注意,'CMAKE_INCLUDE_PATH'变量与编译器使用的包含路径无关,并且没有变量或称为'INCLUDE_DIRECTORY'的命令。 – 2012-01-16 12:52:28