[CMake] Fixup Bundle Problem when using multiple executables
Fabian Saccilotto
f.saccilotto at gmx.ch
Wed Nov 13 10:59:17 EST 2013
Dear CMake Users,
we are using CMake as build system for an application which is made from
several subapplications for ease of development (Windows 7 + Visual
Studio 2010).
In order to make the setup of a project for the developer easier, we use
the fixup_bundle macro from BundleUtilities via the INSTALL project.
It searches the libraries needed of an executable in given locations and
copies them to the output folder.
If there are several executables to fixup in the same folder, errors
occur while resolving the dependencies.
With CMake we are able to build a global meta-solution with all the
subprojects in it, what allows the developer to have all the sources in
one solution and run standalone subprojects and tests from there.
All Output is directed to the same location which is under the root
application directory appended with the configuration name (Debug,
Release etc).
(Note: The subprojects are also used in other applications)
Meta-Solution:
- LibraryA
- LibraryA_Standalone (Standalone and Library differ in symbols
which are exported and target to build)
- LibraryA_Test
- LibraryB
- LibraryB_Standalone
- LibraryB_Test
- Full_Application (Depends on LibraryA and LibraryB)
- INSTALL (calls LibraryA's and LibraryB's install_cmake)
The information to fix up the executables resides in the subprojects
which install the fixup script with the according executable and
directories.
THE PROBLEM:
When building the install project for a subproject, the fixup_bundle
macro searches for all other executables in the current directory and
tries to fix them. Because not all paths are given with each subproject
not all libraries can be resolved. see Line 420 of BundleUtilities.cmake
# But do fixups on all executables in the bundle:
#
get_bundle_all_executables("${bundle}" exes)
I temporarily fixed this using only the given executable here and
ignoring others.
I would be interested in the following things:
- why are other executables search for?
- is there a better way to do what I want?
Thank you for your replies
Kind regards
Fabian Saccilotto
More information about the CMake
mailing list