Search code examples
qtqt-creatorqmake

QMake - how to copy a file to the output


How can I copy a file from my project to the output directory with qmake?

I'm compiling on Linux but in the future I'll compile it on Mac and Windows.


Solution

  • Here's an example from one of our projects. It shows how to copy files to the DESTDIR for Windows and Linux.

    linux-g++{
        #...
        EXTRA_BINFILES += \
            $${THIRDPARTY_PATH}/gstreamer-0.10/linux/plugins/libgstrtp.so \
            $${THIRDPARTY_PATH}/gstreamer-0.10/linux/plugins/libgstvideo4linux2.so
        for(FILE,EXTRA_BINFILES){
            QMAKE_POST_LINK += $$quote(cp $${FILE} $${DESTDIR}$$escape_expand(\n\t))
        }
    }
    
    win32 {
        #...
        EXTRA_BINFILES += \
            $${THIRDPARTY_PATH}/glib-2.0/win32/bin/libglib-2.0.dll \
            $${THIRDPARTY_PATH}/glib-2.0/win32/bin/libgmodule-2.0.dll
        EXTRA_BINFILES_WIN = $${EXTRA_BINFILES}
        EXTRA_BINFILES_WIN ~= s,/,\\,g
            DESTDIR_WIN = $${DESTDIR}
        DESTDIR_WIN ~= s,/,\\,g
        for(FILE,EXTRA_BINFILES_WIN){
                    QMAKE_POST_LINK +=$$quote(cmd /c copy /y $${FILE} $${DESTDIR_WIN}$$escape_expand(\n\t))
        }
    }