将CMAKE项目添加到Visual Studio解决方案中

Adding a CMake project to a Visual Studio solution

本文关键字:Studio 解决方案 Visual CMAKE 项目 添加      更新时间:2023-10-16

我正在研究Visual Studio 2013项目,并希望将其链接到使用CMake生成构建配置的库。例如:

project
|-> src
    |-> project.sln
|-> dep
    |-> library
        |-> src
            |-> CMakeLists.txt

当我在Visual Studio构建项目时,是否有一种方法可以配置,构建和将我的库链接到我的项目?

我最终想让整个项目成为CMAKE项目,并生成一个全面的视觉工作室解决方案,但目前非常大且复杂。在有限的时间内,我想知道我最好的选择是什么。是否有一种干净的方法可以使用VS自定义构建命令?

这是Cmake配置和构建步骤的最简化版本。

只需在与CMakeLists.txt同一文件夹中创建一个配置类型/实用程序项目,然后添加:

  • pre-build事件/命令行

    IF NOT EXIST "bin*.sln" ( cmake -H"." -B"bin" )
    

    或较新版本的Cmake

    IF NOT EXIST "bin*.sln" ( 
        cmake -H"." -B"bin" -DCMAKE_MAKE_PROGRAM:PATH="$(DevEnvDir)devenv.exe"
    )
    

    仅仅因为我个人不喜欢它使用msbuild.exe(默认为默认值)。

  • 后构建事件/命令行

    cmake --build "bin" --config "$(Configuration)"
    

替代

您还可以通过include_external_msproject()命令创建一个root CMakeLists.txt,导入现有的.vcproj文件:

cmake_minimum_required(VERSION 2.6)
project(project)
include_external_msproject(${PROJECT_NAME} src/${PROJECT_NAME}.vcxproj)
...
add_subdirectory(dep/library/src library)

参考

  • 如何知道CMAKE项目生成是否以成功结束
  • msbuild.exe停止了cmake错误