| [8faa4f7] | 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) |
|---|
| [0ca91a5] | 10 | list(APPEND dirlist ${child}) |
|---|
| [8faa4f7] | 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}) |
|---|
| [0ca91a5] | 17 | endmacro() |
|---|
| 18 | |
|---|
| [8faa4f7] | 19 | #============================================================================= |
|---|
| [0ca91a5] | 20 | |
|---|
| [8faa4f7] | 21 | set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" ${CMAKE_MODULE_PATH}) |
|---|
| [b09e2f4f] | 22 | #include(cpack_generator) |
|---|
| [8faa4f7] | 23 | include(cpack_generator) |
|---|
| [0ca91a5] | 24 | |
|---|
| [8faa4f7] | 25 | if(CPACK_GENERATOR) |
|---|
| 26 | message(STATUS "Requested CPACK_GENERATOR = ${CPACK_GENERATOR}") |
|---|
| 27 | else(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) |
|---|
| 32 | endif(CPACK_GENERATOR ) |
|---|
| [0ca91a5] | 33 | |
|---|
| 34 | #set(SPECIFIC_COMPILER_NAME "") |
|---|
| 35 | |
|---|
| [8faa4f7] | 36 | #============================================================================= |
|---|
| 37 | # SETTINGS |
|---|
| 38 | #============================================================================= |
|---|
| 39 | |
|---|
| 40 | #=== Installer filename ====================================================== |
|---|
| 41 | |
|---|
| 42 | # Variable PACKAGE_ARCHITECTURE |
|---|
| [b09e2f4f] | 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") |
|---|
| 60 | set(PACKAGE_ARCHITECTURE ${SPECIFIC_SYSTEM_ARCHITECTURE}) |
|---|
| [8faa4f7] | 61 | message(STATUS "PACKAGE_ARCHITECTURE=${PACKAGE_ARCHITECTURE}") |
|---|
| [8bac87d] | 62 | |
|---|
| [8faa4f7] | 63 | # Variable CPACK_SYSTEM_NAME |
|---|
| [18d070e2] | 64 | string(TOLOWER "${SPECIFIC_SYSTEM_NAME}.${SPECIFIC_SYSTEM_RELEASE}.${PACKAGE_ARCHITECTURE}" _CPACK_SYSTEM_NAME) |
|---|
| [fe5b9e1] | 65 | set(CPACK_SYSTEM_NAME ${_CPACK_SYSTEM_NAME} CACHE STRING "" FORCE) |
|---|
| [8faa4f7] | 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 |
|---|
| [b09e2f4f] | 72 | #message(STATUS "CPACK_PACKAGE_FILE_NAME=${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}") |
|---|
| [8faa4f7] | 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 |
|---|
| [0ca91a5] | 103 | " |
|---|
| 104 | TOL = Time Oriented Language is a language and environment for statistical |
|---|
| 105 | computing. It provides a natural way to handle time series data and model it. |
|---|
| 106 | |
|---|
| 107 | There is a TOL package called TolRInside based on Rcpp/RInside wich R which |
|---|
| 108 | expose all R funcionality whithin TOL. |
|---|
| 109 | |
|---|
| [8faa4f7] | 110 | " PARENT_SCOPE) |
|---|
| 111 | |
|---|
| [6b873c7] | 112 | set(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") |
|---|
| [84e5b2ac] | 113 | |
|---|
| [bbc0337] | 114 | set(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") |
|---|
| [6b873c7] | 115 | |
|---|
| [8be3475] | 116 | set(CENTOS_gui_REQUIRES "dejavu-sans-fonts") |
|---|
| [6b873c7] | 117 | |
|---|
| 118 | set(CPACK_RPM_core_PACKAGE_REQUIRES ${CENTOS_core_REQUIRES} PARENT_SCOPE) |
|---|
| 119 | set(CPACK_RPM_headers_PACKAGE_REQUIRES "tol-core = ${CPACK_PACKAGE_VERSION}" PARENT_SCOPE) |
|---|
| 120 | set(CPACK_RPM_gui_PACKAGE_REQUIRES "tol-core = ${CPACK_PACKAGE_VERSION}, tk >= 8.5, bwidget" PARENT_SCOPE) |
|---|
| [8faa4f7] | 121 | |
|---|
| 122 | set(CPACK_RPM_core_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR} PARENT_SCOPE) |
|---|
| 123 | set(CPACK_RPM_headers_PACKAGE_ARCHITECTURE noarch PARENT_SCOPE) |
|---|
| 124 | set(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 |
|---|
| 137 | set(CPACK_DEBIAN_PACKAGE_SECTION "Mathematics" PARENT_SCOPE) |
|---|
| 138 | set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "www.tol-project.org" PARENT_SCOPE) |
|---|
| 139 | |
|---|
| [cca2b5d] | 140 | # 14.04 libgsl0ldbl libmysqlclient18 |
|---|
| 141 | # 16.04 libgsl2 libmysqlclient20 |
|---|
| 142 | set(CPACK_DEBIAN_CORE_PACKAGE_DEPENDS "libatlas3-base, tcl (>= 8.5), libboost-filesystem-dev (>= 1.41), libboost-thread-dev (>= 1.41), libsuitesparse-dev, libfftw3-bin, libgsl2 (>= 1.13), bzip2, zlib1g, libltdl7, libpq5, libmysqlclient20, unixodbc, tclcurl" PARENT_SCOPE) # tclcurl |
|---|
| [8faa4f7] | 143 | set(CPACK_DEBIAN_HEADERS_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION})" PARENT_SCOPE) |
|---|
| [74f469a] | 144 | set(CPACK_DEBIAN_GUI_PACKAGE_DEPENDS "tol-core (= ${CPACK_PACKAGE_VERSION}), tk (>= 8.5), bwidget, tcllib, blt, tktreectrl, libtk-img, tclodbc, tk-table" PARENT_SCOPE) # tclodbc, tk-table |
|---|
| [0ca91a5] | 145 | |
|---|
| [8faa4f7] | 146 | #============================================================================= |
|---|
| 147 | # INSTALLATION FILES |
|---|
| 148 | #============================================================================= |
|---|
| [0ca91a5] | 149 | |
|---|
| [8faa4f7] | 150 | #=== Installation Directory ================================================== |
|---|
| [0ca91a5] | 151 | |
|---|
| [8faa4f7] | 152 | # lib or lib64 directory |
|---|
| 153 | if(CPACK_GENERATOR STREQUAL "RPM") |
|---|
| 154 | get_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS) |
|---|
| 155 | if(LIB64 STREQUAL "TRUE") |
|---|
| 156 | set(LIBSUFFIX "64") |
|---|
| 157 | else(LIB64 STREQUAL "TRUE") |
|---|
| 158 | set(LIBSUFFIX "") |
|---|
| 159 | endif(LIB64 STREQUAL "TRUE") |
|---|
| 160 | else(CPACK_GENERATOR STREQUAL "RPM") |
|---|
| 161 | set(LIBSUFFIX "") |
|---|
| 162 | endif(CPACK_GENERATOR STREQUAL "RPM") |
|---|
| 163 | |
|---|
| 164 | set(PREFIX_TOL "lib${LIBSUFFIX}/tol${CPACK_PACKAGE_VERSION}") |
|---|
| 165 | |
|---|
| 166 | #=== [core] ================================================================== |
|---|
| 167 | |
|---|
| 168 | # core executables [BIN] |
|---|
| [0ca91a5] | 169 | install(FILES |
|---|
| 170 | "${TOL_RUNTIME_DIR}/bin/tolcon" |
|---|
| 171 | "${TOL_RUNTIME_DIR}/bin/tolsh" |
|---|
| 172 | DESTINATION "${PREFIX_TOL}/bin" |
|---|
| 173 | COMPONENT core |
|---|
| 174 | PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ |
|---|
| 175 | GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE |
|---|
| 176 | WORLD_EXECUTE) |
|---|
| 177 | |
|---|
| [8faa4f7] | 178 | # TolCore (stdlib directory) |
|---|
| [0ca91a5] | 179 | file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/bin/stdlib" stdlib_dir) |
|---|
| 180 | install(DIRECTORY ${stdlib_dir} DESTINATION "${PREFIX_TOL}/bin" |
|---|
| [8faa4f7] | 181 | COMPONENT core) |
|---|
| [0ca91a5] | 182 | |
|---|
| [8faa4f7] | 183 | # libraries [LIB] |
|---|
| 184 | file(GLOB tol_libs "${TOL_RUNTIME_DIR}/lib/*.so") |
|---|
| 185 | install(FILES ${tol_libs} DESTINATION "${PREFIX_TOL}/lib" |
|---|
| [0ca91a5] | 186 | COMPONENT core) |
|---|
| [8faa4f7] | 187 | |
|---|
| 188 | # core tcltk libraries (toltcl & TclCurl) |
|---|
| 189 | file(GLOB toltcl_dirs |
|---|
| [47b0a0b] | 190 | "${TOL_RUNTIME_DIR}/lib/toltcl*" |
|---|
| [8faa4f7] | 191 | "${TOL_RUNTIME_DIR}/lib/TclCurl*") |
|---|
| 192 | install(DIRECTORY ${toltcl_dirs} DESTINATION "${PREFIX_TOL}/lib" |
|---|
| 193 | COMPONENT core) |
|---|
| 194 | |
|---|
| 195 | #=== [headers] =============================================================== |
|---|
| [0ca91a5] | 196 | |
|---|
| [8faa4f7] | 197 | # headers [INCLUDE] |
|---|
| [0ca91a5] | 198 | file(TO_CMAKE_PATH "${TOL_RUNTIME_DIR}/include" include_dir) |
|---|
| 199 | install( DIRECTORY ${include_dir} DESTINATION "${PREFIX_TOL}" |
|---|
| [8faa4f7] | 200 | COMPONENT headers) |
|---|
| 201 | |
|---|
| 202 | #=== [gui] =================================================================== |
|---|
| [0ca91a5] | 203 | |
|---|
| [8faa4f7] | 204 | # gui executables [BIN] |
|---|
| [0ca91a5] | 205 | install(FILES |
|---|
| [4197fb9] | 206 | "${TOL_RUNTIME_DIR}/bin/tolbase.tcl" |
|---|
| [0ca91a5] | 207 | "${TOL_RUNTIME_DIR}/bin/tolbase" |
|---|
| 208 | DESTINATION "${PREFIX_TOL}/bin" |
|---|
| 209 | COMPONENT gui |
|---|
| 210 | PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ |
|---|
| 211 | GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_WRITE |
|---|
| 212 | WORLD_EXECUTE) |
|---|
| [8faa4f7] | 213 | |
|---|
| 214 | # gui tcltk libraries |
|---|
| 215 | subdirlist(tclExtDirs "${TOL_RUNTIME_DIR}/lib") |
|---|
| 216 | install(DIRECTORY ${tclExtDirs} DESTINATION "${PREFIX_TOL}/lib" |
|---|
| [0ca91a5] | 217 | COMPONENT gui |
|---|
| [8faa4f7] | 218 | PATTERN toltcl* EXCLUDE |
|---|
| 219 | PATTERN TclCurl* EXCLUDE) |
|---|
| 220 | ##!!! cuidado que excluye bftoltcl.tcl quitar * |
|---|
| 221 | |
|---|
| 222 | #============================================================================= |
|---|
| [0ca91a5] | 223 | |
|---|
| 224 | # SCRIPTS (/usr/bin) |
|---|
| 225 | ## !! |
|---|
| 226 | ## file(TO_CMAKE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/building/Linux_32/scripts/tol*" sh_pattern) |
|---|
| 227 | ## file(GLOB RT_SH ${sh_pattern}) |
|---|
| 228 | ## 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) |
|---|
| 229 | |
|---|
| 230 | # nombre del paquete instalador |
|---|
| [6dce91c] | 231 | #if( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR STREQUAL "RPM" ) |
|---|
| 232 | # configure_file( |
|---|
| 233 | # ${CMAKE_CURRENT_SOURCE_DIR}/rpm_post_install.sh.in |
|---|
| 234 | # ${CMAKE_CURRENT_BINARY_DIR}/rpm_post_install.sh ) |
|---|
| 235 | # set( CPACK_RPM_core_POST_INSTALL_SCRIPT_FILE |
|---|
| 236 | # "${CMAKE_CURRENT_BINARY_DIR}/rpm_post_install.sh" PARENT_SCOPE ) |
|---|
| 237 | #endif( SPECIFIC_SYSTEM_PREFERED_CPACK_GENERATOR STREQUAL "RPM" ) |
|---|
| [47b0a0b] | 238 | # Estudiar como hacer lo mismo con CPACK_DEBIAN_core_PACKAGE_CONTROL_EXTRA |
|---|