История изменений
Исправление
NickNotNick,
(текущая версия)
:
Столкнулся с такой же проблемой в одном проекте. И вот что удалось выяснить.
С версии 5.9 в qmake поменялось поведение при генерации Makefile. Если в Makefile раньше было
INSTALL_FILE = install -m 644 -p
INSTALL_PROGRAM = install -m 755 -p
INSTALL_DIR = cp -f -R
и для установки в качестве команд использовались INSTALL_FILE
и INSTALL_PROGRAM
, то теперь стало
INSTALL_FILE = install -m 644 -p
INSTALL_PROGRAM = install -m 755 -p
INSTALL_DIR = cp -f -R
QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall
QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe
и для установки используются QINSTALL
и QINSTALL_PROGRAM
. И это не дает нормально использовать инструменты вроде checkinstall.
Есть простой костыль – после вызова qmake поменять переменные QINSTALL
и QINSTALL_PROGRAM
во всех сгенерированных Makefile проекта.
find ./ -type f -name Makefile -exec \
sed -i 's$/usr/lib/qt5/bin/qmake -install qinstall -exe$install -m 755 -p$g' {} \; \
-exec \
sed -i 's$/usr/lib/qt5/bin/qmake -install qinstall$install -m 644 -p$g' {} \;
Это команда выполняется в корневом каталоге сборки, тут все просто: find ищет файлы Makefile и вызывает для них sed, который и делает нужные замены. Далее можно делать make и checkinstall.
Естественно, путь /usr/lib/qt5/bin/qmake
нужно заменить на тот, который используется в вашей системе.
Исправление
NickNotNick,
:
Столкнулся с такой же проблемой в одном проекте. И вот что удалось выяснить.
С версии 5.9 в qmake поменялось поведение при генерации Makefile. Если в Makefile раньше было
INSTALL_FILE = install -m 644 -p
INSTALL_PROGRAM = install -m 755 -p
INSTALL_DIR = cp -f -R
и для установки в качестве команд использовались INSTALL_FILE
и INSTALL_PROGRAM
, то теперь стало
INSTALL_FILE = install -m 644 -p
INSTALL_PROGRAM = install -m 755 -p
INSTALL_DIR = cp -f -R
QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall
QINSTALL_PROGRAM = /usr/lib/qt5/bin/qmake -install qinstall -exe
и для установки используются QINSTALL
и QINSTALL_PROGRAM
. И это не дает нормально использовать инструменты вроде checkinstall.
Есть простой костыль – после вызова qmake поменять переменные QINSTALL
и QINSTALL_PROGRAM
во всех сгенерированных Makefile проекта.
find ./ -type f -name Makefile -exec \
sed -i 's$/usr/lib/qt5/bin/qmake -install qinstall -exe$install -m 755 -p$g' {} \; \
-exec \
sed -i 's$/usr/lib/qt5/bin/qmake -install qinstall$install -m 644 -p$g' {} \;
Это команда выполняется в корневом каталоге сборки, тут все просто: find ищет файлы Makefile и вызывает для них sed, который и делает нужные замены. Далее можно делать make и checkinstall.
Исходная версия
NickNotNick,
:
Столкнулся с такой же проблемой в одном проекте. И вот что удалось выяснить.
С версии 5.9 в qmake поменялось поведение при генерации Makefile. Если в Makefile раньше было
INSTALL_FILE = install -m 644 -p
INSTALL_PROGRAM = install -m 755 -p
INSTALL_DIR = cp -f -R
и для установки в качестве команд использовались INSTALL_FILE
и INSTALL_PROGRAM
, то теперь стало
INSTALL_FILE = install -m 644 -p
INSTALL_PROGRAM = install -m 755 -p
INSTALL_DIR = cp -f -R
QINSTALL = /usr/lib/qt5/bin/qmake -install qinstall
QINSTALL_PROGRAM = /install -m 755 -p
и для установки используются QINSTALL
и QINSTALL_PROGRAM
. И это не дает нормально использовать инструменты вроде checkinstall.
Есть простой костыль – после вызова qmake поменять переменные QINSTALL
и QINSTALL_PROGRAM
во всех сгенерированных Makefile проекта.
find ./ -type f -name Makefile -exec \
sed -i 's$/usr/lib/qt5/bin/qmake -install qinstall -exe$install -m 755 -p$g' {} \; \
-exec \
sed -i 's$/usr/lib/qt5/bin/qmake -install qinstall$install -m 644 -p$g' {} \;
Это команда выполняется в корневом каталоге сборки, тут все просто: find ищет файлы Makefile и вызывает для них sed, который и делает нужные замены. Далее можно делать make и checkinstall.