xref: /aosp_15_r20/external/pytorch/cmake/External/EigenBLAS.cmake (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
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