From 1a72080fa9efa961ee65a4a77885979e537a5cc1 Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <krasznaa@cern.ch> Date: Thu, 16 Jun 2016 15:08:33 +0200 Subject: [PATCH] Renaming CentOS builds from cc7 to centos7 (AtlasLCG-00-00-60) * Changed the "short name" of CentOS to "centos" from the previous "cc". As that's the new SFT convention. * Tagging as AtlasLCG-00-00-60 2016-06-03 Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> * As it turned out, the previous code broke down when trying to generate environment setup files, while having included the package "with version 0". This should now work as well. * Tagging as AtlasLCG-00-00-59 2016-06-03 Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> * Made it possible to make use of the modules of the package without actually setting up an LCG release. So that we could use the same find modules for looking up externals in standalone builds as well. * Tagging as AtlasLCG-00-00-58 Former-commit-id: 0315a2415b7f7d01630dc5116d33634c1cb5ea82 --- Build/AtlasLCG/LCGConfig-version.cmake | 23 +++- Build/AtlasLCG/LCGConfig.cmake | 106 +++++++++--------- Build/AtlasLCG/modules/FindPythonInterp.cmake | 11 +- Build/AtlasLCG/modules/FindPythonLibs.cmake | 11 +- 4 files changed, 89 insertions(+), 62 deletions(-) diff --git a/Build/AtlasLCG/LCGConfig-version.cmake b/Build/AtlasLCG/LCGConfig-version.cmake index 8da6b4dc827..80e6e5efddd 100644 --- a/Build/AtlasLCG/LCGConfig-version.cmake +++ b/Build/AtlasLCG/LCGConfig-version.cmake @@ -1,6 +1,6 @@ # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -# $Id: LCGConfig-version.cmake 740816 2016-04-17 08:12:15Z krasznaa $ +# $Id: LCGConfig-version.cmake 752088 2016-06-03 11:34:42Z krasznaa $ # # This file is used to figure out whether the LCG version that the user # requested can be delivered or not. @@ -27,20 +27,35 @@ endif() set( LCG_releases_base ${LCG_RELEASE_BASE} CACHE PATH "Directory holding LCG releases" FORCE ) +# Requesting version 0 means that we only want to use the package's +# modules. But not set up an actual release from AFS/CVMFS. +if( PACKAGE_FIND_VERSION EQUAL 0 ) + message( STATUS "Using the LCG modules without setting up a release" ) + set( PACKAGE_VERSION 0 ) + set( PACKAGE_VERSION_NUMBER 0 ) + set( PACKAGE_VERSION_COMPATIBLE TRUE ) + set( PACKAGE_VERSION_EXACT FALSE ) # If a directory with the requested version string exists, then we're # done already. -if( EXISTS +elseif( EXISTS ${LCG_RELEASE_BASE}/LCG_${PACKAGE_FIND_VERSION}${LCG_VERSION_POSTFIX} ) set( PACKAGE_VERSION ${PACKAGE_FIND_VERSION}${LCG_VERSION_POSTFIX} ) set( PACKAGE_VERSION_NUMBER ${PACKAGE_FIND_VERSION} ) set( PACKAGE_VERSION_COMPATIBLE TRUE ) set( PACKAGE_VERSION_EXACT TRUE ) +elseif( NOT PACKAGE_FIND_VERSION ) + # If no version was requested: + message( STATUS "No LCG version requested. Not setting up release." ) + set( PACKAGE_VERSION 0 ) + set( PACKAGE_VERSION_NUMBER 0 ) + set( PACKAGE_VERSION_COMPATIBLE TRUE ) + set( PACKAGE_VERSION_EXACT FALSE ) else() # If it doesn't exist, then pick up the latest release, and check if it's # newer than the one requested. message( WARNING "Can't find the requested LCG version. " - "Falling back to LCG_82." ) - set( PACKAGE_VERSION "82" ) + "Falling back to LCG_84." ) + set( PACKAGE_VERSION "84" ) set( PACKAGE_VERSION_NUMBER ${PACKAGE_VERSION} ) if( "${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" ) set( PACKAGE_VERSION_COMPATIBLE FALSE ) diff --git a/Build/AtlasLCG/LCGConfig.cmake b/Build/AtlasLCG/LCGConfig.cmake index 24ebf8a9775..5e067b6c281 100644 --- a/Build/AtlasLCG/LCGConfig.cmake +++ b/Build/AtlasLCG/LCGConfig.cmake @@ -1,6 +1,6 @@ # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -# $Id: LCGConfig.cmake 751138 2016-05-31 13:50:48Z krasznaa $ +# $Id: LCGConfig.cmake 755442 2016-06-16 15:08:07Z krasznaa $ # # File implementing the code that gets called when a project imports # LCG using something like: @@ -99,7 +99,7 @@ function( lcg_os_id os isValid ) elseif( _lcgLinuxId MATCHES "Ubuntu" ) set( _linuxShort "ubuntu" ) elseif( _lcgLinuxId MATCHES "CentOS" ) - set( _linuxShort "cc" ) + set( _linuxShort "centos" ) else() message( WARNING "Linux flavour (${_lcgLinuxId}) not recognised" ) set( _linuxShort "linux" ) @@ -334,57 +334,63 @@ function( lcg_setup_release lcgReleaseDir ) endfunction( lcg_setup_release ) -# Get the platform ID: -if( NOT "$ENV{LCG_PLATFORM}" STREQUAL "" ) - set( LCG_PLATFORM $ENV{LCG_PLATFORM} - CACHE STRING "Platform name for the LCG release being used" ) -else() - lcg_platform_id( LCG_PLATFORM ) - set( LCG_PLATFORM ${LCG_PLATFORM} - CACHE STRING "Platform name for the LCG release being used" ) -endif() +# Only set up a release, if the requested release number was +# something other than 0. +if( NOT LCG_VERSION EQUAL 0 ) -# Tell the user what's happening: -if( NOT LCG_FIND_QUIETLY ) - message( STATUS - "Setting up LCG release \"${LCG_VERSION}\" for platform: " - "${LCG_PLATFORM}" ) -endif() + # Get the platform ID: + if( NOT "$ENV{LCG_PLATFORM}" STREQUAL "" ) + set( LCG_PLATFORM $ENV{LCG_PLATFORM} + CACHE STRING "Platform name for the LCG release being used" ) + else() + lcg_platform_id( LCG_PLATFORM ) + set( LCG_PLATFORM ${LCG_PLATFORM} + CACHE STRING "Platform name for the LCG release being used" ) + endif() -# Some sanity checks: -if( LCG_FIND_COMPONENTS ) - message( WARNING "Components \"${LCG_FIND_COMPONENTS}\" requested, but " - "finding LCG components is not supported" ) -endif() + # Tell the user what's happening: + if( NOT LCG_FIND_QUIETLY ) + message( STATUS + "Setting up LCG release \"${LCG_VERSION}\" for platform: " + "${LCG_PLATFORM}" ) + endif() + + # Some sanity checks: + if( LCG_FIND_COMPONENTS ) + message( WARNING "Components \"${LCG_FIND_COMPONENTS}\" requested, but " + "finding LCG components is not supported" ) + endif() + + # Construct the path to pick up the release from: + set( LCG_RELEASE_DIR ${LCG_RELEASE_BASE}/LCG_${LCG_VERSION} + CACHE PATH "Directory holding the LCG release" ) + + # Start out with the assumption that LCG is now found: + set( LCG_FOUND TRUE CACHE BOOL + "Flag showing whether LCG was found or not" ) + mark_as_advanced( LCG_FOUND ) + + # Set up the release: + lcg_setup_release( ${LCG_RELEASE_DIR} ) + + # Extra setting(s) for some package(s): + file( GLOB BOOST_INCLUDEDIR "${BOOST_ROOT}/include/*" ) + list( APPEND CMAKE_PREFIX_PATH ${PYTHON_ROOT} ) + file( GLOB PYTHON_INCLUDE_DIR "${PYTHON_ROOT}/include/*" ) + set( PYTHON_INCLUDE_DIR ${PYTHON_INCLUDE_DIR} CACHE PATH + "Python include directory" FORCE ) + file( GLOB PYTHON_LIBRARY "${PYTHON_ROOT}/lib/libpython*.so" ) + set( PYTHON_LIBRARY ${PYTHON_LIBRARY} + CACHE FILEPATH "Python library" FORCE ) + list( APPEND CMAKE_PREFIX_PATH ${DOXYGEN_ROOT} ) + set( GSL_ROOT_DIR ${GSL_ROOT} ) + list( APPEND CMAKE_PREFIX_PATH ${QT_ROOT} ) + list( APPEND CMAKE_PREFIX_PATH ${QT5_ROOT} ) + list( APPEND CMAKE_PREFIX_PATH ${GRAPHVIZ_ROOT} ) + list( APPEND CMAKE_PREFIX_PATH ${COIN3D_ROOT} ) + list( APPEND CMAKE_PREFIX_PATH ${EXPAT_ROOT} ) -# Construct the path to pick up the release from: -set( LCG_RELEASE_DIR ${LCG_RELEASE_BASE}/LCG_${LCG_VERSION} - CACHE PATH "Directory holding the LCG release" ) - -# Start out with the assumption that LCG is now found: -set( LCG_FOUND TRUE CACHE BOOL - "Flag showing whether LCG was found or not" ) -mark_as_advanced( LCG_FOUND ) - -# Set up the release: -lcg_setup_release( ${LCG_RELEASE_DIR} ) - -# Extra setting(s) for some package(s): -file( GLOB BOOST_INCLUDEDIR "${BOOST_ROOT}/include/*" ) -list( APPEND CMAKE_PREFIX_PATH ${PYTHON_ROOT} ) -file( GLOB PYTHON_INCLUDE_DIR "${PYTHON_ROOT}/include/*" ) -set( PYTHON_INCLUDE_DIR ${PYTHON_INCLUDE_DIR} CACHE PATH - "Python include directory" FORCE ) -file( GLOB PYTHON_LIBRARY "${PYTHON_ROOT}/lib/libpython*.so" ) -set( PYTHON_LIBRARY ${PYTHON_LIBRARY} - CACHE FILEPATH "Python library" FORCE ) -list( APPEND CMAKE_PREFIX_PATH ${DOXYGEN_ROOT} ) -set( GSL_ROOT_DIR ${GSL_ROOT} ) -list( APPEND CMAKE_PREFIX_PATH ${QT_ROOT} ) -list( APPEND CMAKE_PREFIX_PATH ${QT5_ROOT} ) -list( APPEND CMAKE_PREFIX_PATH ${GRAPHVIZ_ROOT} ) -list( APPEND CMAKE_PREFIX_PATH ${COIN3D_ROOT} ) -list( APPEND CMAKE_PREFIX_PATH ${EXPAT_ROOT} ) +endif() # Get the current directory: get_filename_component( _thisdir "${CMAKE_CURRENT_LIST_FILE}" PATH ) diff --git a/Build/AtlasLCG/modules/FindPythonInterp.cmake b/Build/AtlasLCG/modules/FindPythonInterp.cmake index 6f72def0c3f..d58bcbfe10b 100644 --- a/Build/AtlasLCG/modules/FindPythonInterp.cmake +++ b/Build/AtlasLCG/modules/FindPythonInterp.cmake @@ -1,6 +1,6 @@ # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -# $Id: FindPythonInterp.cmake 719980 2016-01-27 08:38:07Z krasznaa $ +# $Id: FindPythonInterp.cmake 752031 2016-06-03 09:12:47Z krasznaa $ # # This file is here to intercept find_package(PythonInterp) calls, and extend # the environment setup file of the project with the correct Python paths. @@ -14,9 +14,12 @@ include( LCGFunctions ) set( _modulePathBackup ${CMAKE_MODULE_PATH} ) set( CMAKE_MODULE_PATH ) -# Make the code ignore the system path(s): -set( CMAKE_SYSTEM_IGNORE_PATH /usr/include /usr/bin /usr/lib /usr/lib32 - /usr/lib64 ) +# Make the code ignore the system path(s). If we are to pick up Python +# from the release. +if( PYTHON_ROOT ) + set( CMAKE_SYSTEM_IGNORE_PATH /usr/include /usr/bin /usr/lib /usr/lib32 + /usr/lib64 ) +endif() # Call CMake's own FindPythonInterp.cmake. Note that the arguments created # for this script by CMake pass through to the official script. So we don't diff --git a/Build/AtlasLCG/modules/FindPythonLibs.cmake b/Build/AtlasLCG/modules/FindPythonLibs.cmake index 7ddded8651e..93dc624d418 100644 --- a/Build/AtlasLCG/modules/FindPythonLibs.cmake +++ b/Build/AtlasLCG/modules/FindPythonLibs.cmake @@ -1,6 +1,6 @@ # Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -# $Id: FindPythonLibs.cmake 734923 2016-04-08 15:32:19Z krasznaa $ +# $Id: FindPythonLibs.cmake 752031 2016-06-03 09:12:47Z krasznaa $ # # This file is here to intercept find_package(PythonLibs) calls, and # massage the paths produced by the system module, to make them relocatable. @@ -14,9 +14,12 @@ include( LCGFunctions ) set( _modulePathBackup ${CMAKE_MODULE_PATH} ) set( CMAKE_MODULE_PATH ) -# Make the code ignore the system path(s): -set( CMAKE_SYSTEM_IGNORE_PATH /usr/include /usr/bin /usr/lib /usr/lib32 - /usr/lib64 ) +# Make the code ignore the system path(s). If we are to pick up Python +# from the release. +if( PYTHON_ROOT ) + set( CMAKE_SYSTEM_IGNORE_PATH /usr/include /usr/bin /usr/lib /usr/lib32 + /usr/lib64 ) +endif() # Call CMake's own FindPythonLibs.cmake. Note that the arguments created # for this script by CMake pass through to the official script. So we don't -- GitLab