source: tol/installer/linux/CMakeLists.txt @ 8be3475

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

Summary: refs #1950, paquete de fuentes

Se incluye en las dependencias para CentOS el paquete dejavu-sans-fonts requrido por tolbase

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

  • Property mode set to 100644
File size: 10.2 KB
Line 
1
2macro(subdirlist result dir)
3  set(ExtraMacroArgs ${ARGN})
4  message("GLOB children RELATIVE ${dir} ${dir}/*")
5  file(GLOB children RELATIVE ${dir} ${dir}/*)
6  set(dirlist "")
7  foreach(child ${children})
8    if(IS_DIRECTORY ${dir}/${child})
9      if(ExtraMacroArgs STREQUAL RELATIVE)
10        list(APPEND dirlist ${child})
11      else(ExtraMacroArgs STREQUAL RELATIVE)
12        list(APPEND dirlist ${dir}/${child})
13      endif(ExtraMacroArgs STREQUAL RELATIVE)
14    endif(IS_DIRECTORY ${dir}/${child})
15  endforeach()
16  set(${result} ${dirlist})
17endmacro()
18
19#=============================================================================
20
21set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" ${CMAKE_MODULE_PATH})
22#include(cpack_generator)
23include(cpack_generator)
24
25if(CPACK_GENERATOR)
26  message(STATUS "Requested CPACK_GENERATOR = ${CPACK_GENERATOR}")
27else(CPACK_GENERATOR)
28  if(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR)
29    message(STATUS "Setting CPACK_GENERATOR to ${SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR}")
30    set(CPACK_GENERATOR ${SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR} CACHE STRING "")
31  endif(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR)
32endif(CPACK_GENERATOR )
33
34#set(SPECIFIC_COMPILER_NAME "")
35
36#=============================================================================
37# SETTINGS
38#=============================================================================
39
40#=== Installer filename ======================================================
41
42# Variable PACKAGE_ARCHITECTURE
43# if(CPACK_GENERATOR STREQUAL "RPM")
44#   execute_process(COMMAND uname "-m"
45#     OUTPUT_VARIABLE PACKAGE_ARCHITECTURE
46#     OUTPUT_STRIP_TRAILING_WHITESPACE )
47# elseif(CPACK_GENERATOR STREQUAL "DEB")
48#   message(STATUS "CPACK_DEBIAN_PACKAGE_ARCHITECTURE = ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
49#   find_program(DPKG_CMD dpkg)
50#   if(NOT DPKG_CMD)
51#     message(STATUS "Can not find dpkg in your path, default to i386.")
52#     set(PACKAGE_ARCHITECTURE i386)
53#   endif(NOT DPKG_CMD)
54#   execute_process(COMMAND "${DPKG_CMD}" --print-architecture
55#     OUTPUT_VARIABLE PACKAGE_ARCHITECTURE
56#     OUTPUT_STRIP_TRAILING_WHITESPACE)
57# else(CPACK_GENERATOR STREQUAL "RPM")
58#   set(PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
59# endif(CPACK_GENERATOR STREQUAL "RPM")
60set(PACKAGE_ARCHITECTURE ${SPECIFIC_SYSTEM_ARCHITECTURE})
61message(STATUS "PACKAGE_ARCHITECTURE=${PACKAGE_ARCHITECTURE}")
62
63# Variable CPACK_SYSTEM_NAME
64string(TOLOWER "${SPECIFIC_SYSTEM_NAME}.${SPECIFIC_SYSTEM_RELEASE}.${PACKAGE_ARCHITECTURE}" _CPACK_SYSTEM_NAME)
65set(CPACK_SYSTEM_NAME ${_CPACK_SYSTEM_NAME} CACHE STRING "" FORCE)
66message(STATUS "CPACK_SYSTEM_NAME=${CPACK_SYSTEM_NAME}")
67
68# Variable CPACK_PACKAGE_FILE_NAME
69# Default value for ${CPACK_PACKAGE_FILE_NAME} is:
70#   ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}
71# See: cpack --help-variable CPACK_PACKAGE_FILE_NAME
72#message(STATUS "CPACK_PACKAGE_FILE_NAME=${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}")
73
74#=== Components ==============================================================
75
76set(CPACK_TGZ_COMPONENT_INSTALL 1 PARENT_SCOPE)
77set(CPACK_DEB_COMPONENT_INSTALL 1 PARENT_SCOPE)
78set(CPACK_RPM_COMPONENT_INSTALL 1 PARENT_SCOPE)
79
80#set(CPACK_COMPONENTS_GROUPING "ALL_COMPONENTS_IN_ONE" PARENT_SCOPE)
81set(CPACK_COMPONENTS_GROUPING "IGNORE" PARENT_SCOPE)
82set(CPACK_COMPONENTS_ALL core headers gui)
83
84set(CPACK_COMPONENT_CORE_DESCRIPTION "TOL Core (Time Oriented Language)" PARENT_SCOPE)
85set(CPACK_COMPONENT_HEADERS_DESCRIPTION "C++ headers for TOL (Time Oriented Language)" PARENT_SCOPE)
86set(CPACK_COMPONENT_GUI_DESCRIPTION "GUI for TOL (Time Oriented Language)" PARENT_SCOPE)
87
88#=== RPM =====================================================================
89#!! Mirar si algunas configuraciones pueden obviarse porque por defecto usan
90#!! una configuración general, por ejemplo: CPACK_RPM_PACKAGE_VENDOR quizá
91#!! ya usa: CPACK_PACKAGE_VENDOR
92#!! Comprobar si los nombres de las componentes pueden ponerse en mayúsculas:
93#!! CPACK_RPM_CORE_PACKAGE_DESCRIPTION en lugar de: CPACK_RPM_core_PACKAGE_DESCRIPTION
94
95set(CPACK_RPM_PACKAGE_URL "www.tol-project.org" PARENT_SCOPE)
96set(CPACK_RPM_PACKAGE_VENDOR "TOL Project" PARENT_SCOPE)
97set(CPACK_RPM_PACKAGE_RELOCATABLE OFF PAREENT_SCOPE)
98set(CPACK_RPM_PACKAGE_AUTOREQ " no" PARENT_SCOPE)
99set(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering" PARENT_SCOPE)
100
101set(CPACK_RPM_core_PACKAGE_SUMMARY "The minimal TOL components necessary for a functional runtime" PARENT_SCOPE)
102set(CPACK_RPM_core_PACKAGE_DESCRIPTION
103"
104TOL = Time Oriented Language is a language and environment for statistical
105computing. It provides a natural way to handle time series data and model it.
106
107There is a TOL package called TolRInside based on Rcpp/RInside wich R which
108expose all R funcionality whithin TOL.
109
110" PARENT_SCOPE)
111
112set(FEDORA_core_REQUIRES "atlas, tcl >= 8.5, tcllib, boost-filesystem >= 1.41, boost-thread >= 1.41, suitesparse >= 3, fftw >= 3, gsl >= 1.13, bzip2-libs, zlib, libtool-ltdl, libcurl >= 7.19, postgresql-libs >= 8.4, mysql-libs, unixODBC")
113
114set(CENTOS_core_REQUIRES "atlas, blas, lapack, tcl >= 8.5, tcllib, boost-atomic >= 1.41, boost-date-time >= 1.41, boost-chrono >= 1.41, boost-filesystem >= 1.41, boost-thread >= 1.41, suitesparse >= 3, fftw >= 3, gsl >= 1.13, bzip2-libs, zlib, libtool-ltdl, libcurl >= 7.19, postgresql-libs >= 8.4, mysql-libs, unixODBC")
115
116set(CENTOS_gui_REQUIRES "dejavu-sans-fonts")
117
118set(CPACK_RPM_core_PACKAGE_REQUIRES ${CENTOS_core_REQUIRES} PARENT_SCOPE)
119set(CPACK_RPM_headers_PACKAGE_REQUIRES "tol-core = ${CPACK_PACKAGE_VERSION}"  PARENT_SCOPE)
120set(CPACK_RPM_gui_PACKAGE_REQUIRES "tol-core = ${CPACK_PACKAGE_VERSION}, tk >= 8.5, bwidget"  PARENT_SCOPE)
121
122set(CPACK_RPM_core_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE)
123set(CPACK_RPM_headers_PACKAGE_ARCHITECTURE noarch PARENT_SCOPE)
124set(CPACK_RPM_gui_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE)
125
126#=== DEB =====================================================================
127
128# + CPACK_DEBIAN_PACKAGE_NAME = CPACK_PACKAGE_NAME (lower case)
129# + CPACK_DEBIAN_PACKAGE_VERSION = CPACK_PACKAGE_VERSION
130# + CPACK_DEBIAN_PACKAGE_ARCHITECTURE
131# - CPACK_DEBIAN_PACKAGE_DEPENDS
132# + CPACK_DEBIAN_PACKAGE_MAINTAINER = CPACK_PACKAGE_CONTACT
133# + CPACK_DEBIAN_PACKAGE_DESCRIPTION = PACK_PACKAGE_DESCRIPTION_SUMMARY
134# + CPACK_DEBIAN_PACKAGE_SECTION = 'devel'
135# + CPACK_DEBIAN_PACKAGE_PRIORITY = 'optional'
136# - CPACK_DEBIAN_PACKAGE_HOMEPAGE
137set(CPACK_DEBIAN_PACKAGE_SECTION "Mathematics" PARENT_SCOPE)
138set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "www.tol-project.org" PARENT_SCOPE)
139
140set(CPACK_DEBIAN_CORE_PACKAGE_DEPENDS "libatlas3-base, tcl (>= 8.5), libboost-filesystem-dev (>= 1.41), libboost-thread-dev (>= 1.41), libsuitesparse-dev, libfftw3-bin, libgsl0ldbl (>= 1.13), bzip2, zlib1g, libltdl7, libcurl3 (>=7.19), libpq5, libmysqlclient18, unixodbc" PARENT_SCOPE) # tclcurl
141set(CPACK_DEBIAN_HEADERS_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION})" PARENT_SCOPE)
142set(CPACK_DEBIAN_GUI_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION}), tk (>= 8.5), bwidget, tcllib, blt, tktreectrl, libtk-img" PARENT_SCOPE) # tclodbc, tk-table
143
144#=============================================================================
145# INSTALLATION FILES
146#=============================================================================
147
148#=== Installation Directory ==================================================
149
150# lib or lib64 directory
151if(CPACK_GENERATOR STREQUAL "RPM")
152  get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
153  if(LIB64 STREQUAL "TRUE")
154    set(LIBSUFFIX "64")
155  else(LIB64 STREQUAL "TRUE")
156    set(LIBSUFFIX "")
157  endif(LIB64 STREQUAL "TRUE")
158else(CPACK_GENERATOR STREQUAL "RPM")
159  set(LIBSUFFIX "")
160endif(CPACK_GENERATOR STREQUAL "RPM")
161
162set(PREFIX_TOL "lib${LIBSUFFIX}/tol${CPACK_PACKAGE_VERSION}")
163
164#=== [core] ==================================================================
165
166# core executables [BIN]
167install(FILES
168  "${TOL_RUNTIME_DIR}/bin/tolcon"
169  "${TOL_RUNTIME_DIR}/bin/tolsh"
170  DESTINATION "${PREFIX_TOL}/bin"
171  COMPONENT core
172  PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
173  GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE
174  WORLD_EXECUTE)
175
176# TolCore (stdlib directory)
177file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/stdlib" stdlib_dir)
178install(DIRECTORY ${stdlib_dir} DESTINATION "${PREFIX_TOL}/bin"
179  COMPONENT core)
180
181# libraries [LIB]
182file(GLOB tol_libs  "${TOL_RUNTIME_DIR}/lib/*.so")
183install(FILES ${tol_libs} DESTINATION "${PREFIX_TOL}/lib"
184  COMPONENT core)
185
186# core tcltk libraries (toltcl & TclCurl)
187file(GLOB toltcl_dirs 
188  "${TOL_RUNTIME_DIR}/lib/toltcl*"
189  "${TOL_RUNTIME_DIR}/lib/TclCurl*")
190install(DIRECTORY ${toltcl_dirs} DESTINATION "${PREFIX_TOL}/lib"
191  COMPONENT core)
192
193#=== [headers] ===============================================================
194
195# headers [INCLUDE]
196file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/include" include_dir)
197install( DIRECTORY ${include_dir} DESTINATION "${PREFIX_TOL}"
198  COMPONENT headers)
199 
200#=== [gui] ===================================================================
201
202# gui executables [BIN]
203install(FILES
204  "${TOL_RUNTIME_DIR}/bin/tolbase.tcl"
205  "${TOL_RUNTIME_DIR}/bin/tolbase"
206  DESTINATION "${PREFIX_TOL}/bin"
207  COMPONENT gui
208  PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
209  GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE
210  WORLD_EXECUTE)
211
212# gui tcltk libraries 
213subdirlist(tclExtDirs "${TOL_RUNTIME_DIR}/lib")
214install(DIRECTORY ${tclExtDirs} DESTINATION "${PREFIX_TOL}/lib"
215  COMPONENT gui
216  PATTERN toltcl* EXCLUDE
217  PATTERN TclCurl* EXCLUDE)
218##!!! cuidado que excluye bftoltcl.tcl quitar *
219 
220#=============================================================================
221
222# SCRIPTS (/usr/bin)
223## !!
224## file(TO_CMAKE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/building/Linux_32/scripts/tol*" sh_pattern)
225## file(GLOB RT_SH  ${sh_pattern})
226## install(FILES ${RT_SH} DESTINATION "bin" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE WORLD_EXECUTE)
227
228# nombre del paquete instalador
229#if( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR STREQUAL "RPM" )
230#  configure_file(
231#    ${CMAKE_CURRENT_SOURCE_DIR}/rpm_post_install.sh.in
232#    ${CMAKE_CURRENT_BINARY_DIR}/rpm_post_install.sh )
233#  set( CPACK_RPM_core_POST_INSTALL_SCRIPT_FILE
234#    "${CMAKE_CURRENT_BINARY_DIR}/rpm_post_install.sh" PARENT_SCOPE )
235#endif( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR STREQUAL "RPM" )
236# Estudiar como hacer lo mismo con CPACK_DEBIAN_core_PACKAGE_CONTROL_EXTRA
Note: See TracBrowser for help on using the repository browser.