我正在使用VS2012 + cmake2.8.12。我的问题是CMake无法生成我的外部项目的正确路径。例如:
Project("{...}") = "external", "external.vcxproj", "..."
而'external.vcxproj'
应该是..\path\to\external.vcxproj
以下是我使用ExternalProject_Add命令的方法:
ExternalProject_Add(external SOURCE_DIR ${CMAKE_SOURCE_DIR}/../../int/external
CMAKE_ARGS ..
BINARY_DIR ${CMAKE_SOURCE_DIR}/../../int/external/build)
非常感谢任何帮助!
答案 0 :(得分:2)
使用ExternalProject_Add
构建Visual Studio项目的工作略有不同。整个ExternalProject模块独立于平台,并且不了解Visual Studio构建系统的特性。因此,仅添加VS项目将无法工作,因为ExternalProject不知道如何构建它。相反,您必须指定用于构建项目的完整命令行。类似的东西:
ExternalProject_Add(external_test
SOURCE_DIR ${PROJECT_SOURCE_DIR}
CONFIGURE_COMMAND ""
BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} ${PROJECT_SOURCE_DIR}/path/to/external.sln /build Release /project optional_project_within_solution
INSTALL_COMMAND "")
正如你所看到的,这是一团糟。如果您只想在CMake生成的解决方案中包含现有VS项目,请考虑改为使用include_external_msproject
。