diff --git a/Code/Mantid/CMakeLists.txt b/Code/Mantid/CMakeLists.txt index af00b6374eeda0b930349d3c280c76c143638ebd..00c47183481699cfe66013d004bd74db039b38bb 100644 --- a/Code/Mantid/CMakeLists.txt +++ b/Code/Mantid/CMakeLists.txt @@ -49,7 +49,56 @@ IF(${CMAKE_SYSTEM_NAME} MATCHES "Windows") set( CPACK_NSIS_INSTALL_ROOT "C:\\\\MantidInstall") set( TARGET_TYPE RUNTIME) - set (CPACK_NSIS_EXTRA_INSTALL_COMMANDS "Push \\\"MANTIDPATH\\\" + #TODO: Tidy this up by excluding .git as well as .svn! + #TODO check destinations are relative to the actual install location. + + #Manually place necessary files and directories + + #python bundle here. + install ( DIRECTORY ${CMAKE_LIBRARY_PATH}/Python27/DLLs DESTINATION bin/DLLs PATTERN ".svn" EXCLUDE ) + install ( DIRECTORY ${CMAKE_LIBRARY_PATH}/Python27/Lib DESTINATION bin/Lib PATTERN ".svn" EXCLUDE ) + install ( DIRECTORY ${CMAKE_LIBRARY_PATH}/Python27/Scripts DESTINATION bin/Scripts PATTERN ".svn" EXCLUDE ) + install ( FILES ${CMAKE_LIBRARY_PATH}/Python27/python.exe ${CMAKE_LIBRARY_PATH}/Python27/python27.dll DESTINATION bin ) + + #TODO: remove old pyc files on uninstall + + install ( DIRECTORY ${CMAKE_LIBRARY_PATH}/qt_plugins/imageformats DESTINATION plugins/qtplugins PATTERN ".svn" EXCLUDE ) + install ( FILES ${CMAKE_LIBRARY_PATH}/qt.conf DESTINATION bin ) + + #TODO: create logs directory + #TODO: create documents directory what does the config service do if the logs directory is missing? + + #TODO: put these commands in the associated CMakeLists. + + #Handle includes + install ( DIRECTORY ${CMAKE_INCLUDE_PATH}/boost DESTINATION include PATTERN ".svn" EXCLUDE ) + install ( DIRECTORY ${CMAKE_INCLUDE_PATH}/Poco DESTINATION include PATTERN ".svn" EXCLUDE ) + install ( DIRECTORY ${CMAKE_INCLUDE_PATH}/nexus DESTINATION include PATTERN ".svn" EXCLUDE ) + install ( FILES ${CMAKE_INCLUDE_PATH}/napi.h DESTINATION include ) + install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/Kernel/inc/MantidKernel DESTINATION include PATTERN ".svn" EXCLUDE ) + install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/Geometry/inc/MantidGeometry DESTINATION include PATTERN ".svn" EXCLUDE ) + install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/API/inc/MantidAPI DESTINATION include PATTERN ".svn" EXCLUDE ) + install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/NexusCPP/inc/MantidNexusCPP DESTINATION include PATTERN ".svn" EXCLUDE ) + + #Copy scons directory + install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Installers/WinInstaller/scons-local DESTINATION scons-local PATTERN ".svn" EXCLUDE ) + + #User algorithms + install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/UserAlgorithms FILES_MATCHING PATTERN "*.h" DESTINATION UserAlgorithms ) + install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Framework/UserAlgorithms FILES_MATCHING PATTERN "*.cpp" DESTINATION UserAlgorithms ) + install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/Framework/UserAlgorithms/build.bat ${CMAKE_CURRENT_SOURCE_DIR}/Framework/UserAlgorithms/createAlg.py ${CMAKE_CURRENT_SOURCE_DIR}/Framework/UserAlgorithms/SConstruct DESTINATION UserAlgorithms ) + install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidKernel.lib DESTINATION UserAlgorithms) + install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidGeometry.lib DESTINATION UserAlgorithms) + install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidAPI.lib DESTINATION UserAlgorithms) + install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidNexusCPP.lib DESTINATION UserAlgorithms) + install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidDataObjects.lib DESTINATION UserAlgorithms) + install ( FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/MantidCurveFitting.lib DESTINATION UserAlgorithms) + install ( FILES ${CMAKE_LIBRARY_PATH}/PocoFoundation.lib ${CMAKE_LIBRARY_PATH}/PocoXML.lib ${CMAKE_LIBRARY_PATH}/boost_date_time-vc100-mt-1_43.lib DESTINATION UserAlgorithms) + + + # On install + #TODO only set env variables for the release builds. + set (CPACK_NSIS_EXTRA_INSTALL_COMMANDS "Push \\\"MANTIDPATH\\\" Push \\\"A\\\" Push \\\"HKCU\\\" Push \\\"$INSTDIR\\\\bin\\\" @@ -64,11 +113,10 @@ IF(${CMAKE_SYSTEM_NAME} MATCHES "Windows") Pop \\\$0 CreateShortCut \\\"$DESKTOP\\\\MantidPlot.lnk\\\" \\\"$INSTDIR\\\\bin\\\\MantidPlot.exe\\\" - - ") + ") # On unistall reverse stages listed above. - set (CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS + set (CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "Push \\\"PATH\\\" Push \\\"R\\\" Push \\\"HKCU\\\" @@ -84,7 +132,7 @@ IF(${CMAKE_SYSTEM_NAME} MATCHES "Windows") Pop \\\$0 Delete \\\"$DESKTOP\\\\MantidPlot.lnk\\\" - ") + ") ENDIF()