Files
ThirdParty-6/ParaView-5.0.1/CMake/ParaViewBrandingInstallApp.cmake

72 lines
2.4 KiB
CMake

# This is a helper module that can be used to package an APP for MacOSX. It is
# not designed to bring in all *external* dependencies. It's meant to package
# 'what is built'.
if (NOT APPLE)
return()
endif()
# cleanup_bundle is called to fillup the .app file with libraries and plugins
# built. This does not package any external libraries, only those that are
# at the specified locations. This will create a workable bundle that works on
# the machine where its built (since it relies on other shared frameworks and
# libraries) e.g. python
macro(cleanup_bundle app app_root libdir pluginsdir datadir)
# take all libs from ${ARGN} and put it in the Libraries dir.
file(GLOB_RECURSE dylibs ${libdir}/*.dylib)
file(GLOB_RECURSE solibs ${libdir}/*.so)
file(INSTALL ${dylibs} ${solibs}
DESTINATION ${app_root}/Contents/Libraries
USE_SOURCE_PERMISSIONS)
file(GLOB_RECURSE plugins ${pluginsdir}/*)
file(INSTALL ${plugins}
DESTINATION ${app_root}/Contents/Plugins
USE_SOURCE_PERMISSIONS)
file(GLOB pyfiles ${libdir}/*.py)
file(GLOB pycfiles ${libdir}/*.pyc)
if (pycfiles OR pyfiles)
file(INSTALL ${pyfiles} ${pycfiles}
DESTINATION ${app_root}/Contents/Python
USE_SOURCE_PERMISSIONS)
endif()
# Handle any python package/module
if (IS_DIRECTORY "${libdir}/site-packages")
file(INSTALL "${libdir}/site-packages/"
DESTINATION ${app_root}/Contents/Python
USE_SOURCE_PERMISSIONS)
endif ()
# Package web server content
if (IS_DIRECTORY "${datadir}/www")
file(INSTALL "${datadir}/www/"
DESTINATION ${app_root}/Contents/www
USE_SOURCE_PERMISSIONS)
endif ()
# package other executables such as pvserver.
get_filename_component(bin_dir "${app_root}" PATH)
file(GLOB executables "${bin_dir}/*")
foreach(exe IN LISTS executables)
if (EXISTS "${exe}" AND NOT IS_DIRECTORY "${exe}")
file(INSTALL "${exe}"
DESTINATION "${app_root}/Contents/bin"
USE_SOURCE_PERMISSIONS)
endif()
endforeach()
endmacro()
# When doing unix-style installs, we purge the "app" bundle, instead install the
# executable as a command line executable.
function(convert_bundle_to_executable app app_root bin_dir)
# copy the executable in the app bundle.
file(INSTALL ${app}
DESTINATION ${bin_dir}
USE_SOURCE_PERMISSIONS)
# now delete the app bundle.
file(REMOVE_RECURSE ${app_root})
endfunction()