# ---------------------------------------------------------------------
#
# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
#                        pour la Santé)
# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
#
#  This software is governed by the CeCILL-B license under French law and 
#  abiding by the rules of distribution of free software. You can  use, 
#  modify and/ or redistribute the software under the terms of the CeCILL-B 
#  license as circulated by CEA, CNRS and INRIA at the following URL 
#  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
#  or in the file LICENSE.txt.
#
#  As a counterpart to the access to the source code and  rights to copy,
#  modify and redistribute granted by the license, users are provided only
#  with a limited warranty  and the software's author,  the holder of the
#  economic rights,  and the successive licensors  have only  limited
#  liability. 
#
#  The fact that you are presently reading this means that you have had
#  knowledge of the CeCILL-B license and that you accept its terms.
# ------------------------------------------------------------------------   


#-----------------------------------------------------------------------------
# CPACK+NSIS PACKAGING
#-----------------------------------------------------------------------------

#---Documentation-------------
#http://www.cmake.org/Wiki/CMake:Packaging_With_CPack
#http://www.cmake.org/Wiki/CMake:CPackConfiguration
#http://www.cmake.org/Wiki/CMake:Install_Commands


INCLUDE(InstallRequiredSystemLibraries)

SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME} - CREATIS")
SET(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-${CREATOOLS_BUILDTYPE}")
SET(CPACK_PACKAGE_VENDOR "CREATIS")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.txt")
SET(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE.txt")
SET(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_MAJOR_VERSION})
SET(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_MINOR_VERSION})
SET(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_BUILD_VERSION})

#  SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CreaTools\\\\${PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
  SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CreaTools-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
  IF(WIN32)
    SET(CMAKE_INSTALL_PREFIX C:/CreaTools/CeaTools)
  ENDIF(WIN32)





IF(WIN32 AND NOT UNIX)
  # There is a bug in NSI that does not handle full unix paths properly. Make
  # sure there is at least one set of four (4) backlasshes.
#EED  SET(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/kernel/install/gnome/bbi-icon2.bmp")
#  SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin/BBI_EXE.exe")
#EED 01/05/2013  SET(CPACK_NSIS_DISPLAY_NAME "CreaTools")
  SET(CPACK_NSIS_HELP_LINK "http://www.creatis.insa-lyon.fr/creatools/${PROJECT_NAME}")
  SET(CPACK_NSIS_URL_INFO_ABOUT "http://www.creatis.insa-lyon.fr/creatools/${PROJECT_NAME}")
  SET(CPACK_NSIS_CONTACT "info-dev@creatis.insa-lyon.fr")
  SET(CPACK_NSIS_MODIFY_PATH OFF)
      
  set  (MessageCreatoolsPath "CREATOOLS_SOURCE_PATH (bbtk, crea, creaMaracasVisu, ...)")
  set  (CREATOOLS_SOURCE_PATH  "" CACHE PATH ${MessageCreatoolsPath} )
  set  (CREATOOLS_DESTINATION_PATH ".")

#  set  (CREA_THIRDPARTY_DLLS		crea_ThirdParty_dlls-3.0.0)
#  set  (CREA_THIRDPARTY_LIBRARIES	crea_ThirdParty_Libraries-3.0.0)
  set  (CREA_BASE					crea)
  set  (CREA_BBTK					bbtk)
  set  (CREA_MARACASVISU			creaMaracasVisu)
  set  (CREA_VTK					creaVtk)
  set  (CREA_IMAGEIO				creaImageIO)
  set  (CREA_CONTOURS				creaContours)
  set  (CREA_ENVIRIONMENT			creaEnvironment)
  set  (CREA_RECALAGE				creaRigidRegistration)
  set  (CREA_BRUKER					creaBruker)
  set  (CREA_BBTKGEDITOR			bbtkGEditor)
  set  (CREA_MINITOOLS				creaMiniTools)
#  set  (CREA_IRM					creaIRM-1.0.1)
  
#  set  (CREA_BOOST_LYBRARY	"boost-1.40.0")
#  set  (CREA_GDCM_LYBRARY	"gdcm110909")
#  set  (CREA_ITK_LYBRARY	"itk-3.14.0")
#  set  (CREA_QT_LYBRARY	"Qt4.5.2")
#  set  (CREA_VTK_LYBRARY	"vtk-5.4.2")  
#  set  (CREA_WXWIN_LYBRARY	"wxWidgets-2.8.10")  

  
  IF(NOT CREATOOLS_SOURCE_PATH)
    MESSAGE(FATAL_ERROR "${MessageCreatoolsPath}  not found")
  ENDIF(NOT CREATOOLS_SOURCE_PATH)
  
	
