# gp_item_default_embedded_path_override item default_embedded_path_var # # Return the path that others should refer to the item by when the item # is embedded inside a bundle. # # This is a project-specific override of BundleUtilities.cmake's # gp_item_default_embedded_path # function(gp_item_default_embedded_path_override item default_embedded_path_var) # By default, embed items as set by gp_item_default_embedded_path: # set(path "${${default_embedded_path_var}}") # But for OpenFlipper... # # ...embed *.dylib in the Libraries folder: # if(item MATCHES "\\.dylib$") set(path "@executable_path/../Libraries") endif() # ...embed qt plugins in the Libraries folder: # if(item MATCHES "@QT_PLUGINS_DIR@" AND item MATCHES "\\.bundle") file (RELATIVE_PATH _plugin "@QT_PLUGINS_DIR@" "${item}") get_filename_component(_dir "${_plugin}" PATH) set(path "@executable_path/../Resources/QtPlugins/${_dir}") endif() # ...embed *.so in the Plugins folder: # if(item MATCHES "\\.so$") set(path "@executable_path/../Resources/Plugins") endif() set(${default_embedded_path_var} "${path}" PARENT_SCOPE) endfunction(gp_item_default_embedded_path_override) include (BundleUtilities) # copy qt plugins to bundle file (GLOB _plugins "@CMAKE_BINARY_DIR@/Build/OpenFlipper.app/Contents/Resources/Plugins/*.so") file (GLOB_RECURSE _qtplugins "@CMAKE_BINARY_DIR@/Build/OpenFlipper.app/Contents/Resources/QtPlugins/*.dylib") foreach (_qtp ${_qtplugins}) get_filename_component(_dir "${_qtp}" PATH) list(APPEND _qtdirs "${_dir}") endforeach () # fix all dependencies fixup_bundle (@CMAKE_BINARY_DIR@/Build/OpenFlipper.app "${_plugins};${_qtplugins}" "/usr/lib;${_qtdirs}") # create qt plugin configuration file file(WRITE "@CMAKE_BINARY_DIR@/Build/OpenFlipper.app/Contents/Resources/qt.conf" "[Paths]\nPlugins = Resources/QtPlugins")