Commit f326d470 authored by Atkins, Charles Vernon's avatar Atkins, Charles Vernon
Browse files

Use upstream pkg-config

parent 6e8a7978
Loading
Loading
Loading
Loading
+49 −33
Original line number Diff line number Diff line
######################################################
# - Try to find Cray DRC library
# - Try to find craydrc (http://directory.fsf.org/wiki/Libfabric)
# Once done this will define
#  CRAY_DRC_FOUND - System has Cray DRC
#  CRAY_DRC_INCLUDE_DIRS - The Cray DRC include directories
#  CRAY_DRC_LIBRARIES - The libraries needed to use Cray DRC
#  CrayDRC_FOUND - System has craydrc
#  CrayDRC_INCLUDE_DIRS - The craydrc include directories
#  CrayDRC_LIBRARIES - The libraries needed to use craydrc
#  CrayDRC_DEFINITIONS - The extra CFLAGS needed to use craydrc

######################################################
set(CRAY_DRC_PREFIX "" CACHE STRING "Help cmake to find Cray DRC library on your system.")
mark_as_advanced(CRAY_DRC_PREFIX)
if(NOT CRAY_DRC_ROOT AND "$ENV{CRAY_DRC_ROOT}" STREQUAL "")
  set(CRAY_DRC_ROOT ${CRAY_DRC_PREFIX})

# This is a bit of a wierd pattern but it allows to bypass pkg-config and
# manually specify library information
if(NOT (PC_CrayDRC_FOUND STREQUAL "IGNORE"))
  find_package(PkgConfig)
  if(PKG_CONFIG_FOUND)
    set(_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH})
    if(CrayDRC_ROOT)
      list(INSERT CMAKE_PREFIX_PATH 0 "${CrayDRC_ROOT}")
    elseif(NOT ENV{CrayDRC_ROOT} STREQUAL "")
      list(INSERT CMAKE_PREFIX_PATH 0 "$ENV{CrayDRC_ROOT}")
    endif()
    set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON)

    pkg_check_modules(PC_CrayDRC cray-drc)

    set(CMAKE_PREFIX_PATH ${_CMAKE_PREFIX_PATH})
    unset(_CMAKE_PREFIX_PATH)
if(POLICY CMP0074)
  cmake_policy(SET CMP0074 NEW)

    if(PC_CrayDRC_FOUND)
      if(BUILD_SHARED_LIBS)
        set(_PC_TYPE)
      else()
  if(NOT CRAY_DRC_ROOT)
    set(CRAY_DRC_ROOT "$ENV{CRAY_DRC_ROOT}")
        set(_PF_TYPE _STATIC)
      endif()
  if(CRAY_DRC_ROOT)
    set(_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH})
    list(INSERT CMAKE_PREFIX_PATH 0 ${CRAY_DRC_ROOT})
      set(CrayDRC_INCLUDE_DIRS ${PC_CrayDRC${_PC_TYPE}_INCLUDE_DIRS})
      set(CrayDRC_LIBRARIES ${PC_CrayDRC${_PC_TYPE}_LDFLAGS})
      set(CrayDRC_DEFINITIONS ${PC_CrayDRC${PC_TYPE}_CFLAGS_OTHER})
    endif()
  endif()

find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
  set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
  pkg_check_modules(CRAY_DRC IMPORTED_TARGET "cray-drc")
endif()

if(_CMAKE_PREFIX_PATH)
  set(CMAKE_PREFIX_PATH ${_CMAKE_PREFIX_PATH})
  unset(_CMAKE_PREFIX_PATH)
endif()
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LIBXML2_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(CrayDRC DEFAULT_MSG CrayDRC_LIBRARIES)

if(CRAY_DRC_FOUND)
if(CrayDRC_FOUND)
  if(NOT TARGET craydrc::craydrc)
    add_library(craydrc::craydrc INTERFACE IMPORTED)
    if(NOT BUILD_SHARED_LIBS AND TARGET PkgConfig::CRAY_DRC-static)
    if(CrayDRC_INCLUDE_DIRS)
      set_target_properties(craydrc::craydrc PROPERTIES
        INTERFACE_LINK_LIBRARIES PkgConfig::CRAY_DRC-static)
    else()
        INTERFACE_INCLUDE_DIRECTORIES "${CrayDRC_INCLUDE_DIRS}"
      )
    endif()
    if(CrayDRC_DEFINITIONS)
      set_target_properties(craydrc::craydrc PROPERTIES
        INTERFACE_COMPILE_OPTIONS     "${CrayDRC_DEFINITIONS}"
      )
    endif()
    if(CrayDRC_LIBRARIES)
      set_target_properties(craydrc::craydrc PROPERTIES
        INTERFACE_LINK_LIBRARIES PkgConfig::CRAY_DRC)
        INTERFACE_LINK_LIBRARIES      "${CrayDRC_LIBRARIES}"
      )
    endif()
  endif()
endif()
+42 −33
Original line number Diff line number Diff line
@@ -4,54 +4,63 @@
#  LIBFABRIC_FOUND - System has libfabric
#  LIBFABRIC_INCLUDE_DIRS - The libfabric include directories
#  LIBFABRIC_LIBRARIES - The libraries needed to use libfabric
#  LIBFABRIC_DEFINITIONS - The extra CFLAGS needed to use libfabric

