- Timestamp:
- Feb 12, 2016, 12:33:20 PM (11 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- e16e124
- Parents:
- db5a963
- Location:
- installer
- Files:
-
- 2 edited
-
CMakeLists.txt (modified) (2 diffs)
-
linux/CMakeLists.txt (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
installer/CMakeLists.txt
rdb5a963 r8faa4f7 1 1 # => http://www.cmake.org/Wiki/CMake:CPackPackageGenerators 2 2 3 cmake_minimum_required(VERSION 2.8)3 cmake_minimum_required(VERSION 3.0) 4 4 project(TOL-Installer) 5 5 … … 8 8 endif(NOT TOL_RUNTIME_DIR) 9 9 10 set(CPACK_PACKAGE_VENDOR "Tol-Project") 11 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Time Oriented Language") 10 set(CPACK_PACKAGE_NAME "TOL") 12 11 set(CPACK_PACKAGE_VERSION_MAJOR "3") 13 12 set(CPACK_PACKAGE_VERSION_MINOR "3") 14 13 set(CPACK_PACKAGE_VERSION_PATCH "0") 15 14 set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}") 15 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Time Oriented Language") 16 set(CPACK_PACKAGE_VENDOR "TOL Project") 16 17 set(CPACK_PACKAGE_CONTACT "Pedro Gea <pgea@bayesforecast.com>") 17 18 18 if( WIN32)19 add_subdirectory( windows)19 if(WIN32) 20 add_subdirectory(windows) 20 21 else(WIN32) 21 add_subdirectory( linux ) 22 endif( WIN32 ) 22 add_subdirectory(linux) 23 #! Sacar el include del IF después de incluir los PARENT_SCOPE en Windows 24 #! y comprobar que todo funciona adecuadamente. 25 include(CPack) 26 endif(WIN32) -
installer/linux/CMakeLists.txt
rdb5a963 r8faa4f7 1 macro( 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 ) 1 2 macro(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) 9 10 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})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}) 16 17 endmacro() 17 18 18 set( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" ${CMAKE_MODULE_PATH} ) 19 include( cpack_generator ) 20 21 message( STATUS "LINUX_NAME = ${LINUX_NAME}" ) 22 23 if( CPACK_GENERATOR ) 24 message( STATUS "requested CPACK_GENERATOR = ${CPACK_GENERATOR}" ) 25 else( 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 ) 30 endif( CPACK_GENERATOR ) 31 32 set( CPACK_TGZ_COMPONENT_INSTALL 1 PARENT_SCOPE ) 33 set( CPACK_DEB_COMPONENT_INSTALL 1 PARENT_SCOPE ) 34 set( CPACK_RPM_COMPONENT_INSTALL 1 PARENT_SCOPE ) 35 set( CPACK_PACKAGE_NAME tol PARENT_SCOPE ) 36 37 #cpack --help-variable CPACK_PACKAGE_FILE_NAME 38 message( STATUS "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}" ) 19 #============================================================================= 20 21 set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" ${CMAKE_MODULE_PATH}) 22 include(cpack_generator) 23 24 message(STATUS "LINUX_NAME = ${LINUX_NAME}") 25 26 if(CPACK_GENERATOR) 27 message(STATUS "Requested CPACK_GENERATOR = ${CPACK_GENERATOR}") 28 else(CPACK_GENERATOR) 29 if(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR) 30 message(STATUS "Setting CPACK_GENERATOR to ${SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR}") 31 set(CPACK_GENERATOR ${SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR} CACHE STRING "") 32 endif(SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR) 33 endif(CPACK_GENERATOR ) 39 34 40 35 #set(SPECIFIC_COMPILER_NAME "") 41 42 set(CPACK_DEBIAN_PACKAGE_SECTION "Mathematics") 43 44 if ( CPACK_GENERATOR STREQUAL "RPM" ) 36 37 #============================================================================= 38 # SETTINGS 39 #============================================================================= 40 41 #=== Installer filename ====================================================== 42 43 # Variable PACKAGE_ARCHITECTURE 44 if(CPACK_GENERATOR STREQUAL "RPM") 45 45 execute_process(COMMAND uname "-m" 46 46 OUTPUT_VARIABLE PACKAGE_ARCHITECTURE 47 47 OUTPUT_STRIP_TRAILING_WHITESPACE ) 48 elseif( CPACK_GENERATOR STREQUAL "DEB" ) 48 elseif(CPACK_GENERATOR STREQUAL "DEB") 49 message(STATUS "CPACK_DEBIAN_PACKAGE_ARCHITECTURE = ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}") 49 50 find_program(DPKG_CMD dpkg) 50 51 if(NOT DPKG_CMD) 51 52 message(STATUS "Can not find dpkg in your path, default to i386.") 52 set( PACKAGE_ARCHITECTURE i386)53 endif( )53 set(PACKAGE_ARCHITECTURE i386) 54 endif(NOT DPKG_CMD) 54 55 execute_process(COMMAND "${DPKG_CMD}" --print-architecture 55 56 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" ) 60 57 OUTPUT_STRIP_TRAILING_WHITESPACE) 58 else(CPACK_GENERATOR STREQUAL "RPM") 59 set(PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) 60 endif(CPACK_GENERATOR STREQUAL "RPM") 61 message(STATUS "PACKAGE_ARCHITECTURE=${PACKAGE_ARCHITECTURE}") 62 63 # Variable CPACK_SYSTEM_NAME 61 64 string( TOLOWER "${LINUX_NAME}.${PACKAGE_ARCHITECTURE}" _CPACK_SYSTEM_NAME ) 62 65 set( CPACK_SYSTEM_NAME ${_CPACK_SYSTEM_NAME} CACHE STRING "" ) 63 64 if ( 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" ) 71 else( CPACK_GENERATOR STREQUAL "RPM" ) 72 set( LIBSUFFIX "" ) 73 endif( CPACK_GENERATOR STREQUAL "RPM" ) 74 75 # RPM 76 set( CPACK_RPM_PACKAGE_URL "www.tol-project.org" PARENT_SCOPE ) 77 set( CPACK_RPM_PACKAGE_VENDOR "TOL Project" PARENT_SCOPE ) 78 set( CPACK_RPM_PACKAGE_RELOCATABLE OFF PAREENT_SCOPE ) 79 set( CPACK_RPM_PACKAGE_AUTOREQ " no" PARENT_SCOPE ) 80 set( CPACK_RPM_PACKAGE_GROUP "Applications/Engineering" PARENT_SCOPE ) 81 82 set( CPACK_RPM_core_PACKAGE_SUMMARY "The minimal TOL components necessary for a functional runtime" PARENT_SCOPE ) 83 set( CPACK_RPM_core_PACKAGE_DESCRIPTION 66 message(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 76 set(CPACK_TGZ_COMPONENT_INSTALL 1 PARENT_SCOPE) 77 set(CPACK_DEB_COMPONENT_INSTALL 1 PARENT_SCOPE) 78 set(CPACK_RPM_COMPONENT_INSTALL 1 PARENT_SCOPE) 79 80 #set(CPACK_COMPONENTS_GROUPING "ALL_COMPONENTS_IN_ONE" PARENT_SCOPE) 81 set(CPACK_COMPONENTS_GROUPING "IGNORE" PARENT_SCOPE) 82 set(CPACK_COMPONENTS_ALL core headers gui) 83 84 set(CPACK_COMPONENT_CORE_DESCRIPTION "TOL Core (Time Oriented Language)" PARENT_SCOPE) 85 set(CPACK_COMPONENT_HEADERS_DESCRIPTION "C++ headers for TOL (Time Oriented Language)" PARENT_SCOPE) 86 set(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 95 set(CPACK_RPM_PACKAGE_URL "www.tol-project.org" PARENT_SCOPE) 96 set(CPACK_RPM_PACKAGE_VENDOR "TOL Project" PARENT_SCOPE) 97 set(CPACK_RPM_PACKAGE_RELOCATABLE OFF PAREENT_SCOPE) 98 set(CPACK_RPM_PACKAGE_AUTOREQ " no" PARENT_SCOPE) 99 set(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering" PARENT_SCOPE) 100 101 set(CPACK_RPM_core_PACKAGE_SUMMARY "The minimal TOL components necessary for a functional runtime" PARENT_SCOPE) 102 set(CPACK_RPM_core_PACKAGE_DESCRIPTION 84 103 " 85 104 TOL = Time Oriented Language is a language and environment for statistical … … 89 108 expose all R funcionality whithin TOL. 90 109 91 " PARENT_SCOPE ) 92 set( 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 ) 93 set( CPACK_RPM_headers_PACKAGE_REQUIRES " tol-core = ${CPACK_PACKAGE_VERSION} " PARENT_SCOPE ) 94 set( CPACK_RPM_gui_PACKAGE_REQUIRES " tol-core = ${CPACK_PACKAGE_VERSION}, tk >= 8.5, bwidget, tcllib, blt, tcl-tktreectrl, tkimg " PARENT_SCOPE ) 95 96 set( CPACK_RPM_core_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE ) 97 set( CPACK_RPM_headers_PACKAGE_ARCHITECTURE noarch PARENT_SCOPE ) 98 set( CPACK_RPM_gui_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE ) 99 100 # DEB 101 set( 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 ) 102 set( CPACK_DEBIAN_headers_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION})") 103 set( 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" ) 108 set( PREFIX_TOL "lib${LIBSUFFIX}/tol${CPACK_PACKAGE_VERSION}" ) 110 " PARENT_SCOPE) 111 112 set(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) 113 set(CPACK_RPM_headers_PACKAGE_REQUIRES "tol-core = ${CPACK_PACKAGE_VERSION} " PARENT_SCOPE) 114 set(CPACK_RPM_gui_PACKAGE_REQUIRES "tol-core = ${CPACK_PACKAGE_VERSION}, tk >= 8.5, bwidget, tcllib, blt, tcl-tktreectrl, tkimg " PARENT_SCOPE) 115 116 set(CPACK_RPM_core_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE) 117 set(CPACK_RPM_headers_PACKAGE_ARCHITECTURE noarch PARENT_SCOPE) 118 set(CPACK_RPM_gui_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE) 119 120 #=== DEB ===================================================================== 121 122 # + CPACK_DEBIAN_PACKAGE_NAME = CPACK_PACKAGE_NAME (lower case) 123 # + CPACK_DEBIAN_PACKAGE_VERSION = CPACK_PACKAGE_VERSION 124 # + CPACK_DEBIAN_PACKAGE_ARCHITECTURE 125 # - CPACK_DEBIAN_PACKAGE_DEPENDS 126 # + CPACK_DEBIAN_PACKAGE_MAINTAINER = CPACK_PACKAGE_CONTACT 127 # + CPACK_DEBIAN_PACKAGE_DESCRIPTION = PACK_PACKAGE_DESCRIPTION_SUMMARY 128 # + CPACK_DEBIAN_PACKAGE_SECTION = 'devel' 129 # + CPACK_DEBIAN_PACKAGE_PRIORITY = 'optional' 130 # - CPACK_DEBIAN_PACKAGE_HOMEPAGE 131 set(CPACK_DEBIAN_PACKAGE_SECTION "Mathematics" PARENT_SCOPE) 132 set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "www.tol-project.org" PARENT_SCOPE) 133 134 #set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-filesystem-dev (>= 1.41), libboost-thread-dev (>= 1.41), libsuitesparse-dev, libfftw3-bin, libgsl0ldbl (>= 1.13), bzip2, zlib1g, libltdl7, libcurl3 (>=7.19), tcl (>= 8.5), tk (>= 8.5)" PARENT_SCOPE) 135 set(CPACK_DEBIAN_CORE_PACKAGE_DEPENDS "libboost-filesystem-dev (>= 1.41), libboost-thread-dev (>= 1.41), libsuitesparse-dev, libfftw3-bin, libgsl0ldbl (>= 1.13), bzip2, zlib1g, libltdl7, libcurl3 (>=7.19), tcl (>= 8.5)" PARENT_SCOPE) 136 set(CPACK_DEBIAN_HEADERS_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION})" PARENT_SCOPE) 137 set(CPACK_DEBIAN_GUI_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION}), tk (>= 8.5)" PARENT_SCOPE) 138 139 #============================================================================= 140 # INSTALLATION FILES 141 #============================================================================= 142 143 #=== Installation Directory ================================================== 144 145 # lib or lib64 directory 146 if(CPACK_GENERATOR STREQUAL "RPM") 147 get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS) 148 if(LIB64 STREQUAL "TRUE") 149 set(LIBSUFFIX "64") 150 else(LIB64 STREQUAL "TRUE") 151 set(LIBSUFFIX "") 152 endif(LIB64 STREQUAL "TRUE") 153 else(CPACK_GENERATOR STREQUAL "RPM") 154 set(LIBSUFFIX "") 155 endif(CPACK_GENERATOR STREQUAL "RPM") 156 157 set(PREFIX_TOL "lib${LIBSUFFIX}/tol${CPACK_PACKAGE_VERSION}") 158 159 #=== [core] ================================================================== 160 161 # core executables [BIN] 109 162 install(FILES 110 163 "${TOL_RUNTIME_DIR}/bin/tolcon" … … 116 169 WORLD_EXECUTE) 117 170 171 # TolCore (stdlib directory) 118 172 file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/stdlib" stdlib_dir) 119 173 install(DIRECTORY ${stdlib_dir} DESTINATION "${PREFIX_TOL}/bin" 120 COMPONENT core )121 122 # LIB123 file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/lib" lib_dir)124 file( GLOB TOL_SH_LIBS "${TOL_RUNTIME_DIR}/lib/*.so" )125 install( FILES ${TOL_SH_LIBS} DESTINATION "${PREFIX_TOL}/lib"126 174 COMPONENT core) 127 file( GLOB toltcl_dirs 175 176 # libraries [LIB] 177 file(GLOB tol_libs "${TOL_RUNTIME_DIR}/lib/*.so") 178 install(FILES ${tol_libs} DESTINATION "${PREFIX_TOL}/lib" 179 COMPONENT core) 180 181 # core tcltk libraries (toltcl & TclCurl) 182 file(GLOB toltcl_dirs 128 183 "${TOL_RUNTIME_DIR}/lib/toltcl*" 129 "${TOL_RUNTIME_DIR}/lib/TclCurl*" ) 130 install( DIRECTORY ${toltcl_dirs} DESTINATION "${PREFIX_TOL}/lib" 131 COMPONENT core ) 132 133 # INCLUDE 184 "${TOL_RUNTIME_DIR}/lib/TclCurl*") 185 install(DIRECTORY ${toltcl_dirs} DESTINATION "${PREFIX_TOL}/lib" 186 COMPONENT core) 187 188 #=== [headers] =============================================================== 189 190 # headers [INCLUDE] 134 191 file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/include" include_dir) 135 192 install( DIRECTORY ${include_dir} DESTINATION "${PREFIX_TOL}" 136 COMPONENT headers ) 137 138 # TOLBASE = gui 139 subdirlist( tclExtDirs "${TOL_RUNTIME_DIR}/lib" ) 193 COMPONENT headers) 194 195 #=== [gui] =================================================================== 196 197 # gui executables [BIN] 140 198 install(FILES 141 199 "${TOL_RUNTIME_DIR}/bin/tolbase.tcl" … … 146 204 GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE 147 205 WORLD_EXECUTE) 148 install( DIRECTORY ${tclExtDirs} DESTINATION "${PREFIX_TOL}/lib" 206 207 # gui tcltk libraries 208 subdirlist(tclExtDirs "${TOL_RUNTIME_DIR}/lib") 209 install(DIRECTORY ${tclExtDirs} DESTINATION "${PREFIX_TOL}/lib" 149 210 COMPONENT gui 150 PATTERN *toltcl* EXCLUDE 151 PATTERN *TclCurl* EXCLUDE ) 211 PATTERN toltcl* EXCLUDE 212 PATTERN TclCurl* EXCLUDE) 213 ##!!! cuidado que excluye bftoltcl.tcl quitar * 214 215 #============================================================================= 152 216 153 217 # SCRIPTS (/usr/bin) … … 166 230 #endif( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR STREQUAL "RPM" ) 167 231 # Estudiar como hacer lo mismo con CPACK_DEBIAN_core_PACKAGE_CONTROL_EXTRA 168 169 include( CPack )
Note: See TracChangeset
for help on using the changeset viewer.
