Merge pull request #1609 from martin-frbg/issue1529
Create OpenBLASConfig.cmake in cmake builds as well
This commit is contained in:
commit
67d81ab49d
|
@ -12,6 +12,9 @@ set(OpenBLAS_VERSION "${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.${Open
|
||||||
# Adhere to GNU filesystem layout conventions
|
# Adhere to GNU filesystem layout conventions
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
|
|
||||||
|
|
||||||
set(OpenBLAS_LIBNAME openblas)
|
set(OpenBLAS_LIBNAME openblas)
|
||||||
|
|
||||||
#######
|
#######
|
||||||
|
@ -20,6 +23,7 @@ option(BUILD_WITHOUT_LAPACK "Without LAPACK and LAPACKE (Only BLAS or CBLAS)" ON
|
||||||
endif()
|
endif()
|
||||||
option(BUILD_WITHOUT_CBLAS "Without CBLAS" OFF)
|
option(BUILD_WITHOUT_CBLAS "Without CBLAS" OFF)
|
||||||
option(DYNAMIC_ARCH "Build with DYNAMIC_ARCH" OFF)
|
option(DYNAMIC_ARCH "Build with DYNAMIC_ARCH" OFF)
|
||||||
|
option(DYNAMIC_OLDER "Support older cpus with DYNAMIC_ARCH" OFF)
|
||||||
option(BUILD_RELAPACK "Build with ReLAPACK (recursive LAPACK" OFF)
|
option(BUILD_RELAPACK "Build with ReLAPACK (recursive LAPACK" OFF)
|
||||||
#######
|
#######
|
||||||
if(BUILD_WITHOUT_LAPACK)
|
if(BUILD_WITHOUT_LAPACK)
|
||||||
|
@ -208,6 +212,7 @@ set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES
|
||||||
|
|
||||||
# Install libraries
|
# Install libraries
|
||||||
install(TARGETS ${OpenBLAS_LIBNAME}
|
install(TARGETS ${OpenBLAS_LIBNAME}
|
||||||
|
EXPORT "OpenBLASTargets"
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
|
||||||
|
@ -267,3 +272,21 @@ if(PKG_CONFIG_FOUND)
|
||||||
configure_file(${PROJECT_SOURCE_DIR}/cmake/openblas.pc.in ${PROJECT_BINARY_DIR}/openblas.pc @ONLY)
|
configure_file(${PROJECT_SOURCE_DIR}/cmake/openblas.pc.in ${PROJECT_BINARY_DIR}/openblas.pc @ONLY)
|
||||||
install (FILES ${PROJECT_BINARY_DIR}/openblas.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/)
|
install (FILES ${PROJECT_BINARY_DIR}/openblas.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
# GNUInstallDirs "DATADIR" wrong here; CMake search path wants "share".
|
||||||
|
set(PN OpenBLAS)
|
||||||
|
set(CMAKECONFIG_INSTALL_DIR "share/cmake/${PN}")
|
||||||
|
configure_package_config_file(cmake/${PN}Config.cmake.in
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/${PN}Config.cmake"
|
||||||
|
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR})
|
||||||
|
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PN}ConfigVersion.cmake
|
||||||
|
VERSION ${${PN}_VERSION}
|
||||||
|
COMPATIBILITY AnyNewerVersion)
|
||||||
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PN}Config.cmake
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${PN}ConfigVersion.cmake
|
||||||
|
DESTINATION ${CMAKECONFIG_INSTALL_DIR})
|
||||||
|
install(EXPORT "${PN}Targets"
|
||||||
|
NAMESPACE "${PN}::"
|
||||||
|
DESTINATION ${CMAKECONFIG_INSTALL_DIR})
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
# OpenBLASConfig.cmake
|
||||||
|
# --------------------
|
||||||
|
#
|
||||||
|
# OpenBLAS cmake module.
|
||||||
|
# This module sets the following variables in your project::
|
||||||
|
#
|
||||||
|
# OpenBLAS_FOUND - true if OpenBLAS and all required components found on the system
|
||||||
|
# OpenBLAS_VERSION - OpenBLAS version in format Major.Minor.Release
|
||||||
|
# OpenBLAS_INCLUDE_DIRS - Directory where OpenBLAS header is located.
|
||||||
|
# OpenBLAS_INCLUDE_DIR - same as DIRS
|
||||||
|
# OpenBLAS_LIBRARIES - OpenBLAS library to link against.
|
||||||
|
# OpenBLAS_LIBRARY - same as LIBRARIES
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Available components::
|
||||||
|
#
|
||||||
|
## shared - search for only shared library
|
||||||
|
## static - search for only static library
|
||||||
|
# serial - search for unthreaded library
|
||||||
|
# pthread - search for native pthread threaded library
|
||||||
|
# openmp - search for OpenMP threaded library
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Exported targets::
|
||||||
|
#
|
||||||
|
# If OpenBLAS is found, this module defines the following :prop_tgt:`IMPORTED`
|
||||||
|
## target. Target is shared _or_ static, so, for both, use separate, not
|
||||||
|
## overlapping, installations. ::
|
||||||
|
#
|
||||||
|
# OpenBLAS::OpenBLAS - the main OpenBLAS library #with header & defs attached.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Suggested usage::
|
||||||
|
#
|
||||||
|
# find_package(OpenBLAS)
|
||||||
|
# find_package(OpenBLAS 0.2.20 EXACT CONFIG REQUIRED COMPONENTS pthread)
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# The following variables can be set to guide the search for this package::
|
||||||
|
#
|
||||||
|
# OpenBLAS_DIR - CMake variable, set to directory containing this Config file
|
||||||
|
# CMAKE_PREFIX_PATH - CMake variable, set to root directory of this package
|
||||||
|
# PATH - environment variable, set to bin directory of this package
|
||||||
|
# CMAKE_DISABLE_FIND_PACKAGE_OpenBLAS - CMake variable, disables
|
||||||
|
# find_package(OpenBLAS) when not REQUIRED, perhaps to force internal build
|
||||||
|
|
||||||
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
|
set(PN OpenBLAS)
|
||||||
|
|
||||||
|
# need to check that the @USE_*@ evaluate to something cmake can perform boolean logic upon
|
||||||
|
if(@USE_OPENMP@)
|
||||||
|
set(${PN}_openmp_FOUND 1)
|
||||||
|
elseif(@USE_THREAD@)
|
||||||
|
set(${PN}_pthread_FOUND 1)
|
||||||
|
else()
|
||||||
|
set(${PN}_serial_FOUND 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
check_required_components(${PN})
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
# Don't include targets if this file is being picked up by another
|
||||||
|
# project which has already built this as a subproject
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
if(NOT TARGET ${PN}::OpenBLAS)
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/${PN}Targets.cmake")
|
||||||
|
|
||||||
|
get_property(_loc TARGET ${PN}::OpenBLAS PROPERTY LOCATION)
|
||||||
|
set(${PN}_LIBRARY ${_loc})
|
||||||
|
get_property(_ill TARGET ${PN}::OpenBLAS PROPERTY INTERFACE_LINK_LIBRARIES)
|
||||||
|
set(${PN}_LIBRARIES ${_ill})
|
||||||
|
|
||||||
|
get_property(_id TARGET ${PN}::OpenBLAS PROPERTY INCLUDE_DIRECTORIES)
|
||||||
|
set(${PN}_INCLUDE_DIR ${_id})
|
||||||
|
get_property(_iid TARGET ${PN}::OpenBLAS PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
|
set(${PN}_INCLUDE_DIRS ${_iid})
|
||||||
|
endif()
|
||||||
|
|
Loading…
Reference in New Issue