source: tol/installer/linux/CMakeLists.txt @ 6dce91c

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

refs #1899, los scripts de arranque no hacen falta ya que los ejecutables se basan en RPATH.

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

  • Property mode set to 100644
File size: 6.1 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 )
36string( TOLOWER "${LINUX_NAME}.${CMAKE_SYSTEM_PROCESSOR}" _CPACK_SYSTEM_NAME )
37set( CPACK_SYSTEM_NAME ${_CPACK_SYSTEM_NAME} CACHE STRING "" )
38
39#cpack --help-variable CPACK_PACKAGE_FILE_NAME
40message( STATUS "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}" )
41
42#set(SPECIFIC_COMPILER_NAME "")
43 
44set(CPACK_DEBIAN_PACKAGE_SECTION "Mathematics")
45
46get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
47if( "${LIB64}" STREQUAL "TRUE" )
48  set( LIBSUFFIX 64 )
49else( "${LIB64}" STREQUAL "TRUE" )
50  set( LIBSUFFIX "" )
51endif( "${LIB64}" STREQUAL "TRUE" )
52
53# RPM
54set( CPACK_RPM_PACKAGE_URL "www.tol-project.org" PARENT_SCOPE )
55set( CPACK_RPM_PACKAGE_VENDOR "TOL Project" PARENT_SCOPE )
56set( CPACK_RPM_PACKAGE_RELOCATABLE OFF PAREENT_SCOPE )
57set( CPACK_RPM_PACKAGE_AUTOREQ " no" PARENT_SCOPE )
58set( CPACK_RPM_PACKAGE_GROUP "Applications/Engineering" PARENT_SCOPE )
59
60set( CPACK_RPM_core_PACKAGE_SUMMARY "The minimal TOL components necessary for a functional runtime" PARENT_SCOPE )
61set( CPACK_RPM_core_PACKAGE_DESCRIPTION
62"
63TOL = Time Oriented Language is a language and environment for statistical
64computing. It provides a natural way to handle time series data and model it.
65
66There is a TOL package called TolRInside based on Rcpp/RInside wich R which
67expose all R funcionality whithin TOL.
68
69" PARENT_SCOPE )
70set( 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 )
71set( CPACK_RPM_headers_PACKAGE_REQUIRES " tol-core = ${CPACK_PACKAGE_VERSION} "  PARENT_SCOPE )
72set( CPACK_RPM_gui_PACKAGE_REQUIRES " tol-core = ${CPACK_PACKAGE_VERSION}, tk >= 8.5, bwidget, tcllib, blt, tcl-tktreectrl, tkimg "  PARENT_SCOPE )
73
74set( CPACK_RPM_core_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE )
75set( CPACK_RPM_headers_PACKAGE_ARCHITECTURE noarch PARENT_SCOPE )
76set( CPACK_RPM_gui_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE )
77
78# DEB
79set( 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 )
80set( CPACK_DEBIAN_headers_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION})")
81set( CPACK_DEBIAN_gui_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION}), tk (>= 8.5)")
82
83# BIN: TOL-CORE
84#file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/tol*" exe_pattern)
85#file(GLOB RT_EXE  ${exe_pattern} "${TOL_RUNTIME_DIR}/bin/confenv.sh" )
86set( PREFIX_TOL "lib${LIBSUFFIX}/tol${CPACK_PACKAGE_VERSION}" )
87install(FILES
88#  "${TOL_RUNTIME_DIR}/bin/confenv.sh"
89#  "${TOL_RUNTIME_DIR}/bin/tolcon.sh"
90#  "${TOL_RUNTIME_DIR}/bin/tolsh.sh"
91  "${TOL_RUNTIME_DIR}/bin/tolcon"
92  "${TOL_RUNTIME_DIR}/bin/tolsh"
93  DESTINATION "${PREFIX_TOL}/bin"
94  COMPONENT core
95  PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
96  GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE
97  WORLD_EXECUTE)
98
99file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/stdlib" stdlib_dir)
100install(DIRECTORY ${stdlib_dir} DESTINATION "${PREFIX_TOL}/bin"
101  COMPONENT core )
102
103# LIB
104file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/lib" lib_dir)
105file( GLOB TOL_SH_LIBS  "${TOL_RUNTIME_DIR}/lib/*.so" )
106install( FILES ${TOL_SH_LIBS} DESTINATION "${PREFIX_TOL}/lib"
107  COMPONENT core)
108file( GLOB toltcl_dir  "${TOL_RUNTIME_DIR}/lib/toltcl*" )
109install( DIRECTORY ${toltcl_dir} DESTINATION "${PREFIX_TOL}/lib"
110  COMPONENT core )
111
112# INCLUDE
113file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/include" include_dir)
114install( DIRECTORY ${include_dir} DESTINATION "${PREFIX_TOL}"
115  COMPONENT headers )
116
117# TOLBASE = gui
118subdirlist( tclExtDirs "${TOL_RUNTIME_DIR}/lib" )
119install(FILES
120#  "${TOL_RUNTIME_DIR}/bin/tolbase.sh"
121  "${TOL_RUNTIME_DIR}/bin/tolbase"
122  DESTINATION "${PREFIX_TOL}/bin"
123  COMPONENT gui
124  PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
125  GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE
126  WORLD_EXECUTE)
127install( DIRECTORY ${tclExtDirs} DESTINATION "${PREFIX_TOL}/lib"
128  COMPONENT gui
129  PATTERN *toltcl* EXCLUDE )
130
131# SCRIPTS (/usr/bin)
132## !!
133## file(TO_CMAKE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/building/Linux_32/scripts/tol*" sh_pattern)
134## file(GLOB RT_SH  ${sh_pattern})
135## 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)
136
137# nombre del paquete instalador
138#if( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR STREQUAL "RPM" )
139#  configure_file(
140#    ${CMAKE_CURRENT_SOURCE_DIR}/rpm_post_install.sh.in
141#    ${CMAKE_CURRENT_BINARY_DIR}/rpm_post_install.sh )
142#  set( CPACK_RPM_core_POST_INSTALL_SCRIPT_FILE
143#    "${CMAKE_CURRENT_BINARY_DIR}/rpm_post_install.sh" PARENT_SCOPE )
144#endif( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR STREQUAL "RPM" )
145# Estudiar como hacer lo mismo con CPACK_DEBIAN_core_PACKAGE_CONTROL_EXTRA
Note: See TracBrowser for help on using the repository browser.