From 98344159f416c56e62e1416357330a23949b3492 Mon Sep 17 00:00:00 2001 From: Mathieu Faverge <mathieu.faverge@inria.fr> Date: Mon, 14 May 2018 23:37:47 +0200 Subject: [PATCH] Add pkg-config file and env file to eable python testings --- .gitlab-ci.yml | 3 ++- CMakeLists.txt | 6 ++++- cmake_modules/GenSPMPkgConfig.cmake | 12 +++++----- {lib/pkgconfig => tools}/spm.pc.in | 0 tools/spm_env.sh.in | 36 +++++++++++++++++++++++++++++ 5 files changed, 49 insertions(+), 8 deletions(-) rename {lib/pkgconfig => tools}/spm.pc.in (100%) create mode 100644 tools/spm_env.sh.in diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 31fe9173..dcf70b95 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: hpclib/hiepacs +nimage: hpclib/hiepacs stages: - build @@ -34,6 +34,7 @@ test_spm: - spm.lcov - spm-gcov.log script: + - source install/bin/spm_env.sh - (cd build && eval "ctest $TESTS_RESTRICTION diff --git a/CMakeLists.txt b/CMakeLists.txt index f86c8d0a..1f8fea6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,7 +93,6 @@ endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules") -include(GenSPMPkgConfig) include(AddSourceFiles) # The current version number @@ -246,6 +245,11 @@ install(TARGETS spm install(FILES include/spm.h DESTINATION include ) +### Build pkg-config and environment file +include(GenSPMPkgConfig) +spm_generate_pkgconfig_file() +spm_generate_env_file() + ### Add documented files to the global property add_documented_files( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} diff --git a/cmake_modules/GenSPMPkgConfig.cmake b/cmake_modules/GenSPMPkgConfig.cmake index 0a1fc335..935b432f 100644 --- a/cmake_modules/GenSPMPkgConfig.cmake +++ b/cmake_modules/GenSPMPkgConfig.cmake @@ -78,7 +78,7 @@ # GENERATE_PKGCONFIG_FILE: generate files spm.pc # ### -macro(GENERATE_SPM_PKGCONFIG_FILE) +macro(spm_generate_pkgconfig_file) set(SPM_PKGCONFIG_LIBS "-lspm") set(SPM_PKGCONFIG_LIBS_PRIVATE "-lm") @@ -89,7 +89,7 @@ macro(GENERATE_SPM_PKGCONFIG_FILE) set(_output_spm_file "${CMAKE_BINARY_DIR}/spm.pc") configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/lib/pkgconfig/spm.pc.in" + "${CMAKE_CURRENT_SOURCE_DIR}/tools/spm.pc.in" "${_output_spm_file}" @ONLY ) @@ -98,19 +98,19 @@ macro(GENERATE_SPM_PKGCONFIG_FILE) DESTINATION lib/pkgconfig ) -endmacro(GENERATE_SPM_PKGCONFIG_FILE) +endmacro(spm_generate_pkgconfig_file) ### # # generate_env_file: generate files pastix.pc # ### -macro(generate_env_file) +macro(spm_generate_env_file) # Create .sh file # --------------- configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/spm_env.sh.in" + "${CMAKE_CURRENT_SOURCE_DIR}/tools/spm_env.sh.in" "${CMAKE_BINARY_DIR}/bin/spm_env.sh" @ONLY) # installation @@ -118,7 +118,7 @@ macro(generate_env_file) install(FILES "${CMAKE_BINARY_DIR}/bin/spm_env.sh" DESTINATION bin) -endmacro(generate_env_file) +endmacro(spm_generate_env_file) ## ## @end file GenPkgConfig.cmake diff --git a/lib/pkgconfig/spm.pc.in b/tools/spm.pc.in similarity index 100% rename from lib/pkgconfig/spm.pc.in rename to tools/spm.pc.in diff --git a/tools/spm_env.sh.in b/tools/spm_env.sh.in new file mode 100644 index 00000000..1ae1a381 --- /dev/null +++ b/tools/spm_env.sh.in @@ -0,0 +1,36 @@ +# +# @file spm_env.sh +# +# @copyright 2016-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, +# Univ. Bordeaux. All rights reserved. +# +# @version 6.0.0 +# @author Mathieu Faverge +# @date 2017-06-24 +# +#!/bin/sh + +LIB=spm + +export SPM_DIR=@CMAKE_INSTALL_PREFIX@ + +for i in PATH DYLD_LIBRARY_PATH LD_LIBRARY_PATH LIBRARY_PATH LD_RUN_PATH INCLUDE INCLUDE_PATH PKG_CONFIG_PATH PYTHONPATH +do + + for j in /spm + do + cmd1="echo \\\"\$$i\\\" | sed -E 's+^(\(.*:|\))[^:]*${j}[^:]*(\(|:.*\))$+\1\2+' | sed 's/::/:/' | sed 's/^://' | sed 's/:$//' " + temp=`eval $cmd1`; + eval "$i=$temp"; + done +done + +export PATH=$PATH:$SPM_DIR/bin +export LD_RUN_PATH=$LD_RUN_PATH:$SPM_DIR/lib +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SPM_DIR/lib +export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$SPM_DIR/lib +export LIBRARY_PATH=$LIBRARY_PATH:$SPM_DIR/lib +export PYTHONPATH=$PYTHONPATH:$SPM_DIR/lib/python +export INCLUDE=$INCLUDE:$SPM_DIR/include +export INCLUDE_PATH=$INCLUDE_PATH:$SPM_DIR/include +export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$SPM_DIR/lib/pkgconfig -- GitLab