LINUX.ORG.RU

[Qt] как правильно распространять код?

 


0

0

Доброе время суток!

Вот накалякал программку QtAcl и встал вопрос: как распространять, т.е. даже как идеологически правильно?

1. Просто распространять с *.pro файлом и просить всех делать qmake && make?

2. Заюзать autotools?

Спасибо заранее.


Ящитаю что второе (хоть первое и требует меньше телодвижений со стороны разработчика)

yoghurt ★★★★★
()

Если программу собираешься распространять _только_ в исходниках, то не надо изобретать велосипедов. Поскольку у тебя в проекте нет ничего экзотического, то qmake достаточно, иначе лучше пользовать cmake. autotools в связке с qt - очень неэффективно.
Как уже упомянули выше, то для бинарных релизов лучше использовать пакеты под дистрибутив.

UVV ★★★★★
()

Исходники - qmake или cmake. Бинарные пакеты сам понимаешь.

name_no ★★
()
Ответ на: комментарий от yoghurt

Кто умеет запустить configure тот сумеет запустить и qmake. Нафига придумывать геморрой на свою задницу ?

Reset ★★★★★
()
Ответ на: комментарий от ip1981

*.pro - да, хорошая штука

>Кто умеет запустить configure тот сумеет запустить и qmake

плюс, никто не отменял:
echo "To install this package make the following:
1) qmake -project
2) qmake
3) make
4) make install" >INSTALL

правда последний пункт придется обеспечивать дополнительными плясками с проектом.

xydo ★★
()
Ответ на: комментарий от sobrano_bez_parity

> А как в qmake сделать поддержку make install, причём чтобы это работало на всех системах?

А оно поддерживается искаропки. make install под виндой и макосью не имеет смысла, под UNIX-like всё работает без проблем.

name_no ★★
()
Ответ на: комментарий от sobrano_bez_parity

> А если это не хардкодить, то как? И какова тут общепринятая практика?

А почему бы не захардкодить? Это POSIX, это стандарт. Маинтайнеры для дистрибу всегда могут исправить пути. Общепринятая практика и есть - захардкодить. И в autotools то же самое. Все эти пути можно всегда исправить параметрами командной строки, опять же как в autotools.

name_no ★★
()
Ответ на: комментарий от sobrano_bez_parity

Ок, а что тогда в qmake вместо configure --prefix=...?

любая переменная. Впиши ей в target.path, например так:

target.path = $$prefix/bin

переменные можно передавать qmake в командной строке.

И кстати, умеет ли оно make install DESTDIR=...?

Это не qmake, это make, да умеет. Вот пример из результирующего Makefile

install_target: first FORCE
        @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/bin/ || $(MKDIR) $(INSTALL_ROOT)/bin/
        -$(INSTALL_PROGRAM) "../unix/$(QMAKE_TARGET)" "$(INSTALL_ROOT)/bin/$(QMAKE_TARGET)"
        -strip "$(INSTALL_ROOT)/bin/$(QMAKE_TARGET)"

«$(INSTALL_ROOT) предназначен для задания через командную строку, нигде в makefile не определяется.

name_no ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.