[cmake-developers] [PATCH] Bug fix: Dylibs inside .framework folders fails in BundleUtilities.cmake.
Christian Askeland
christian.askeland at gmail.com
Thu Feb 11 08:15:06 EST 2016
The line is now tested in my build system, on three OS'es. Everything looks
OK. New patch follows:
The specific cause is when e.g.
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libgio-2.0.0.dylib
is detected by fixup_bundle. BundleUtilities.cmake/set_bundle_key_values()
interprets this as a framework, thus doing a string replace that creates an
embedded_item that is equal to the original path, i.e. it is not embedded.
The fix is to reuse the framework detection method found in
GetPrerequisite.cmake/gp_item_default_embedded_path(), i.e. first checking
for .dylib
---
Modules/BundleUtilities.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake
index 45dda40..73ff0af 100644
--- a/Modules/BundleUtilities.cmake
+++ b/Modules/BundleUtilities.cmake
@@ -479,7 +479,7 @@ function(set_bundle_key_values keys_var context item
exepath dirs copyflag)
get_item_rpaths("${resolved_item}" item_rpaths)
- if(item MATCHES "[^/]+\\.framework/")
+ if((item NOT MATCHES "\\.dylib$") AND (item MATCHES
"[^/]+\\.framework/"))
# For frameworks, construct the name under the embedded path from the
# opening "${item_name}.framework/" to the closing "/${item_name}":
#
--
2.5.4 (Apple Git-61)
On Mon, Feb 8, 2016 at 4:32 PM, Brad King <brad.king at kitware.com> wrote:
> On 02/07/2016 11:25 AM, Christian Askeland wrote:
> > We could reuse the check from gp_item_default_embedded_path(), instead of
> > looking at the result from that function:
> >
> > if((item NOT MATCHES "\\.dylib$") AND (item MATCHES
> "[^/]+\\.framework/"))
> >
> > I haven't tested the line above, but can do so tomorrow and post a new
> patch,
> > if it looks reasonable.
>
> Yes, I think that looks good.
>
> Thanks,
> -Brad
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20160211/697a9c01/attachment.html>
More information about the cmake-developers
mailing list