1*da0073e9SAndroid Build Coastguard Workerif(__EIGEN_BLAS_INCLUDED) 2*da0073e9SAndroid Build Coastguard Worker return() 3*da0073e9SAndroid Build Coastguard Workerendif() 4*da0073e9SAndroid Build Coastguard Workerset(__EIGEN_BLAS_INCLUDED TRUE) 5*da0073e9SAndroid Build Coastguard Worker 6*da0073e9SAndroid Build Coastguard Workerif(NOT INTERN_BUILD_MOBILE OR NOT INTERN_USE_EIGEN_BLAS) 7*da0073e9SAndroid Build Coastguard Worker return() 8*da0073e9SAndroid Build Coastguard Workerendif() 9*da0073e9SAndroid Build Coastguard Worker 10*da0073e9SAndroid Build Coastguard Worker############################################################################## 11*da0073e9SAndroid Build Coastguard Worker# Eigen BLAS is built together with Libtorch mobile. 12*da0073e9SAndroid Build Coastguard Worker# By default, it builds code from third-party/eigen/blas submodule. 13*da0073e9SAndroid Build Coastguard Worker############################################################################## 14*da0073e9SAndroid Build Coastguard Worker 15*da0073e9SAndroid Build Coastguard Workerset(CAFFE2_THIRD_PARTY_ROOT ${PROJECT_SOURCE_DIR}/third_party) 16*da0073e9SAndroid Build Coastguard Workerset(EIGEN_BLAS_SRC_DIR "${CAFFE2_THIRD_PARTY_ROOT}/eigen/blas" CACHE STRING "Eigen BLAS source directory") 17*da0073e9SAndroid Build Coastguard Worker 18*da0073e9SAndroid Build Coastguard Workerset(EigenBlas_SRCS 19*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/single.cpp 20*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/double.cpp 21*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/complex_single.cpp 22*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/complex_double.cpp 23*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/xerbla.cpp 24*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/srotm.c 25*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/srotmg.c 26*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/drotm.c 27*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/drotmg.c 28*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/lsame.c 29*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/dspmv.c 30*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/ssbmv.c 31*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/chbmv.c 32*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/sspmv.c 33*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/zhbmv.c 34*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/chpmv.c 35*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/dsbmv.c 36*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/zhpmv.c 37*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/dtbmv.c 38*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/stbmv.c 39*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/ctbmv.c 40*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/ztbmv.c 41*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/d_cnjg.c 42*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/r_cnjg.c 43*da0073e9SAndroid Build Coastguard Worker ${EIGEN_BLAS_SRC_DIR}/f2c/complexdots.c 44*da0073e9SAndroid Build Coastguard Worker) 45*da0073e9SAndroid Build Coastguard Worker 46*da0073e9SAndroid Build Coastguard Workeradd_library(eigen_blas STATIC ${EigenBlas_SRCS}) 47*da0073e9SAndroid Build Coastguard Worker 48*da0073e9SAndroid Build Coastguard Worker# We build static versions of eigen blas but link into a shared library, so they need PIC. 49*da0073e9SAndroid Build Coastguard Workerset_property(TARGET eigen_blas PROPERTY POSITION_INDEPENDENT_CODE ON) 50*da0073e9SAndroid Build Coastguard Worker 51*da0073e9SAndroid Build Coastguard Workerinstall(TARGETS eigen_blas 52*da0073e9SAndroid Build Coastguard Worker LIBRARY DESTINATION lib 53*da0073e9SAndroid Build Coastguard Worker ARCHIVE DESTINATION lib) 54