source: tol/CMakeLists.txt @ ec3efea

1941-docker-image-to-testdevel
Last change on this file since ec3efea was ec3efea, checked in by Pedro Gea <pgea@…>, 11 years ago

Refs #1860
Se modifica el CMakeLists para incorporar cambios para DEB.

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@6919 be4846ae-f051-483a-831f-b64e7d08527f

  • Property mode set to 100644
File size: 6.8 KB
Line 
1cmake_minimum_required(VERSION 2.8)
2project(TOL-Installer)
3
4set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/NSIS" ${CMAKE_MODULE_PATH})
5
6if(NOT TOL_RUNTIME_DIR)
7  message(FATAL_ERROR "You must specify the variable TOL_RUNTIME_DIR with the path to binary instalation of TOL. TOLTCL and TOLBASE should also be installed on that location.")
8endif(NOT TOL_RUNTIME_DIR)
9
10# => http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack
11
12if( WIN32 )
13  # BIN (APPLICATION)
14  file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/*.dll" dll_pattern )
15  file( GLOB RT_DLL  ${dll_pattern} )
16  install( FILES ${RT_DLL} DESTINATION "bin" COMPONENT application)
17  file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/*.exe" exe_pattern )
18  file( GLOB RT_EXE  ${exe_pattern} )
19  install( FILES ${RT_EXE} DESTINATION "bin" COMPONENT application)
20  file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/stdlib" stdlib_dir )
21  install( DIRECTORY ${stdlib_dir} DESTINATION "bin" COMPONENT application
22    PATTERN ".svn" EXCLUDE )
23  file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/language.txt" language_txt )
24  file( GLOB RT_TXT  ${language_txt} )
25  install( FILES ${RT_TXT} DESTINATION "bin" COMPONENT application)
26  # BIN (DEVELOPMENT)
27  file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/*.lib" lib_pattern )
28  file( GLOB RT_LIB  ${lib_pattern} )
29  install( FILES ${RT_LIB} DESTINATION "bin" COMPONENT development)
30  # LIB (APPLICATION)
31  file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/lib" lib_dir )
32  install( DIRECTORY ${lib_dir} DESTINATION "." COMPONENT application
33    PATTERN "*.a" EXCLUDE PATTERN ".svn" EXCLUDE )
34  # INCLUDE (DEVELOPMENT)
35  file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/include" include_dir )
36  install( DIRECTORY ${include_dir} DESTINATION "." COMPONENT development)
37
38  set(CPACK_COMPONENTS_GROUPING "ALL_COMPONENTS_IN_ONE")
39  set(CPACK_COMPONENTS_ALL application development)
40
41  set(CPACK_COMPONENT_APPLICATION_REQUIRED 1)
42  set(CPACK_COMPONENT_DEVELOPMENT_DISABLED 1)
43
44  set(CPACK_COMPONENT_APPLICATION_DISPLAY_NAME "TOL Application")
45  set(CPACK_COMPONENT_DEVELOPMENT_DISPLAY_NAME "C++ Headers & Libraries")
46
47  set(CPACK_COMPONENT_APPLICATION_DESCRIPTION
48    "Main components of TOL Application")
49  set(CPACK_COMPONENT_DEVELOPMENT_DESCRIPTION
50    "C/C++ header files and libraries for development purposes")
51endif( WIN32 )
52
53if( UNIX )
54  # BIN
55  file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/tol*" exe_pattern )
56  file( GLOB RT_EXE  ${exe_pattern} )
57  install( FILES ${RT_EXE} DESTINATION "local/tol3.2-i/bin" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE WORLD_EXECUTE)
58  file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/stdlib" stdlib_dir )
59  install( DIRECTORY ${stdlib_dir} DESTINATION "local/tol3.2-i/bin")
60  # LIB
61  file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/lib" lib_dir )
62  install( DIRECTORY ${lib_dir} DESTINATION "local/tol3.2-i")
63  # INCLUDE
64  file( TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/include" include_dir )
65  install( DIRECTORY ${include_dir} DESTINATION "local/tol3.2-i")
66endif( UNIX )
67
68configure_file( ${CMAKE_SOURCE_DIR}/CPackOptions.cmake.in ${PROJECT_BINARY_DIR}/CPackOptions.cmake )
69
70# => http://stackoverflow.com/questions/21144655/customizing-nsis-installer-using-cpack
71# => http://www.cmake.org/Wiki/CMake:CPackPackageGenerators
72
73if( WIN32 )
74  set(CPACK_PACKAGE_NAME "TOL (GNU)")
75endif( WIN32 )
76if( UNIX )
77  set(CPACK_PACKAGE_NAME "TOL")
78endif( UNIX )
79set(CPACK_PACKAGE_VENDOR "Tol-Project")
80set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Time Oriented Language")
81set(CPACK_PACKAGE_VERSION_MAJOR "3")
82set(CPACK_PACKAGE_VERSION_MINOR "2")
83set(CPACK_PACKAGE_VERSION_PATCH "0")
84set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
85if( WIN32 )
86  set(CPACK_PACKAGE_NAMEV "tol-gnu-v${CPACK_PACKAGE_VERSION}")
87endif( WIN32 )
88if( UNIX )
89  set(CPACK_PACKAGE_NAMEV "tol-v${CPACK_PACKAGE_VERSION}")
90endif( UNIX )
91set(CPACK_PACKAGE_CONTACT "Pedro Gea <pgea@bayesforecast.com>")
92set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_VENDOR}\\\\${CPACK_PACKAGE_NAMEV}")
93set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAMEV}")
94
95set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/NSIS/nsis_tol.bmp")
96if( WIN32 )
97  string(REPLACE "/" "\\\\" CPACK_PACKAGE_ICON ${CPACK_PACKAGE_ICON})
98endif( WIN32 )
99
100set(CPACK_PROPERTIES_FILE "${PROJECT_BINARY_DIR}/CPackOptions.cmake")
101
102set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/tol/COPYING" )
103if( WIN32 )
104  string(REPLACE "/" "\\\\" CPACK_RESOURCE_FILE_LICENSE ${CPACK_RESOURCE_FILE_LICENSE})
105endif( WIN32 )
106
107if( UNIX )
108set(CPACK_DEBIAN_PACKAGE_SECTION "Mathematics")
109endif( UNIX )
110
111if( WIN32 )
112  set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/NSIS/tolbase-install.ico" )
113    string(REPLACE "/" "\\\\" CPACK_NSIS_MUI_ICON ${CPACK_NSIS_MUI_ICON})
114  set(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/NSIS/tolbase-uninstall.ico" )
115    string(REPLACE "/" "\\\\" CPACK_NSIS_MUI_UNIICON ${CPACK_NSIS_MUI_UNIICON})
116  set(CPACK_NSIS_HELP_LINK "www.tol-project.org")
117endif( WIN32 )
118
119# => http://www.mantidproject.org/NSIS_CPACK_Customisations
120# => http://nsis.sourceforge.net/Environmental_Variables:_append,_prepend,_and_remove_entries
121
122# => http://www.cmake.org/Wiki/CMake:CPackNSISAdvancedTips
123
124if(WIN32)
125  # nombre del paquete en el instalador
126  set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}")
127  # nombre del instalador:
128  set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAMEV}-win32")
129
130  set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
131    DeleteRegValue HKCU \\\"Environment\\\" TOLGNU_ROOT
132    WriteRegExpandStr HKLM \\\"SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment\\\" TOLGNU_ROOT \\\$INSTDIR
133    SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 \\\"STR:Environment\\\" /TIMEOUT=5000
134  ")
135  set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
136    DeleteRegValue HKLM \\\"SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment\\\" TOLGNU_ROOT
137    SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 \\\"STR:Environment\\\" /TIMEOUT=5000
138  ")
139
140  # añade el icono en el panel para desinstalar programas
141  set(CPACK_NSIS_INSTALLED_ICON_NAME "${INSTDIR}/lib/TolbaseApp${CPACK_PACKAGE_VERSION}/toltk/images/tolbase-gnu.ico")
142    string(REPLACE "/" "\\\\" CPACK_NSIS_INSTALLED_ICON_NAME ${CPACK_NSIS_INSTALLED_ICON_NAME})
143
144  # pregunta tras instalar si abrir tolbase
145  set(CPACK_NSIS_MUI_FINISHPAGE_RUN "tolbase.exe")
146
147  # crea acceso directos a estos ejecutables (pares nombre_archivo nombre_acceso)
148  set(CPACK_PACKAGE_EXECUTABLES tolbase "tolbase-gnu-v${CPACK_PACKAGE_VERSION}")
149  # crea otros accesos directos
150  set(CPACK_NSIS_MENU_LINKS "http://www.tol-project.org" "Tol-Project Site")
151endif(WIN32)
152
153if( UNIX )
154  # nombre del instalador:
155  set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAMEV}")
156  # crea acceso directos a estos ejecutables (pares nombre_archivo nombre_acceso)
157  set(CPACK_PACKAGE_EXECUTABLES tolsh "tolsh-v${CPACK_PACKAGE_VERSION}")
158endif( UNIX )
159
160include(CPack)
Note: See TracBrowser for help on using the repository browser.