[Development] Behavior change for QMake install targets since 5.9
Thiago Macieira
thiago.macieira at intel.com
Fri Jul 21 17:41:41 CEST 2017
On Friday, 21 July 2017 05:17:41 PDT Simon Hausmann wrote:
> Since Qt itself has installs libraries alongside with .so symlinks and those
> are installed as symlinks, I wonder what the difference is between Qt and
> your application. Can you compare the command lines generated in the
> Makefiles?
It doesn't use $(INSTALL) for those:
install_target: first FORCE
@test -d $(INSTALL_ROOT)/home/tjmaciei/obj/qt/installed/lib64 || mkdir
-p $(INSTALL_ROOT)/home/tjmaciei/obj/qt/installed/lib64
-$(QINSTALL_PROGRAM) ../../lib/$(TARGET) $(INSTALL_ROOT)/home/
tjmaciei/obj/qt/installed/lib64/$(TARGET)
-$(STRIP) --strip-unneeded $(INSTALL_ROOT)/home/tjmaciei/obj/qt/
installed/lib64/$(TARGET)
-$(SYMLINK) $(TARGET) $(INSTALL_ROOT)/home/tjmaciei/obj/qt/installed/
lib64/$(TARGET0)
Noe that this creates a new symlink on the destination. It doesn't try to copy
the existing symlink over to the destination.
Top of the Makefile has:
INSTALL_FILE = install -m 644 -p
INSTALL_PROGRAM = install -m 755 -p
INSTALL_DIR = cp -f -R
QINSTALL = /home/tjmaciei/obj/qt/qt5-release/qtbase/bin/qmake -install
qinstall
QINSTALL_PROGRAM = /home/tjmaciei/obj/qt/qt5-release/qtbase/bin/qmake -install
qinstall -exe
DEL_FILE = rm -f
SYMLINK = ln -f -s
So any rules that have commands using $(INSTALL_FILE) will continue to work.
If the rule is now using QINSTALL, that means its commands were generated by
qmake.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Development
mailing list