source: tol/installer/linux/CMakeLists.txt @ db5a963

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

Refs #1899
Se incorpora el CMakeLists.txt para el instalador en Windows.
Dispone de la posibilidad de crear el instalador para 32 y para 64 bits.
Dispone de la posibilidad de incluir tolbase o no.
Para que funcione adecuadamente la sentencia include(CPack) ha de moverse de archivo.

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

  • Property mode set to 100644
File size: 6.9 KB
Line 
1macro( subdirlist result dir )
2  set( ExtraMacroArgs ${ARGN} )
3  message( "GLOB children RELATIVE ${dir} ${dir}/*" )
4  file( GLOB children RELATIVE ${dir} ${dir}/* )
5  set( dirlist "" )
6  foreach( child ${children} )
7    if( IS_DIRECTORY ${dir}/${child} )
8      if( ExtraMacroArgs STREQUAL RELATIVE )
9        list(APPEND dirlist ${child})
10      else( ExtraMacroArgs STREQUAL RELATIVE )
11        list(APPEND dirlist ${dir}/${child} )
12      endif( ExtraMacroArgs STREQUAL RELATIVE )
13    endif( IS_DIRECTORY ${dir}/${child} )
14  endforeach( )
15  set( ${result} ${dirlist} )
16endmacro()
17
18set( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" ${CMAKE_MODULE_PATH} )
19include( cpack_generator )
20
21message( STATUS "LINUX_NAME = ${LINUX_NAME}" )
22
23if( CPACK_GENERATOR )
24  message( STATUS "requested CPACK_GENERATOR = ${CPACK_GENERATOR}" )
25else( CPACK_GENERATOR )
26  if( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR )
27    message( STATUS "Setting CPACK_GENERATOR to ${SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR}" )
28    set( CPACK_GENERATOR ${SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR} CACHE STRING "" )
29  endif( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR )
30endif( CPACK_GENERATOR )
31
32set( CPACK_TGZ_COMPONENT_INSTALL 1 PARENT_SCOPE )
33set( CPACK_DEB_COMPONENT_INSTALL 1 PARENT_SCOPE )
34set( CPACK_RPM_COMPONENT_INSTALL 1 PARENT_SCOPE )
35set( CPACK_PACKAGE_NAME tol PARENT_SCOPE )
36
37#cpack --help-variable CPACK_PACKAGE_FILE_NAME
38message( STATUS "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}" )
39
40#set(SPECIFIC_COMPILER_NAME "")
41 
42set(CPACK_DEBIAN_PACKAGE_SECTION "Mathematics")
43
44if ( CPACK_GENERATOR STREQUAL "RPM" )
45  execute_process(COMMAND uname "-m"
46    OUTPUT_VARIABLE PACKAGE_ARCHITECTURE
47    OUTPUT_STRIP_TRAILING_WHITESPACE )
48elseif( CPACK_GENERATOR STREQUAL "DEB" )
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()
54  execute_process(COMMAND "${DPKG_CMD}" --print-architecture
55    OUTPUT_VARIABLE PACKAGE_ARCHITECTURE
56    OUTPUT_STRIP_TRAILING_WHITESPACE )
57else( CPACK_GENERATOR STREQUAL "RPM" )
58  set( PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} )
59endif( CPACK_GENERATOR STREQUAL "RPM" )
60
61string( TOLOWER "${LINUX_NAME}.${PACKAGE_ARCHITECTURE}" _CPACK_SYSTEM_NAME )
62set( CPACK_SYSTEM_NAME ${_CPACK_SYSTEM_NAME} CACHE STRING "" )
63
64if ( CPACK_GENERATOR STREQUAL "RPM" )
65  get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
66  if( LIB64 STREQUAL "TRUE" )
67    set( LIBSUFFIX "64" )
68  else( LIB64 STREQUAL "TRUE" )
69    set( LIBSUFFIX "" )
70  endif( LIB64 STREQUAL "TRUE" )
71else( CPACK_GENERATOR STREQUAL "RPM" )
72  set( LIBSUFFIX "" )
73endif( CPACK_GENERATOR STREQUAL "RPM" )
74
75# RPM
76set( CPACK_RPM_PACKAGE_URL "www.tol-project.org" PARENT_SCOPE )
77set( CPACK_RPM_PACKAGE_VENDOR "TOL Project" PARENT_SCOPE )
78set( CPACK_RPM_PACKAGE_RELOCATABLE OFF PAREENT_SCOPE )
79set( CPACK_RPM_PACKAGE_AUTOREQ " no" PARENT_SCOPE )
80set( CPACK_RPM_PACKAGE_GROUP "Applications/Engineering" PARENT_SCOPE )
81
82set( CPACK_RPM_core_PACKAGE_SUMMARY "The minimal TOL components necessary for a functional runtime" PARENT_SCOPE )
83set( CPACK_RPM_core_PACKAGE_DESCRIPTION
84"
85TOL = Time Oriented Language is a language and environment for statistical
86computing. It provides a natural way to handle time series data and model it.
87
88There is a TOL package called TolRInside based on Rcpp/RInside wich R which
89expose all R funcionality whithin TOL.
90
91" PARENT_SCOPE )
92set( CPACK_RPM_core_PACKAGE_REQUIRES " atlas, tcl >= 8.5, 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 " PARENT_SCOPE )
93set( CPACK_RPM_headers_PACKAGE_REQUIRES " tol-core = ${CPACK_PACKAGE_VERSION} "  PARENT_SCOPE )
94set( CPACK_RPM_gui_PACKAGE_REQUIRES " tol-core = ${CPACK_PACKAGE_VERSION}, tk >= 8.5, bwidget, tcllib, blt, tcl-tktreectrl, tkimg "  PARENT_SCOPE )
95
96set( CPACK_RPM_core_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE )
97set( CPACK_RPM_headers_PACKAGE_ARCHITECTURE noarch PARENT_SCOPE )
98set( CPACK_RPM_gui_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE )
99
100# DEB
101set( CPACK_DEBIAN_core_PACKAGE_DEPENDS "libboost-filesystem (>= 1.41), libboost-thread (>= 1.41), libsuitesparse, libfftw3, libgsl0 (>= 1.13), bzip2, zlib1g, libltdl, libcurl3 (>=7.19), tcl (>= 8.5)" PARENT_SCOPE )
102set( CPACK_DEBIAN_headers_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION})")
103set( CPACK_DEBIAN_gui_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION}), tk (>= 8.5)")
104
105# BIN: TOL-CORE
106#file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/tol*" exe_pattern)
107#file(GLOB RT_EXE  ${exe_pattern} "${TOL_RUNTIME_DIR}/bin/confenv.sh" )
108set( PREFIX_TOL "lib${LIBSUFFIX}/tol${CPACK_PACKAGE_VERSION}" )
109install(FILES
110  "${TOL_RUNTIME_DIR}/bin/tolcon"
111  "${TOL_RUNTIME_DIR}/bin/tolsh"
112  DESTINATION "${PREFIX_TOL}/bin"
113  COMPONENT core
114  PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
115  GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE
116  WORLD_EXECUTE)
117
118file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/stdlib" stdlib_dir)
119install(DIRECTORY ${stdlib_dir} DESTINATION "${PREFIX_TOL}/bin"
120  COMPONENT core )
121
122# LIB
123file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/lib" lib_dir)
124file( GLOB TOL_SH_LIBS  "${TOL_RUNTIME_DIR}/lib/*.so" )
125install( FILES ${TOL_SH_LIBS} DESTINATION "${PREFIX_TOL}/lib"
126  COMPONENT core)
127file( GLOB toltcl_dirs 
128  "${TOL_RUNTIME_DIR}/lib/toltcl*"
129  "${TOL_RUNTIME_DIR}/lib/TclCurl*" )
130install( DIRECTORY ${toltcl_dirs} DESTINATION "${PREFIX_TOL}/lib"
131  COMPONENT core )
132
133# INCLUDE
134file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/include" include_dir)
135install( DIRECTORY ${include_dir} DESTINATION "${PREFIX_TOL}"
136  COMPONENT headers )
137
138# TOLBASE = gui
139subdirlist( tclExtDirs "${TOL_RUNTIME_DIR}/lib" )
140install(FILES
141  "${TOL_RUNTIME_DIR}/bin/tolbase.tcl"
142  "${TOL_RUNTIME_DIR}/bin/tolbase"
143  DESTINATION "${PREFIX_TOL}/bin"
144  COMPONENT gui
145  PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
146  GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE
147  WORLD_EXECUTE)
148install( DIRECTORY ${tclExtDirs} DESTINATION "${PREFIX_TOL}/lib"
149  COMPONENT gui
150  PATTERN *toltcl* EXCLUDE
151  PATTERN *TclCurl* EXCLUDE )
152
153# SCRIPTS (/usr/bin)
154## !!
155## file(TO_CMAKE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/building/Linux_32/scripts/tol*" sh_pattern)
156## file(GLOB RT_SH  ${sh_pattern})
157## 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)
158
159# nombre del paquete instalador
160#if( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR STREQUAL "RPM" )
161#  configure_file(
162#    ${CMAKE_CURRENT_SOURCE_DIR}/rpm_post_install.sh.in
163#    ${CMAKE_CURRENT_BINARY_DIR}/rpm_post_install.sh )
164#  set( CPACK_RPM_core_POST_INSTALL_SCRIPT_FILE
165#    "${CMAKE_CURRENT_BINARY_DIR}/rpm_post_install.sh" PARENT_SCOPE )
166#endif( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR STREQUAL "RPM" )
167# Estudiar como hacer lo mismo con CPACK_DEBIAN_core_PACKAGE_CONTROL_EXTRA
168
169include( CPack )
Note: See TracBrowser for help on using the repository browser.