2016-09-28 10 views
2

CMakeでは私はfind_package(BLAS REQUIRED)を使用し、BLAS_FOUND,BLAS_LINKER_FLAGS,BLAS_LIBRARIESの変数を適切に使用します。BLakeインクルードディレクトリをCMakeで見つける

私の質問は、選択されたBLAS実装に基づいて、CMakeにインクルードするインクルードディレクトリを見つける方法です。

BLAS_INCLUDE_DIRは、AccelerateフレームワークもOpenBLASでもmacOSでは設定されていません。また、FindBLASのドキュメントには含まれていません。

+0

を。何が設定されているかチェックインできます。 – Hayt

+1

@Hayt:BLakeにはcmake-configファイルがありません.Makeには[FindBLAS.cmake](https://github.com/Kitware/CMake/blob/master/Modules/FindBLAS.cmake)スクリプトしかありません。このスクリプトはリンカ関連の*変数( 'BLAS_LIBRARIES'と' BLAS_LINKER_FLAGS')のみを設定します。 – Tsyvarev

+0

あなたはあなた自身のインクルードディレクトリを設定する必要があります。 find_package()は、FindBLAS.cmakeにある変数のみを設定します – Hayt

答えて

0

すでにスクリプトが用意されていない場合は、自分で作成するか、既存のFindBLAS.cmakeを拡張して必要なパス(BLAS_INCLUDE_DIRS)を設定することができます。

たとえば、いくつかの標準BLASインクルードファイル、またはプロジェクトで必要なものを含むディレクトリを検索するために、find_pathを使用できます。 BLASのインストールが期待されるデフォルトの共通ディレクトリ、または環境変数に基づくパスとして含めることができます。 Linux用例:

find_path(BLAS_INCLUDE_DIRS cblas.h 
    /usr/include 
    /usr/local/include 
    $ENV{BLAS_HOME}/include) 

これは/usr/include/cblas.h/usr/local/include$ENV{BLAS_HOME}/includeを検索しBLAS_INCLUDE_DIRSで見つかったパスを設定します。

は、あなたのプロジェクトにsrc/cmake/FindBLAS.cmakeファイルにこのスクリプトを追加し、その後でそれについてのあなたのトップレベルcmakeのファイルを伝えることができます。これらの変数を設定しますBLASが提供するcmakeの-configファイルがあるはずです

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/src/cmake/") 
関連する問題