######################################################
set(LIBFABRIC_ROOT "" CACHE STRING "Help cmake to find libfabric library (https://github.com/ofiwg/libfabric) into your system.")
mark_as_advanced(LIBFABRIC_ROOT)
if(NOT LIBFABRIC_ROOT AND "$ENV{LIBFABRIC_ROOT}" STREQUAL "")
  set(LIBFABRIC_ROOT ${LIBFABRIC_ROOT})
endif()

unset(_CMAKE_PREFIX_PATH)
if(POLICY CMP0074)
  cmake_policy(SET CMP0074 NEW)
else()
  if(NOT LIBFABRIC_ROOT)
    set(LIBFABRIC_ROOT "$ENV{LIBFABRIC_ROOT}")
  endif()
  if(LIBFABRIC_ROOT)
# This is a bit of a wierd pattern but it allows to bypass pkg-config and
# manually specify library information
if(NOT (PC_LIBFABRIC_FOUND STREQUAL "IGNORE"))
  find_package(PkgConfig)
  if(PKG_CONFIG_FOUND)
    set(_CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH})
    list(INSERT CMAKE_PREFIX_PATH 0 ${LIBFABRIC_ROOT})
  endif()
    if(LIBFABRIC_ROOT)
      list(INSERT CMAKE_PREFIX_PATH 0 "${LIBFABRIC_ROOT}")
    elseif(NOT ENV{LIBFABRIC_ROOT} STREQUAL "")
      list(INSERT CMAKE_PREFIX_PATH 0 "$ENV{LIBFABRIC_ROOT}")
    endif()
    set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON)

find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
  set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH TRUE)
  if(LIBFABRIC_FIND_VERSION)
    if(LIBFABRIC_VERSION_EXACT)
      set(_pkg_ver_arg "=${LIBFABRIC_FIND_VERSION}")
    pkg_check_modules(PC_LIBFABRIC libfabric)

    set(CMAKE_PREFIX_PATH ${_CMAKE_PREFIX_PATH})
    unset(_CMAKE_PREFIX_PATH)

    if(PC_LIBFABRIC_FOUND)
      if(BUILD_SHARED_LIBS)
        set(_PC_TYPE)
      else()
      set(_pkg_ver_arg ">=${LIBFABRIC_FIND_VERSION}")
        set(_PF_TYPE _STATIC)
      endif()
      set(LIBFABRIC_INCLUDE_DIRS ${PC_LIBFABRIC${_PC_TYPE}_INCLUDE_DIRS})
      set(LIBFABRIC_LIBRARIES ${PC_LIBFABRIC${_PC_TYPE}_LDFLAGS})
      set(LIBFABRIC_DEFINITIONS ${PC_LIBFABRIC${PC_TYPE}_CFLAGS_OTHER})
    endif()
  pkg_check_modules(LIBFABRIC IMPORTED_TARGET "libfabric${_pkg_ver_arg}")
  endif()

if(_CMAKE_PREFIX_PATH)
  set(CMAKE_PREFIX_PATH ${_CMAKE_PREFIX_PATH})
  unset(_CMAKE_PREFIX_PATH)
endif()

include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set LIBXML2_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(LIBFABRIC DEFAULT_MSG LIBFABRIC_LIBRARIES)

if(LIBFABRIC_FOUND)
  if(NOT TARGET libfabric::libfabric)
    add_library(libfabric::libfabric INTERFACE IMPORTED)
    if(NOT BUILD_SHARED_LIBS AND TARGET PkgConfig::LIBFABRIC-static)
    if(LIBFABRIC_INCLUDE_DIRS)
      set_target_properties(libfabric::libfabric PROPERTIES
        INTERFACE_LINK_LIBRARIES PkgConfig::LIBFABRIC-static)
    else()
        INTERFACE_INCLUDE_DIRECTORIES "${LIBFABRIC_INCLUDE_DIRS}"
      )
    endif()
    if(LIBFABRIC_DEFINITIONS)
      set_target_properties(libfabric::libfabric PROPERTIES
        INTERFACE_COMPILE_OPTIONS     "${LIBFABRIC_DEFINITIONS}"
      )
    endif()
    if(LIBFABRIC_LIBRARIES)
      set_target_properties(libfabric::libfabric PROPERTIES
        INTERFACE_LINK_LIBRARIES PkgConfig::LIBFABRIC)
        INTERFACE_LINK_LIBRARIES      "${LIBFABRIC_LIBRARIES}"
      )
    endif()
  endif()
endif()

cmake/FindPkgConfig.cmake

deleted100644 → 0
+0 −11
Original line number Diff line number Diff line
#------------------------------------------------------------------------------#
# Distributed under the OSI-approved Apache License, Version 2.0.  See
# accompanying file Copyright.txt for details.
#------------------------------------------------------------------------------#

# This module is already included in new versions of CMake
if(CMAKE_VERSION VERSION_LESS 3.10)
  include(${CMAKE_CURRENT_LIST_DIR}/upstream/FindPkgConfig.cmake)
else()
  include(${CMAKE_ROOT}/Modules/FindPkgConfig.cmake)
endif()