[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