Подкаталог CMake - PullRequest
       7

Подкаталог CMake

1 голос
/ 07 сентября 2010

Я использую CMake и хочу попробовать сделать так, чтобы у меня был подкаталог для него, а не файлы, разбросанные по моему проекту или его корню.

У меня есть структура каталогов project/cmake/CMakeLists.txt и project/bin и project/source, поэтому люди могут легко удалить содержимое CMake, если захотят. Моя единственная проблема в том, что, вероятно, есть способ сделать это, о котором я не знаю. В настоящее время он генерирует кучу мусора, включая папку project/cmake/bin/obtap.dir/home/jookia/Programming/obtap/source.

cmake_minimum_required(VERSION 2.6)
project(obtap)
add_definitions(-g -Wall)
add_executable(../bin/obtap ../source/main.cpp)

Отлично компилируется, выводит правильные каталоги. Но мои проблемы таковы: Есть ли способ удалить каталог project/cmake/bin и, если нужно, есть ли способ не иметь все содержимое CMake, а просто сгенерировать make-файл, чтобы у меня было два файла, CMakeLists.txt и Makefile?

Ответы [ 2 ]

5 голосов
/ 07 сентября 2010

Как указано в CMake FAQ , сгенерированные файлы Makefile содержат полный путь к библиотекам и исходному коду, поэтому нет простого способа распространения дерева сборки, сгенерированного CMake.

1 голос
/ 02 ноября 2012

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

mkdir -p project/bld/
cd project/bld/
cmake project/cmake

Теперь вы получаете все материалы CMake, сгенерированные в каталоге project / bld , и всякий раз, когда вы хотите удалить все эти вещи, простоrun:

rm -fr project/bld/

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

Одна проблема может возникнуть, если вы хотите контролировать сгенерированный путь вывода исполняемого файла, чтобы он не был скрытв глубоко вложенном промежуточном бинарном дереве cmake;ответ заключается в том, что вы можете установить переменную CMAKE_CURRENT_BINARY_DIR , чтобы настроить абсолютный путь к выходному файлу исполняемого файла, или просто использовать команды cmake -E и add_custom_command для копирования исполняемого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...