我目前正在使用一个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"
答案 0 :(得分:0)
请给它BINARY_DIR
,但不要给它BUILD_COMMAND
。给它一个空BUILD_COMMAND
意味着"什么都不做"用于构建步骤并使用" cmake --build ./LibraryBuild"除非cmake在你的PATH中,并且使用Visual Studio解决方案,你还需要指定" - config Release"或" - config Debug"。
如果完全放弃BUILD_COMMAND
用于CMake驱动的项目,CMake将为使用的CMAKE_GENERATOR生成正确的默认构建命令。
此外,我强烈建议您为BINARY_DIR
和INSTALL_DIR
使用不同的值。它们不应重叠。我建议您将INSTALL_DIR
作为BINARY_DIR
的子目录或兄弟目录,如果它不是规范安装(即" / usr"或" C:/ Program Files ...")