Skip to content

rayglover-ibm/openblas-ci

Repository files navigation

OpenBLAS builds

A collection of OpenBlas builds. See releases for downloads.

Windows Mac Linux
Build status Build Status Build Status

Structure

Each release is split in to specific target platforms (Win/Mac/Linux/etc.), and within each release there are a number of builds corresponding to different toolchains, build configurations and CPU architecture/microarchitecture.

CMake support

This repository contains OpenBLASBootstrap.cmake which provides functions for the discovery, downloading and setup of OpenBLAS in to your CMake project. For example, the following finds the latest available release for the current OS and imports targets corresponding to the requested microarchitecture, Haswell:

include ("OpenBLASBootstrap")
OpenBLAS_find_archive (BUILD_URL url)
OpenBLAS_init (BUILD_URL "${url}" COMPONENTS HASWELL)

Once the OpenBLAS target is available, you can use it in the typical way. For example, to link OpenBLAS to the target myapp:

target_link_libraries (myapp OpenBLAS::HASWELL)
target_include_directories (myapp
    PUBLIC "$<TARGET_PROPERTY:OpenBLAS::HASWELL,INTERFACE_INCLUDE_DIRECTORIES>"
)

To make sure you always use an up to date bootstrap, you could use CMake to download it at configuration time. A full working example of this is available here. Alternatively, you could include this repository as a git submodule in the repository containing yout project.

Bazel support

TODO (contributions welcome)