#	SET(TTH_DIRBIN 					"$INSTDIR\\\\bin\\\\tth")
#	SET(MIKTEX_INSTALL_DIRBIN 		"$INSTDIR\\\\bin\\\\MikTex-2.7\\\\miktex\\\\bin")
	SET(CREATOOLS_DIRBIN 			"$INSTDIR\\\\bin")
	SET(CREA_DLLS_DIRBIN 			"$INSTDIR\\\\bin")
	SET(CREA_BASE_DIRBIN 			"$INSTDIR\\\\${CREA_BASE}\\\\bin")
	SET(CREA_BBTK_DIRBIN 			"$INSTDIR\\\\${CREA_BBTK}\\\\bin")
	SET(CREA_MARACASVISU_DIRBIN 	"$INSTDIR\\\\${CREA_MARACASVISU}\\\\bin")
	SET(CREA_VTK_DIRBIN 			"$INSTDIR\\\\${CREA_VTK}\\\\bin")
	SET(CREA_IMAGEIO_DIRBIN 		"$INSTDIR\\\\${CREA_IMAGEIO}\\\\bin")
	SET(CREA_CONTOURS_DIRBIN 		"$INSTDIR\\\\${CREA_CONTOURS}\\\\bin")
	SET(CREA_ENVIRIONMENT_DIRBIN	"$INSTDIR\\\\${CREA_ENVIRIONMENT}\\\\bin")
	SET(CREA_RECALAGE_DIRBIN		"$INSTDIR\\\\${CREA_RECALAGE}\\\\bin")
	SET(CREA_BBTKGEDITOR_DIRBIN		"$INSTDIR\\\\${CREA_BBTKGEDITOR}\\\\bin")
	
###	SET(CREATOOLS_DIRS "${CREA_DLLS_DIRBIN};${MIKTEX_INSTALL_DIRBIN}")  
	SET(CREATOOLS_DIRS "${CREATOOLS_DIRBIN}")
  
  
   SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS  "
   
	   !define Install_ReadEnvStr_RegKey 'HKCU \\\"Environment\\\"'
		ReadRegStr $0 \\\${Install_ReadEnvStr_RegKey} 'PATH'
		
		Push '$0;'
		Push '%CREATOOLS_DIRS%'
		Call StrStr
		Pop $2
		StrCmp $2 '' '' AddToPath_doneEED
        StrCpy $0 \\\"$0;%CREATOOLS_DIRS%\\\"
        WriteRegExpandStr \\\${Install_ReadEnvStr_RegKey} 'PATH' $0
		
		AddToPath_doneEED:
		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Version.txt.lnk' '${CREATOOLS_DIRBIN}\\\\..\\\\Version.txt' 

		SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 'STR:Environment' /TIMEOUT=5000 

		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\CreaTools_HomePage.lnk' '${CREATOOLS_DIRBIN}\\\\start.bat'  'www.creatis.insa-lyon.fr/site/creatools'
		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\CreaTools.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbi.exe bbs\\\\creaMiniTools\\\\appli\\\\minitoolsMenu.bbs'

