diff --git a/include/xtensor-blas/xblas_config.hpp b/include/xtensor-blas/xblas_config.hpp index a7e319b..c343932 100644 --- a/include/xtensor-blas/xblas_config.hpp +++ b/include/xtensor-blas/xblas_config.hpp @@ -30,6 +30,10 @@ #include "xtensor-blas/xblas_config_cling.hpp" #endif +#if defined(__CLANG_REPL__) && defined(__EMSCRIPTEN__) +#include "xtensor-blas/xblas_config_cling.hpp" +#endif + namespace xt { using blas_index_t = BLAS_IDX; diff --git a/include/xtensor-blas/xblas_config_cling.hpp.in b/include/xtensor-blas/xblas_config_cling.hpp.in index 85b496a..cbe4f13 100644 --- a/include/xtensor-blas/xblas_config_cling.hpp.in +++ b/include/xtensor-blas/xblas_config_cling.hpp.in @@ -10,17 +10,28 @@ #ifndef XBLAS_CONFIG_CLING_HPP #define XBLAS_CONFIG_CLING_HPP -#pragma cling add_library_path(@XTENSOR_BLAS_CLING_LIBRARY_DIR_64@) -#pragma cling add_library_path(@XTENSOR_BLAS_CLING_LIBRARY_DIR_32@) -#pragma cling add_library_path(@XTENSOR_BLAS_CLING_LIBRARY_DIR@) - #ifndef XTENSOR_USE_FLENS_BLAS #define HAVE_CBLAS 1 +#if defined(__CLING__) + +#pragma cling add_library_path(@XTENSOR_BLAS_CLING_LIBRARY_DIR_64@) +#pragma cling add_library_path(@XTENSOR_BLAS_CLING_LIBRARY_DIR_32@) +#pragma cling add_library_path(@XTENSOR_BLAS_CLING_LIBRARY_DIR@) #pragma cling load("libblas") #pragma cling load("liblapack") -#endif +#elif defined(__EMSCRIPTEN__) && defined(__CLANG_REPL__) + +#include +static bool _openblas_loaded = []() { + Cpp::LoadLibrary(@OPENBLAS_CPPINTEROP_LIBRARY_PATH@, false); + return true; +}(); #endif + +#endif // XTENSOR_USE_FLENS_BLAS + +#endif // XBLAS_CONFIG_CLING_HPP