crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> qmake && удаление каталогов в Makefile
klerk
  опции профиля:
сообщение 9.3.2009, 1:10
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 9.3.2009
Пользователь №: 596

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте.

Есть файл проекта (.pro). По нему с помощью qmake генерится Makefile.

Нужно: в цель "clean" Makefil'а добавить удаление некоторых каталогов

Каким образом мне отредактировать файл проекта, чтобы добится желаемого? (скорее всего, нужно просто дополнить определенную переменную - какую?)

В справке нашел только QMAKE_CLEAN и QMAKE_DISTCLEAN, но они работают с файлами. В результирующих Makefil'ах постоянно вижу переменную DEL_DIR => скорее всего, мое желание реализуемо.

ЗЫ: Отредактировать Makefile руками не годиться.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 9.3.2009, 14:05
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Это пропиши в .pro файле, test - название каталога.

clean.depends += myclean
myclean.commands = $${QMAKE_DEL_DIR} test
QMAKE_EXTRA_TARGETS += clean myclean


Следует также помнить, что удаление каталога будет производится ровно столько раз сколько у тебя вариантов сборок. Т.е. для debug и release - 2 раза. При желании можно добавить проверку на существование каталога, но лучше создавать свои каталоги для разных сборок типа debug_test, release_test. Еще хочу напомнить, что есть цель install и uninstall, первая может создавать каталоги и копировать файлы, вторая удаляет файлы и каталог в которую проводилась установка.

Правда я не знаю твоей задачи, поэтому смотри сам.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.3.2009, 15:11
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


SABROG, а что такое clean, myclean?
тыб вообще расшифровал запись, а то не понятно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 9.3.2009, 15:23
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


clean - это стандартная цель в makefile:

clean: debug-clean release-clean FORCE


Используется при полной перекомпиляции проекта: make clean

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

myclean - имя новой цели, которое я объявляю.
myclean.commands - любые команды консоли или вызов программ, необходимых, чтобы "собрать цель", обычно что-то типа "g++ $(SOURCES)"

$${QMAKE_DEL_DIR} - переменная "DEL_DIR = rmdir" в makefile. Для разных ОС разные команды, поэтому использую кроссплатформенный вариант переменной.

QMAKE_EXTRA_TARGETS - добавление собственных целей в Makefile.

Отсюда появляются следующие возможности:

make myclean - удалит директорию
make clean - удалит директорию через вызов myclean и сгенерированные во время компиляции файлы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 23:49