66 lines
1.8 KiB
CMake
66 lines
1.8 KiB
CMake
#
|
|
# Environment Module 环境模块生成脚本
|
|
#
|
|
|
|
# 生成 module 环境文件
|
|
# MOD_NAME:模块名 SOFT_PATH:软件安装路径
|
|
function(GenerateModule MOD_NAME MOD_VERS SOFT_PATH)
|
|
set(MOD_FILE ${MODULES_ROOT}/${MOD_NAME}/${MOD_VERS})
|
|
DEPLOY_MSG("Generate module name: ${MOD_NAME}")
|
|
DEPLOY_MSG("Generate module vers: ${MOD_VERS}")
|
|
DEPLOY_MSG("Generate module file: ${MOD_FILE}")
|
|
|
|
get_filename_component(MOD_DIR ${MOD_FILE} DIRECTORY)
|
|
file(MAKE_DIRECTORY ${MOD_DIR})
|
|
|
|
string(TOUPPER ${MOD_NAME} MOD_NAME_UPPER)
|
|
|
|
# 写入 module 模板
|
|
file(WRITE ${MOD_FILE}
|
|
"#%Module1.0
|
|
proc ModulesHelp { } {
|
|
puts stderr \"Load ${MOD_NAME} environment\"
|
|
}
|
|
module-whatis \"Sets up software ${MOD_NAME} \"
|
|
|
|
set soft_name \"${MOD_NAME}\"
|
|
set soft_vers \"${MOD_VERS}\"
|
|
set soft_root \"${SOFT_PATH}\"
|
|
|
|
prepend-path PATH \$soft_root/bin
|
|
|
|
prepend-path LIBRARY_PATH \$soft_root/lib
|
|
prepend-path LD_LIBRARY_PATH \$soft_root/lib
|
|
|
|
prepend-path LIBRARY_PATH \$soft_root/lib64
|
|
prepend-path LD_LIBRARY_PATH \$soft_root/lib64
|
|
|
|
prepend-path CPATH \$soft_root/include
|
|
prepend-path MANPATH \$soft_root/share/man
|
|
prepend-path PKG_CONFIG_PATH \$soft_root/lib/pkgconfig
|
|
|
|
setenv ${MOD_NAME_UPPER}_HOME \$soft_root
|
|
|
|
if { \[ module-info mode load \] } {
|
|
puts stderr \"\${soft_name}_name: \$soft_name - \$soft_vers\"
|
|
puts stderr \"\${soft_name}_root: \$soft_root\"
|
|
}
|
|
")
|
|
|
|
if(MOD_NAME STREQUAL "openmpi")
|
|
file(APPEND ${MOD_FILE}
|
|
"
|
|
setenv OMPI_ALLOW_RUN_AS_ROOT 1
|
|
setenv OMPI_ALLOW_RUN_AS_ROOT_CONFIRM 1
|
|
")
|
|
endif()
|
|
|
|
if(MOD_NAME STREQUAL "fftw")
|
|
file(APPEND ${MOD_FILE}
|
|
"
|
|
setenv OMPI_ALLOW_RUN_AS_ROOT 0
|
|
setenv OMPI_ALLOW_RUN_AS_ROOT_CONFIRM 0
|
|
")
|
|
endif()
|
|
endfunction()
|