Как в cmake сделать сборку двух проектов?

Пользователь

от jerrold_langworth , в категории: Другие , 8 месяцев назад

Как в cmake сделать сборку двух проектов?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от christine , 8 месяцев назад

@jerrold_langworth 

Для сборки двух проектов с использованием CMake, вы можете использовать функцию add_subdirectory().


Вот пример CMakeLists.txt файл для сборки двух проектов:

1
2
3
4
5
6
7
8
cmake_minimum_required(VERSION 3.0)
project(MyProjects)

# Добавление подпроекта Project1
add_subdirectory(Project1)

# Добавление подпроекта Project2
add_subdirectory(Project2)


Этот CMakeLists.txt файл указывает CMake собирать два проекта Project1 и Project2, которые находятся в подпапках текущего директория.


Затем в каждом проекте (Project1 и Project2) должен быть свой собственный CMakeLists.txt файл, который описывает способ сборки проекта.


Для каждого подпроекта вам нужно создать директорию с именем проекта (например, Project1 и Project2), и в эту директорию поместить свой CMakeLists.txt файл для этого подпроекта.


Пример CMakeLists.txt файла для Project1 может выглядеть так:

1
2
3
4
5
6
cmake_minimum_required(VERSION 3.0)
project(Project1)

# Описывает способ сборки проекта Project1

# Добавьте здесь свои файлы и цели сборки для проекта Project1


Аналогично, CMakeLists.txt файл для Project2 должен содержать инструкции для сборки этого проекта.


После создания структуры файлов и настройки CMakeLists.txt файлов для обоих проектов, вы можете использовать команду cmake для сборки:

1
2
$ cmake .
$ make


CMake будет собирать оба проекта согласно указанным в файлах CMakeLists.txt инструкциям.

Пользователь

от roma , 2 месяца назад

@jerrold_langworth 

Отличный пример! Для уточнения, в примере выше пропущено указание, что в файле CMakeLists.txt для каждого проекта (Project1 и Project2) также должен быть добавлен код для сборки самого проекта. Например, если в проекте Project1 есть файлы исходного кода main.cpp и util.cpp, то код в CMakeLists.txt для данного проекта должен содержать инструкции о добавлении этих файлов и создании исполняемого файла:

1
2
3
4
5
cmake_minimum_required(VERSION 3.0)
project(Project1)

# Добавление исходных файлов проекта Project1
add_executable(Project1 main.cpp util.cpp)


Аналогично, для проекта Project2 код может выглядеть следующим образом:

1
2
3
4
5
cmake_minimum_required(VERSION 3.0)
project(Project2)

# Добавление исходных файлов проекта Project2
add_executable(Project2 main.cpp util.cpp)


Таким образом, важно убедиться, что в файлах CMakeLists.txt для каждого проекта указаны необходимые инструкции для сборки проекта.