【发布时间】:2017-08-24 08:01:45
【问题描述】:
我目前正在使用一个 CMakeLists.txt 文件,该文件将执行外部 CMakeLists.txt(和依赖项)。
为此,我使用 ExternalProject_Add 命令,但我找不到指定“.sln”文件生成位置的方法。
这是我使用的命令:
include(ExternalProject)
set(LIBRARY_SOURCE_DIR C:/Library)
ExternalProject_Add(Library
SOURCE_DIR "${LIBRARY_SOURCE_DIR}"
CMAKE_ARGS
-DCMAKE_BUILD_TARGET_ANDROID:BOOL=ON
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_CONFIGURATION_TYPES=${CMAKE_CONFIGURATION_TYPES}
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
-G@CMAKE_GENERATOR@
BUILD_COMMAND ""
)
所以,我正在寻找一种在此调用中直接指定它的方法。有什么想法吗?
我也试过了,没办法:
PREFIX LibraryBuild
SOURCE_DIR "${LIBRARY_SOURCE_DIR}"
BINARY_DIR "${LIBRARY_SOURCE_DIR}/LibraryBuild"
INSTALL_DIR "${LIBRARY_SOURCE_DIR}/LibraryBuild"
BUILD_COMMAND "cmake --build ./LibraryBuild"
CMAKE_ARGS
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY="./LibraryBuild"
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY="./LibraryBuild"
-DCMAKE_EXECUTABLE_OUTPUT_DIRECTORY="./LibraryBuild"
"./LibraryBuild"
-DCMAKE_CURRENT_BINARY_DIR="./LibraryBuild"
-DCMAKE_GENERATOR="Visual Studio 15 2017 Win64"
【问题讨论】:
-
您尝试过
BINARY_DIR选项吗? (出于某种原因,在构建步骤下列出)。 -
谢谢,是的,我试过 BINARY_DIR 但没有帮助。
-
删除该行:
-DCMAKE_CURRENT_BINARY_DIR="./LibraryBuild"。变量 CMAKE_CURRENT_BINARY_DIR 应假定为只读。但是您可以添加-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>行:CMake 不会自动执行此操作。在您的情况下,.sln文件在哪里生成? -
谢谢。我试过但没有运气!因此,所有内容都生成在与主 cmakelists.txt 文件相同的文件夹中!