fixbundle.cmake.in 1.87 KB
Newer Older
Mike Kremer's avatar
Mike Kremer committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
# 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 "@QT_PLUGINS_DIR@/*.bundle")
foreach (_qtp ${_qtplugins})
  get_filename_component(_dir "${_qtp}" PATH)
  list(APPEND _qtdirs "${_dir}")
endforeach ()

# Get library paths
get_filename_component(_GlutDir "@GLUT_glut_LIBRARY@" PATH)

# fix all dependencies
fixup_bundle (@CMAKE_BINARY_DIR@/Build/bin/QtViewer "${_qtplugins}" "/usr/lib;${_qtdirs};${_GlutDir}")

# create qt plugin configuration file
57
# file(WRITE "@CMAKE_BINARY_DIR@/Build/OpenVolumeMesh.app/Contents/Resources/qt.conf" "[Paths]\nPlugins = Resources/QtPlugins")
Mike Kremer's avatar
Mike Kremer committed
58