Выполнение make из cmake

Я начал изучать cmake и make недавно и столкнулся с проблемой, которую не могу решить.
У меня есть два проекта: небольшое тестовое приложение, использующее cmake в IDE CLion, и библиотека, в которой используется make, я не могу изменить ни одну из систем сборки. Я хотел бы собрать тот, который использует make, из проекта cmake. Файл make для библиотеки работает самостоятельно.

Это макет проекта:

project/CMakeLists.txt
project/libvz/Makefile
project/libvz/main.cpp

Я пробовал следующее:

CMakeLists.txt:

cmake_minimum_required(VERSION 3.0.0)
project(builder)

add_custom_target("libvz""/usr/bin/make -f ${CMAKE_CURRENT_SOURCE_DIR}/libvz/Makefile")

В этом случае я получаю сообщение об ошибке: «/ bin / sh: / usr / bin / make -f / home / szil / project / libvz / Makefile: такого файла или каталога нет»

Я также пытался построить с помощью команд ExternalProject_Add и ExternalProject_Add_Step, но ни одна из них не работала для меня.

Любая помощь приветствуется,
Спасибо!

2

Решение

Вам, вероятно, просто нужно избегать make команда в наборе кавычек. Делая это, CMake ищет исполняемый файл с именем «/ usr / bin / make -f …».

add_custom_target(libvz
/usr/bin/make -f "${CMAKE_CURRENT_SOURCE_DIR}/libvz/Makefile")

На первый взгляд, ExternalProject_Add звучит как лучший инструмент для этой работы — может быть, это не работает по той же причине, что и эта?

4

Другие решения