From 336c22f15ba351ef875b7fb23fb9f09be8cf10fb Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Tue, 21 Mar 2017 15:02:15 +0100 Subject: [PATCH] [CMake] Generating an eve-module. --- scripts/cmake/Find.cmake | 3 +++ scripts/cmake/packaging/PackagingLinux.cmake | 16 ++++++++++++++++ scripts/cmake/packaging/module.in | 9 +++++++++ scripts/jenkins/gcc-dynamic.groovy | 8 ++++++++ 4 files changed, 36 insertions(+) create mode 100644 scripts/cmake/packaging/module.in diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake index 8a59a261167..d2baee31e8d 100644 --- a/scripts/cmake/Find.cmake +++ b/scripts/cmake/Find.cmake @@ -73,6 +73,9 @@ find_program(YARN yarn) find_program(PIP pip) find_package(PythonInterp) +find_program(MODULE_CMD modulecmd + PATHS /usr/local/modules/3.2.10-1/Modules/3.2.10/bin) + ###################### ### Find libraries ### ###################### diff --git a/scripts/cmake/packaging/PackagingLinux.cmake b/scripts/cmake/packaging/PackagingLinux.cmake index fb99d45ebc9..853f44ecf08 100644 --- a/scripts/cmake/packaging/PackagingLinux.cmake +++ b/scripts/cmake/packaging/PackagingLinux.cmake @@ -2,3 +2,19 @@ set(CPACK_GENERATOR TGZ) # Adds the binaries location to the LD_LIBRARY_PATH set(CMAKE_INSTALL_RPATH \$ORIGIN/) +if(MODULE_CMD) + message(STATUS "Found module cmd -> writing module file.") + execute_process(COMMAND ${MODULE_CMD} bash list --terse + ERROR_VARIABLE MODULE_LIST_OUTPUT + ) + string(REPLACE "\n" ";" MODULE_LIST_OUTPUT ${MODULE_LIST_OUTPUT}) + foreach(line ${MODULE_LIST_OUTPUT}) + if(NOT line STREQUAL "Currently Loaded Modulefiles:") + set(MODULE_LOAD_STRING "${MODULE_LOAD_STRING}module load ${line}\n") + endif() + endforeach() + configure_file(${CMAKE_SOURCE_DIR}/scripts/cmake/packaging/module.in + ${CMAKE_BINARY_DIR}/module + ) + install(FILES ${CMAKE_BINARY_DIR}/module DESTINATION .) +endif() diff --git a/scripts/cmake/packaging/module.in b/scripts/cmake/packaging/module.in new file mode 100644 index 00000000000..225eb1a4baa --- /dev/null +++ b/scripts/cmake/packaging/module.in @@ -0,0 +1,9 @@ +#%Module1.0 + +module-whatis OpenGeoSys @OGS_VERSION@ + +append-path MODULEPATH /global/apps/modulefiles/ + +@MODULE_LOAD_STRING@ + +prepend-path PATH @CMAKE_INSTALL_PREFIX@/bin diff --git a/scripts/jenkins/gcc-dynamic.groovy b/scripts/jenkins/gcc-dynamic.groovy index ff6329daa21..9a20d6db16d 100644 --- a/scripts/jenkins/gcc-dynamic.groovy +++ b/scripts/jenkins/gcc-dynamic.groovy @@ -11,6 +11,10 @@ def post = new ogs.post() def helper = new ogs.helper() stage('Configure (envinf1)') { + if (helper.isOriginMaster(this)) { + defaultCMakeOptions += + ' -DCMAKE_INSTALL_PREFIX=/global/apps/ogs/head/default' + } configure.linux(cmakeOptions: defaultCMakeOptions, env: 'envinf1/cli.sh', script: this) configure.linux(cmakeOptions: defaultCMakeOptions + '-DOGS_USE_PETSC=ON', dir: 'build-petsc', env: 'envinf1/petsc.sh', script: this) @@ -33,6 +37,10 @@ stage('Test (envinf1)') { } } +stage('Deploy (envinf1)') { + build.linux(env: 'envinf1/cli.sh', script: this, target: 'install') +} + stage('Post (envinf1)') { post.publishTestReports 'build*/Testing/**/*.xml', 'build*/Tests/testrunner.xml', 'ogs/scripts/jenkins/clang-log-parser.rules' -- GitLab