2

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

非常感谢任何帮助!

4

1 回答 1

2

构建 Visual Studio 项目的ExternalProject_Add工作方式略有不同。整个 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改用。

于 2014-02-10T10:15:56.507 回答