#		CreateDirectory '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools\\\\creaNewProject.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'creaNewProject.exe'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools\\\\bbStudio.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbStudio.exe'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools\\\\bbEditor.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbEditor.exe'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools\\\\bbi.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbi.exe'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Developer_Tools\\\\Readme.txt.lnk' '${CREATOOLS_DIRBIN}\\\\start.bat'  'bin\\\\data\\\\README_DeveloperTools.txt'
#		CreateDirectory '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Demos'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Demos\\\\Filter01.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbi.exe demo\\\\appli\\\\demoFiltering1.bbs'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Demos\\\\Viewing01.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat' 'bbi.exe demo\\\\appli\\\\demoViewing1.bbs'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Demos\\\\ShowNPoints.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat' 'bbi.exe bbs\\\\creaMaracasVisu\\\\appli\\\\ExampleShowNPoints.bbs'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Demos\\\\Readme.txt.lnk' '${CREATOOLS_DIRBIN}\\\\start.bat'  'bin\\\\data\\\\README_Demos.txt'
#		CreateDirectory '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Image_Tools'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Image_Tools\\\\RigidRegistration.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbi.exe bbs\\\\PackRecalage\\\\appli\\\\Recalage.bbs'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Image_Tools\\\\RenderingViewing.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'bbi.exe bbs\\\\creaMaracasVisu\\\\appli\\\\ExampleRenderingViewer.bbs'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Image_Tools\\\\Contours.lnk' '${CREATOOLS_DIRBIN}\\\\creatis_AppGeneralPath.bat'  'creaContourApp.exe'
#		CreateShortCut  '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\Image_Tools\\\\Readme.txt.lnk' '${CREATOOLS_DIRBIN}\\\\start.bat'  'bin\\\\data\\\\README_ImageTools.txt'

		WriteRegStr HKLM 'SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment' 'CREATOOLS_DIRS' '${CREATOOLS_DIRS}'
				
		SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 'STR:Environment' /TIMEOUT=5000 	
		
		SetShellVarContext current
		StrCpy $R0 \\\"$DOCUMENTS\\\\..\\\\.bbtk\\\\doc\\\"
		RMDir /r $R0

   ")
		
	SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS  "
	
	
		!insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP
		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\CreaTools_HomePage.lnk'
		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\ creaTools.lnk'
		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Version.txt.lnk'
		
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Developer_Tools\\\\creaNewProject.lnk'
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Developer_Tools\\\\bbStudio.lnk'
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Developer_Tools\\\\bbEditor.lnk'
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Developer_Tools\\\\bbi.lnk'
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Developer_Tools\\\\Readme.txt.lnk'
		
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Demos\\\\Filter01.lnk'
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Demos\\\\Viewing01.lnk'
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Demos\\\\ShowNPoints.lnk'
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Demos\\\\Readme.txt.lnk'

#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Image_Tools\\\\RigidRegistration.lnk'
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Image_Tools\\\\RenderingViewing.lnk'
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Image_Tools\\\\Contours.lnk'
#		Delete '$SMPROGRAMS\\\\$MUI_TEMP\\\\Image_Tools\\\\Readme.txt.lnk'

        StrCpy $MUI_TEMP '$SMPROGRAMS\\\\$MUI_TEMP'
		RMDir /r $MUI_TEMP
		
		!define Uninstall_EnvStr_RegKey 'HKLM \\\"SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment\\\"'			
		WriteRegExpandStr \\\${Uninstall_EnvStr_RegKey} 'CREATOOLS_DIRS' ''		
		SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 'STR:Environment' /TIMEOUT=5000 
		
		SetShellVarContext current
		StrCpy $R0 \\\"$DOCUMENTS\\\\..\\\\.bbtk\\\\doc\\\"
		RMDir /r $R0
		
	")
   
   
   


ELSE(WIN32 AND NOT UNIX)
  SET(CPACK_STRIP_FILES "${CREA_BBTK}\\\\ubs.bat;kkk.rrr")
  SET(CPACK_SOURCE_STRIP_FILES "")
ENDIF(WIN32 AND NOT UNIX)

#EED 20 Nov 2009
#SET(CPACK_PACKAGE_EXECUTABLES "bbStudio" "creatisStudio"
#							  "bbi" "creatisInterpreter"
#							  "IRMMain" "creatisCartography"
#							  "creaNewProject" "creatisNewProyect" )


INCLUDE(CPack)


# Aditional INSTALL for CPACK mecanism.
IF (WIN32)

#INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_THIRDPARTY_DLLS}\\\\bin/ 			DESTINATION "${CREATOOLS_DESTINATION_PATH}/bin" )
#INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_THIRDPARTY_LIBRARIES}\\\\Library/ 	DESTINATION ${CREATOOLS_DESTINATION_PATH} )

INSTALL(FILES ${${CMAKE_PROJECT_NAME}_BINARY_DIR}/Version.txt DESTINATION . )

INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/bin/ 							DESTINATION bin  )
INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/data/ 							DESTINATION bin/data  )
INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_BASE}/ 			DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_BBTK}/ 			DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_MARACASVISU}/ 		DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_VTK}/ 				DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_IMAGEIO}/ 			DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_CONTOURS}/ 		DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_ENVIRIONMENT}/ 	DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_RECALAGE}/ 		DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_BRUKER}/ 			DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_BBTKGEDITOR}/ 		DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_MINITOOLS}/ 		DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
#INSTALL(DIRECTORY ${CREATOOLS_SOURCE_PATH}\\\\${CREA_IRM}/ 			DESTINATION ${CREATOOLS_DESTINATION_PATH}  )
ENDIF (WIN32)


IF (UNIX)
   install( FILES ${PROJECT_BINARY_DIR}/Version.sh  DESTINATION share/creatools )
   install( FILES ${PROJECT_BINARY_DIR}/Version.txt DESTINATION share/creatools )
ENDIF (UNIX)


