[PATCH 2/2] Avoid copying the icons, xslt and other dirs into themselves.

Thiago Macieira thiago at macieira.org
Thu Dec 5 15:34:09 UTC 2013

The install rule that qmake generates was of the form:
  -$(INSTALL_DIR) icons packaging/windows/icons

The first time you run make install, packaging/windows/icons doesn't
exist, so /usr/bin/install understands it as the name to be given to the
dir being installed. However, when you run make install a second time,
/usr/bin/install understands it as the target directory, so it copies
icons into the packaging/windows/icons dir.

We need to teach qmake not to add the dir name. Inspecting the source
code reveals:
    if(fi.isDir() && project->isActiveConfig("copy_dir_files")) {
            dst_file += Option::dir_sep;
        dst_file += fi.fileName();

This option is enabled by default on all the win32-* targets.

So if we remove the "copy_dir_files" config, it won't append the source
name. The qmake manual says this about that option: "Enables the install
rule to also copy directories, not just files.", which doesn't help us
much. Probably just stale documentation.

Fixes #325
Signed-off-by: Thiago Macieira <thiago at macieira.org>
 subsurface-install.pri | 1 +
 1 file changed, 1 insertion(+)

diff --git a/subsurface-install.pri b/subsurface-install.pri
index 79ee304..7bf8459 100644
--- a/subsurface-install.pri
+++ b/subsurface-install.pri
@@ -46,6 +46,7 @@ mac {
 	MAKENSIS = /usr/bin/makensis
+	CONFIG -= copy_dir_files
 	deploy.path = $$WINDOWSSTAGING
 	deploy.files += $$xslt.files $$doc.files $$icons.files
 	deploy.CONFIG += no_check_exist

More information about the subsurface mailing list