source: tol/CMakeLists.txt @ 4669581

1941-docker-image-to-testdevel
Last change on this file since 4669581 was 4669581, checked in by Jorge Pérez <josp.jorge@…>, 11 years ago

mas de rpm

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

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