[CMake] include(InstallRequiredSystemLibraries) not working with NSIS

Andreas Mohr andi at lisas.de
Sat May 4 05:44:00 EDT 2013


Hi,

On Fri, May 03, 2013 at 04:19:40PM -0400, cmake-request at cmake.org wrote:
> Date: Fri, 3 May 2013 12:26:55 -0700 (PDT)
> From: charles_west <crwest at ncsu.edu>

> I've very new with Windows development.  If I may ask, is sticking the
> required .dlls in the same directory as the application sufficient for it to
> find them?

Yes, I'd believe so, that's what "some people" (guess who that would include...)
have been doing for a long time.
But then make sure to keep all user data out of that runtime directory,
in proper data directories. See
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
https://wiki.archlinux.org/index.php/Xdg_user_directories
, or Windows API helpers (CSIDL_LOCAL_APPDATA etc.).

> My build file below makes a functional installer, but despite using
> include(InstallRequiredSystemLibraries) only the binary is copied.  If I may
> ask, what do I need to do to get the required .dlls to copy into the
> installer?  I'm using windows terminal with qt5's built in mingw32 compiler.

Not entirely sure.
Either have manual install() per each target (either undesireable or
quite easily not feasible at all),
or perhaps BundleUtilities.cmake can be used not only on Mac and Linux,
but on Windows as well (I haven't done enough Windows CMake devel to
have progressed to that step, sorry).
BundleUtilities.cmake logs some debug info some way or another which was
most relevant to nail down issues.



BTW, for certain development tasks it may be useful to eventually implement it
as a cross compile, to possibly reduce abundant platform pain (molasses)
or poisons ("me? binaries? infected? no sirree, built via strict
cross-compile prison on foreign platform!").
E.g. when on a Mac recently I found that Macports even default-includes
a Win32 wxWidgets cross compile package,
so there might easily be enough infrastructure support for Qt cross compile
to make it a worthwhile modus operandi.

Andreas Mohr


More information about the CMake mailing list