xref: /aosp_15_r20/external/executorch/kernels/optimized/External/EigenBLAS.cmake (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Worker# Copyright (c) Meta Platforms, Inc. and affiliates.
2*523fa7a6SAndroid Build Coastguard Worker# All rights reserved.
3*523fa7a6SAndroid Build Coastguard Worker#
4*523fa7a6SAndroid Build Coastguard Worker# This source code is licensed under the BSD-style license found in the
5*523fa7a6SAndroid Build Coastguard Worker# LICENSE file in the root directory of this source tree.
6*523fa7a6SAndroid Build Coastguard Worker
7*523fa7a6SAndroid Build Coastguard Workerif(__EIGEN_BLAS_INCLUDED)
8*523fa7a6SAndroid Build Coastguard Worker  return()
9*523fa7a6SAndroid Build Coastguard Workerendif()
10*523fa7a6SAndroid Build Coastguard Workerset(__EIGEN_BLAS_INCLUDED TRUE)
11*523fa7a6SAndroid Build Coastguard Worker
12*523fa7a6SAndroid Build Coastguard Worker# ##############################################################################
13*523fa7a6SAndroid Build Coastguard Worker# Eigen BLAS is built together with Libtorch mobile. By default, it builds code
14*523fa7a6SAndroid Build Coastguard Worker# from third-party/eigen/blas submodule.
15*523fa7a6SAndroid Build Coastguard Worker# ##############################################################################
16*523fa7a6SAndroid Build Coastguard Worker
17*523fa7a6SAndroid Build Coastguard Workerset(EIGEN_BLAS_SRC_DIR
18*523fa7a6SAndroid Build Coastguard Worker    "${CMAKE_CURRENT_SOURCE_DIR}/third-party/eigen/blas"
19*523fa7a6SAndroid Build Coastguard Worker    CACHE STRING "Eigen BLAS source directory"
20*523fa7a6SAndroid Build Coastguard Worker)
21*523fa7a6SAndroid Build Coastguard Worker
22*523fa7a6SAndroid Build Coastguard Workerset(EigenBlas_SRCS
23*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/single.cpp
24*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/double.cpp
25*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/complex_single.cpp
26*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/complex_double.cpp
27*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/xerbla.cpp
28*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/srotm.c
29*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/srotmg.c
30*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/drotm.c
31*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/drotmg.c
32*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/lsame.c
33*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/dspmv.c
34*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/ssbmv.c
35*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/chbmv.c
36*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/sspmv.c
37*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/zhbmv.c
38*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/chpmv.c
39*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/dsbmv.c
40*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/zhpmv.c
41*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/dtbmv.c
42*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/stbmv.c
43*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/ctbmv.c
44*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/ztbmv.c
45*523fa7a6SAndroid Build Coastguard Worker    ${EIGEN_BLAS_SRC_DIR}/f2c/complexdots.c
46*523fa7a6SAndroid Build Coastguard Worker)
47*523fa7a6SAndroid Build Coastguard Worker
48*523fa7a6SAndroid Build Coastguard Workeradd_library(eigen_blas STATIC ${EigenBlas_SRCS})
49*523fa7a6SAndroid Build Coastguard Worker
50*523fa7a6SAndroid Build Coastguard Worker# Dont know what to do with this We build static versions of eigen blas but link
51*523fa7a6SAndroid Build Coastguard Worker# into a shared library, so they need PIC.
52*523fa7a6SAndroid Build Coastguard Workerset_property(TARGET eigen_blas PROPERTY POSITION_INDEPENDENT_CODE ON)
53*523fa7a6SAndroid Build Coastguard Worker
54*523fa7a6SAndroid Build Coastguard Workerinstall(
55*523fa7a6SAndroid Build Coastguard Worker  TARGETS eigen_blas
56*523fa7a6SAndroid Build Coastguard Worker  LIBRARY DESTINATION lib
57*523fa7a6SAndroid Build Coastguard Worker  ARCHIVE DESTINATION lib
58*523fa7a6SAndroid Build Coastguard Worker)
59