[CMake] How to add CMake includes and libraries to Visual Studio Solution?
hellhound at binary-revolution.org
hellhound at binary-revolution.org
Mon Jan 16 10:24:52 EST 2012
I use CMake to generate a Visual Studio 2010 project and solution file. Actually I could set different settings, like warning level, incremental building flag ect. from CMake. But I can't set additional includes and libraries, listed in the VC++ Directory configuration tab.
For GCC projects anything is running fine and I could compile and link the project. For MSVC I've
to add those directories manually to perform a compile and link. But this is stupid and boring...
I tried to set the following CMake variables:
INCLUDE_DIRECTORIES
LINK_DIRECTORIES
CMAKE_INCLUDE_PATH
but nothing happend. If i open the project, the additional include directory of the solution is always empty (only standard MSVE settings are given). I tired to set this variables after executable creation, but this has also no effect.
I also tried to set the MSVC environment variables INCLUDE and PATH with SET(ENV${PATH} "c:\test\...\") but this also has no effect. The directories of the MSVC solution are empty.
This is what i do directly in the header of the cmake file:
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 ()
In the .deps file I've added to path of my dependeny modules, line separated:
c:\binrev\development\boost\1.47\includes
c:\binrev\repository\modules\brCore\trunk\includes
Both are read successfully but couldn't be set as additional include directory in my MSVC solution.
Best regards, Hellhound
More information about the CMake
mailing list