[cmake-developers] [PATCH] Bug fix: Dylibs inside .framework folders fails in BundleUtilities.cmake.

Brad King brad.king at kitware.com
Fri Feb 5 10:22:03 EST 2016


On 02/04/2016 01:34 PM, Christian Askeland wrote:
> 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 rely on the correct framework detection in
> GetPrerequisite.cmake/gp_item_default_embedded_path() instead.
[snip]
> -    if(item MATCHES "[^/]+\\.framework/")
> +    # Use default_embedded_path from gp_item_default_embedded_path() to query whether the item is a framework
> +    if(default_embedded_path MATCHES "/Frameworks")

If the project uses gp_item_default_embedded_path_override then
we cannot rely on the value from gp_item_default_embedded_path.

Is there another way to detect whether the item is actually the
main framework library itself or just something else inside one?

Thanks,
-Brad



More information about the cmake-developers mailing list