我使用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