使用ExternalProject_Add后缺少项目

时间:2014-02-07 18:20:16

标签: visual-studio-2012 cmake external-project

我正在使用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)

非常感谢任何帮助!

1 个答案:

答案 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