diff --git a/Code/Mantid/Build/CMake/CommonSetup.cmake b/Code/Mantid/Build/CMake/CommonSetup.cmake index 3d0cc4317034997eefecb2179d12098db44056a9..32dc902977f454ed15ae51a14d2294db37bb68a8 100644 --- a/Code/Mantid/Build/CMake/CommonSetup.cmake +++ b/Code/Mantid/Build/CMake/CommonSetup.cmake @@ -122,9 +122,9 @@ endif() # (Fake) installation variables to keep windows & mac sweet ########################################################################### -set ( BIN_DIR bin ) -set ( LIB_DIR ${BIN_DIR} ) -set ( PLUGINS_DIR plugins ) +#set ( BIN_DIR bin ) +#set ( LIB_DIR ${BIN_DIR} ) +#set ( PLUGINS_DIR plugins ) ########################################################################### # Set a flag to indicate that this script has been called diff --git a/Code/Mantid/Build/CMake/DarwinSetup.cmake b/Code/Mantid/Build/CMake/DarwinSetup.cmake index e57a4c00f077b045d8c88a09130320b49c177c43..cc0312c0d966ae3f793d6814840aa20502e46138 100644 --- a/Code/Mantid/Build/CMake/DarwinSetup.cmake +++ b/Code/Mantid/Build/CMake/DarwinSetup.cmake @@ -9,3 +9,23 @@ set ( CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -m64 ) set ( CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -m64 ) set ( CMAKE_INSTALL_NAME_DIR ${CMAKE_LIBRARY_PATH} ) + +set ( CMAKE_INSTALL_PREFIX /Applications ) + +set ( BIN_DIR MantidPlot.app/Contents/MacOS ) +set ( LIB_DIR MantidPlot.app/Contents/MacOS ) +set ( PLUGINS_DIR MantidPlot.app/plugins ) + +install ( PROGRAMS /Library/Python/2.6/site-packages/sip.so DESTINATION ${BIN_DIR} ) +install ( DIRECTORY /Library/Python/2.6/site-packages/PyQt4 DESTINATION ${BIN_DIR} ) + +install ( FILES ${CMAKE_SOURCE_DIR}/Images/MantidPlot.icns + ${CMAKE_SOURCE_DIR}/Installers/MacInstaller/qt.conf + DESTINATION MantidPlot.app/Contents/Resources/ +) + +set ( MACOSX_BUNDLE_ICON_FILE MantidPlot.icns ) + +set ( CPACK_OSX_PACKAGE_VERSION 10.6 ) +set ( CPACK_POSTFLIGHT_SCRIPT ${CMAKE_SOURCE_DIR}/Installers/MacInstaller/installer_hooks/postflight ) + diff --git a/Code/Mantid/CMakeLists.txt b/Code/Mantid/CMakeLists.txt index b9613084164761d7339ebc23e5f511ee6a5ab42b..91d23566eedd148ea9e79b8ad069fada9f63a3da 100644 --- a/Code/Mantid/CMakeLists.txt +++ b/Code/Mantid/CMakeLists.txt @@ -98,6 +98,11 @@ endif () # Installation settings ########################################################################### +# Temp hack for mac +if ( APPLE ) + set ( INBUNDLE MantidPlot.app/ ) +endif () + # Create instrument directory and make it writable so vtp files can go there install ( DIRECTORY DESTINATION instrument DIRECTORY_PERMISSIONS OWNER_READ OWNER_EXECUTE OWNER_WRITE @@ -105,10 +110,10 @@ install ( DIRECTORY DESTINATION instrument WORLD_READ WORLD_EXECUTE WORLD_WRITE ) file ( GLOB INSTRUMENT_FILES instrument/*.xml ) -install ( FILES ${INSTRUMENT_FILES} DESTINATION instrument ) -install ( DIRECTORY scripts/ DESTINATION scripts PATTERN ".svn" EXCLUDE +install ( FILES ${INSTRUMENT_FILES} DESTINATION ${INBUNDLE}instrument ) +install ( DIRECTORY scripts/ DESTINATION ${INBUNDLE}scripts PATTERN ".svn" EXCLUDE PATTERN "*.pyc" EXCLUDE ) -install ( DIRECTORY Installers/colormaps/ DESTINATION colormaps PATTERN ".svn" EXCLUDE ) +install ( DIRECTORY Installers/colormaps/ DESTINATION ${INBUNDLE}colormaps PATTERN ".svn" EXCLUDE ) ########################################################################### # CPack settings @@ -119,7 +124,7 @@ set ( ENABLE_CPACK CACHE BOOL "Switch to enable CPack package generation") if ( ENABLE_CPACK ) # generic package level information set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Neutron Scattering Data Analysis" ) - set ( CPACK_PACKAGE_VENDOR "ISIS Rutherford Appleton Laboratory & NScD Oak Ridge National Laboratory" ) + #set ( CPACK_PACKAGE_VENDOR "ISIS Rutherford Appleton Laboratory & NScD Oak Ridge National Laboratory" ) set ( CPACK_PACKAGE_URL http://www.mantidproject.org/ ) set ( CPACK_PACKAGE_CONTACT mantid-help@mantidproject.org ) set ( CPACK_PACKAGE_ICON Images/MantidPlot_Icon_32offset.png ) @@ -128,7 +133,7 @@ if ( ENABLE_CPACK ) set ( CPACK_PACKAGE_VERSION_MAJOR 1 ) set ( CPACK_PACKAGE_VERSION_MINOR 1 ) set ( CPACK_PACKAGE_VERSION_PATCH ${Framework_WC_REVISION} ) - set ( CPACK_PACKAGING_INSTALL_PREFIX /opt/${CMAKE_PROJECT_NAME} ) + #set ( CPACK_PACKAGING_INSTALL_PREFIX /opt/${CMAKE_PROJECT_NAME} ) # RPM information - only used if generating a rpm #set ( CPACK_RPM_PACKAGE_ARCHITECTURE x86_64 ) diff --git a/Code/Mantid/Framework/DataObjects/CMakeLists.txt b/Code/Mantid/Framework/DataObjects/CMakeLists.txt index 2a2a08d6e745bde07632aecfb7edec18aeb7871d..38d841157799394d24ff7e16d7d7b55bb5e07878 100644 --- a/Code/Mantid/Framework/DataObjects/CMakeLists.txt +++ b/Code/Mantid/Framework/DataObjects/CMakeLists.txt @@ -98,4 +98,4 @@ endif () # Installation settings ########################################################################### -install ( TARGETS DataObjects DESTINATION ${PLUGINS_DIR} ) +install ( TARGETS DataObjects DESTINATION ${LIB_DIR} ) diff --git a/Code/Mantid/Framework/Kernel/CMakeLists.txt b/Code/Mantid/Framework/Kernel/CMakeLists.txt index e7d5b9600fa8d3dce41891258ac5c0e86877c904..c2cac175e3d84c0d71df9c3d9e3c3b9895c10a2b 100644 --- a/Code/Mantid/Framework/Kernel/CMakeLists.txt +++ b/Code/Mantid/Framework/Kernel/CMakeLists.txt @@ -295,7 +295,12 @@ add_custom_command ( TARGET Kernel POST_BUILD install ( TARGETS Kernel DESTINATION ${LIB_DIR} ) # Create the properties file for the installer -set ( MANTID_ROOT ${CMAKE_INSTALL_PREFIX} ) +if ( APPLE ) + set ( MANTID_ROOT ${CMAKE_INSTALL_PREFIX}/MantidPlot.app ) +else () + set ( MANTID_ROOT ${CMAKE_INSTALL_PREFIX} ) +endif () + set ( PLUGINS ${CMAKE_INSTALL_PREFIX}/${PLUGINS_DIR} ) set ( QTPLUGINS ${CMAKE_INSTALL_PREFIX}/${PLUGINS_DIR}/qtplugins/mantid ) set ( PYTHONALGS ${PLUGINS}/PythonAlgs ) diff --git a/Code/Mantid/MantidPlot/icons/qtiplot.icns b/Code/Mantid/Images/MantidPlot.icns similarity index 100% rename from Code/Mantid/MantidPlot/icons/qtiplot.icns rename to Code/Mantid/Images/MantidPlot.icns diff --git a/Code/Mantid/MantidPlot/CMakeLists.txt b/Code/Mantid/MantidPlot/CMakeLists.txt index 586addb947786c3486c8f66695f9d08dc6f7ed19..ee142b21f6f47ed686cb19fd883690dd9d8d085d 100644 --- a/Code/Mantid/MantidPlot/CMakeLists.txt +++ b/Code/Mantid/MantidPlot/CMakeLists.txt @@ -700,7 +700,12 @@ if( WIN32 ) set ( MANTID_RC_FILE icons/MantidPlotDesktop.rc ) endif( WIN32 ) -add_executable ( MantidPlot ${EXE_FLAG} ${SRC_FILES} ${INC_FILES} +if ( APPLE ) + set ( MANTID_RC_FILE ${CMAKE_SOURCE_DIR}/Images/MantidPlot.icns ) + set_source_files_properties(MANTID_RC_FILE PROPERTIES MACOSX_PACKAGE_LOCATION Resources) +endif () + +add_executable ( MantidPlot MACOSX_BUNDLE ${EXE_FLAG} ${SRC_FILES} ${INC_FILES} ${MOCCED_FILES} ${UI_HDRS} ${RES_FILES} ${MANTID_RC_FILE} ) @@ -744,5 +749,16 @@ endforeach ( PYFILE ${PYTHON_INSTALL_FILES} ) # Installation settings ########################################################################### -install ( TARGETS MantidPlot DESTINATION ${BIN_DIR} ) +install ( TARGETS MantidPlot RUNTIME DESTINATION ${BIN_DIR} + BUNDLE DESTINATION . +) install ( FILES ${PYTHON_INSTALL_FILES} DESTINATION ${BIN_DIR} ) + +if ( APPLE ) + configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/FixBundle.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake + @ONLY + ) + + install ( SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/FixBundle.cmake ) +endif () diff --git a/Code/Mantid/MantidPlot/FixBundle.cmake.in b/Code/Mantid/MantidPlot/FixBundle.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..95250d803d229ad537da20561df6c32b5ff9c85f --- /dev/null +++ b/Code/Mantid/MantidPlot/FixBundle.cmake.in @@ -0,0 +1,11 @@ +include (BundleUtilities) + +set ( bundle @CMAKE_INSTALL_PREFIX@/MantidPlot.app ) + +file ( GLOB pyqt_libs ${bundle}/Contents/MacOS/PyQt4/*.so ) +file ( GLOB_RECURSE qtplugins ${bundle}/plugins/*.dylib ) +set ( other_libs ${bundle}/Contents/MacOS/libMantidPythonAPI.so ${pyqt_libs} ${qtplugins} ) + +set ( dirs "@CMAKE_LIBRARY_OUTPUT_DIRECTORY@" "@CMAKE_LIBRARY_PATH@" "/Library/Frameworks" ) + +fixup_bundle ( "${bundle}" "${other_libs}" "${dirs}" )