LINUX.ORG.RU

Как в этом вашем qmake задать путь установки приложения?

 , , ,


0

2

Каждый сука раз при попытке собрать проект из исходников с этой псевдосистемой метасборки я натыкаютсь на ряд проблем.

В shotcut ребята вообще умудрились как то жёстко прописать пути линковки что запускается он только из /usr/local, или надо смволические ссылки делать, но основных пролем 2:

  1. проблема опакетить приложение, не сейчас не об этом.

  2. Я зарёкся ставить с помощью sudo make install, и теперь делаю что бы оно ставилось в $HOME/.local, обычно то что ставится таким образом на компе нужно только мне, а удалять в случае чего в разы проще, не травмирует систему. Но вот как это делать в qmake я не понимаю, cmake всё даёт по умолчанию, make зависит от конкретного скрипта.

Нужно заставить qmake указывать нужный мне путь установки программы.

Праграмма librecad, и по их инструкциям зачем то нужен qmake -r.


P.S.

Если ты разраб, выкинь это гуано, не поленись, изучи cmake, избежишь кучи проблем, он гораздо лучше кто бы что не говорил, у него получаются более быстрые makefileы, он умеет не только с make работать, где то даже разбирали переход с одного на другое, ну может make классический в ряде случаев удобнее.



Последнее исправление: nikitalol (всего исправлений: 3)
Ответ на: комментарий от Ivan_qrt

Ну это ведение версии руками.

Ну от этого никуда не деться. changelog тоже руками надо писать, никто не жалуется.

Ну так конечно не нужны, у них же есть git submodule. Правда тебе это почему-то не нравится, а виноват в этом, почему-то, cmake.

Нет, они объективно не нужны при разработке СПО. А когда кто-то по каким-то субъективным причинам их использует, то не важно конан это или сабмодули, получается одинаковое говно, потому что это сложно заменить на системные зависимости. А как ты думаешь почему мне это надо? Именно потому что они есть в системном репозитории.

Да ни в каких дистрибутивах нет ВСЕХ актуальных зависимостей.

Ёба, и что? В любом дистрибутиве когда-то не было ни одной зависимости. А сейчас в каждом дистрибутиве их десятки тысяч и десятки же тысяч приложений которые их используют, а не бандлят.

Ну очевидно же. Вот есть, например, ctre, как её поставить пакетным менеджером дистрибутива?

Даже в моей сраной мёртвой FreeBSD это pkg install ctre.

Потому и бандлят. Не нравится ctre, возьми любую другую из миллионов библиотек, которой нет в твоём дистре.

В моём дистре чего-то нет только до тех пор пока мне это не понадобится. Потому что опакетить библиотеку намного проще чем даже себе в проект её затащить. Собственно нормальные люди так и делают, после чего у них исчезает субъективные желание что-то затащить в проект. И плюс в том что сделать это нужно ровно один раз, после чего библиотека будет доступна для всех пользователей и для всех проектов. И в другом дистрибутиве при опакечивании будет гораздо проще опакетить зависимость, чем опакетить зависимость и выкорчевать забандленную.

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

Ну от этого никуда не деться. changelog тоже руками надо писать, никто не жалуется.

Ок, согласен.

Потому что опакетить библиотеку намного проще чем даже себе в проект её затащить.

Под твой любимый дистрибутив, быть может и проще, хотя я не уверен. Всё-таки одна строка в conanfile по-проще будет.

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

По-хорошему, в проекте должны быть флаги: это бандлим, это берём из внешних либ. Но в том, что многие разрабы на это забивают, нет ничего удивительного. В общем если ты вспомнешь, сколько в мире разных дистров линукса, и сколько ещё не линуксов, то тебе станет вполне понятно, почему разрабы не хотят завязываться на пакетники дистрибутивов.

Ivan_qrt ★★★★★
()