2017-02-21 49 views
1

Я работаю над проектом Visual Studio 2013 и хочу связать его с библиотекой, которая использует CMake для создания конфигурации сборки. Например:Добавление проекта CMake в решение Visual Studio

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

Есть ли способ настроить, строить и связать свою библиотеку к моему проекту, когда я создаю проект в Visual Studio?

Я хотел бы в конечном итоге сделать весь проект проектом CMake и создать комплексное решение Visual Studio, но в настоящее время он довольно большой и сложный. С ограниченным временем, мне интересно, какой у меня лучший вариант. Есть ли чистый способ сделать это с помощью VS Custom Build команд?

ответ

0

Вот наиболее упрощенная версия настроек и шагов сборки CMake.

Просто создать проект типа Configuration/Utility в той же папке, что CMakeLists.txt и добавить:

  • Pre-Build Event/Командная строка

    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 (что было бы по умолчанию).

  • Post-Build Event/Командная строка

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

Alternative

Вы также можете создать корень CMakeLists.txt импортирования существующих .vcproj файлов с помощью include_external_msproject() команд:

cmake_minimum_required(VERSION 2.6) 

project(project) 

include_external_msproject(${PROJECT_NAME} src/${PROJECT_NAME}.vcxproj) 
... 
add_subdirectory(dep/library/src library) 

Справочник