On 10/19/2010 05:47 PM, David Cole wrote:
This likely means that "otool -L" on libA is reporting
"/Users/engelm/bundle-test/install/MacOS/liblibB.dylib" as a dependent
library... If that's true, then why doesn't the library exist?
It exists in the build tree but we did not add install commands for it,
because we thought it would be done by the BundleUtilities script (and
in fact on linux libB does get copied to the install tree automatically).
So is this "automatic copying" of libraries intended for libraries in
the same project as well or is it only intended for 3rd party libraries
from other directories?
Do you build libA against a build tree including libB or against an
install tree of libB...?
Both libraries are built within the same project.
Yes, that is basically the intended usage of BundleUtilities. It looks
like you are using it correctly. Errors are difficult to diagnose,
though.....
I know, we already spent some time trying to get it to work ;) Is the
test project useful? Can we help in some other way?
Best
Marco
HTH,
David
On Tue, Oct 19, 2010 at 10:34 AM, Marco Nolden
<m.nol...@dkfz-heidelberg.de <mailto:m.nol...@dkfz-heidelberg.de>> wrote:
Dear all,
we have some problems using the BundleUtilities macro for
deployment on Mac OS X. I created a very small test project which
is similar to our setup:
http://github.com/nolden/bundle-test
- libA is a plugin that would be loaded at runtime by means of
dlopen (or something similar). We added an explicit
INSTALL(TARGETS libA) for this library.
- libB is a dependency of libA
- Main is an indepedent main application that would in practice
load libA with dlopen (not in the example)
Calling fixup_bundle with libA as a plugin gives some errors on
Mac OS, because libB is not copied to the install tree:
Install the project...
-- Install configuration: ""
-- Installing: /Users/engelm/bundle-test/install/lib/liblibA.dylib
-- Installing: /Users/engelm/bundle-test/install/bin/Main
GetPreReq
-- fixup_bundle
-- app='/Users/engelm/bundle-test/install/bin/Main'
-- libs='/Users/engelm/bundle-test/install/lib/liblibA.dylib'
-- dirs='/Users/engelm/bundle-test/bin/bin'
-- fixup_bundle: preparing...
-- warning: embedded item does not exist
'/Users/engelm/bundle-test/install/MacOS/liblibB.dylib'
--
******************************************************************************
warning: cannot resolve item '@executable_path/../MacOS/liblibB.dylib'
On Linux, the copying of the dependencies works, we have not
tested windows yet.
Is this the intended use of the BundleUtilities script? It looks
like a very good solution for cross-platform deployment.
Best,
Marco / Sascha
MITK, http://www.mitk.org
_______________________________________________
Powered by www.kitware.com <http://www.kitware.com>
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake