在努力学习如何让 CMake 在 Visual Studio 中为跨平台项目做我需要的事情时,我了解了 ExternalProject_Add,它很好地解决了我的所有需求。摘抄:
ExternalProject_Add(googletest
PREFIX "${CMAKE_BINARY_DIR}/Downloads/googletest"
GIT_REPOSITORY "https://github.com/google/googletest.git"
GIT_TAG 718fd88d8f145c63b8cc134cf8fed92743cc112f
BINARY_DIR "${CMAKE_BINARY_DIR}/Downloads/googletest/${CMAKE_CFG_INTDIR}/build"
CMAKE_ARGS
"-DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/Dependencies/googletest"
"-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}"
"-DCMAKE_DEBUG_POSTFIX=''"
"-Dgtest_force_shared_crt=ON"
)
它引入了几个这样的依赖项,它在 Linux 和 Windows 上运行良好,你不能指望安装 LLVM 之类的东西。问题是我最终得到了“超级构建”的 Makefile/解决方案,以及我的实际项目的另一个。它运作良好,但它很混乱。我一直在考虑尝试使用 git 模块来引入依赖项,但我不确定这是否能正常工作。如何降低复杂性以便只有一个构建系统?
基本 CMakeLists.txt 位于https://github.com/coder0xff/Plange/blob/master/CMakeLists.txt