1

I just created a three line CMakeLists.txt as follows under a test directory with no files under it. I tried export lib path etc and none of the basic tricks worked. How to make this work?

cmake_minimum_required(VERSION 3.6 FATAL_ERROR)
project(test CXX)
find_package(BLAS REQUIRED)

and ran this as and got the following error.

ramki@hostname:~/temp>CC=CC CXX=CC cmake ../nmflibrary/test/
-- The CXX compiler identification is GNU 6.3.0
-- Cray Programming Environment 2.5.13 CXX
-- Check for working CXX compiler: /opt/cray/craype/2.5.13/bin/CC
-- Check for working CXX compiler: /opt/cray/craype/2.5.13/bin/CC -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
CMake Error at /autofs/nccs-svm1_sw/titan/.swci/0-login/opt/spack/20170612/linux-suse_linux11-x86_64/gcc-4.3.4/cmake-3.9.0-owxiriblogovogl5zbrg45ulm3ln34cx/share/cmake-3.9/Modules/FindBLAS.cmake:699 (message):
  A required library with BLAS API not found.  Please specify library
  location.
Call Stack (most recent call first):
  CMakeLists.txt:6 (find_package)


-- Configuring incomplete, errors occurred!
See also "/ccs/home/ramki/temp/CMakeFiles/CMakeOutput.log".
See also "/ccs/home/ramki/temp/CMakeFiles/CMakeError.log".

How to make find_package with blas required work on cray wrappers?

Ramakrishnan Kannan
  • 604
  • 1
  • 11
  • 24

1 Answers1

1

Cray compilers implicitly link the BLAS and LAPACK libraries, so they are normally not given on the command line. The capability to detect this situation was added to CMake 3.13.0 for BLAS and will be added to CMake 3.16.0 for LAPACK.

So if you are fine with BLAS only, just download a newer CMake binary tarball.

jacob
  • 1,535
  • 1
  • 11
  • 26