Skip to content

Commit 2ae057f

Browse files
committed
unify pre-processing of blas/lapack sources
1 parent a356f14 commit 2ae057f

13 files changed

+41
-16648
lines changed

cmake/stdlib.cmake

+7
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,10 @@ function (fypp_f90 fyppopts fyppfiles f90files)
4040
preprocess("${FYPP}" "${fyppopts}" "fypp" "f90" "${fyppfiles}" _f90files)
4141
set(${f90files} ${_f90files} PARENT_SCOPE)
4242
endfunction()
43+
44+
# For fortran sources that contain C preprocessor flags: create ".F90" files
45+
function (fypp_f90pp fyppopts fyppfiles F90files)
46+
preprocess("${FYPP}" "${fyppopts}" "fypp" "F90" "${fyppfiles}" _F90files)
47+
set(${F90files} ${_F90files} PARENT_SCOPE)
48+
endfunction()
49+

include/common.fypp

-7
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,6 @@
8787
#! Whether Fortran 90 compatible code should be generated
8888
#:set VERSION90 = defined('VERSION90')
8989

90-
#! Whether special code for the fpm deployment branch should be generated
91-
#:set FPM_DEPLOYMENT = defined('FPM_DEPLOYMENT')
92-
93-
#! Whether external BLAS/LAPACK libraries are available
94-
#:set STDLIB_EXTERNAL_BLAS = defined('EXTERNAL_BLAS')
95-
#:set STDLIB_EXTERNAL_LAPACK = defined('EXTERNAL_LAPACK')
96-
9790
#! Ranks to be generated when templates are created
9891
#:if not defined('MAXRANK')
9992
#:if VERSION90

src/CMakeLists.txt

+22-17
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,7 @@ set(fppFiles
2020
stdlib_io_npy_save.fypp
2121
stdlib_kinds.fypp
2222
stdlib_linalg.fypp
23-
stdlib_linalg_constants.fypp
24-
stdlib_linalg_blas.fypp
25-
stdlib_linalg_blas_aux.fypp
26-
stdlib_linalg_blas_s.fypp
27-
stdlib_linalg_blas_d.fypp
28-
stdlib_linalg_blas_q.fypp
29-
stdlib_linalg_blas_c.fypp
30-
stdlib_linalg_blas_z.fypp
31-
stdlib_linalg_blas_w.fypp
3223
stdlib_linalg_diag.fypp
33-
stdlib_linalg_lapack.fypp
34-
stdlib_linalg_lapack_aux.fypp
35-
stdlib_linalg_lapack_s.fypp
36-
stdlib_linalg_lapack_d.fypp
37-
stdlib_linalg_lapack_q.fypp
38-
stdlib_linalg_lapack_c.fypp
39-
stdlib_linalg_lapack_z.fypp
40-
stdlib_linalg_lapack_w.fypp
4124
stdlib_linalg_outer_product.fypp
4225
stdlib_linalg_kronecker.fypp
4326
stdlib_linalg_cross_product.fypp
@@ -81,8 +64,29 @@ set(fppFiles
8164
stdlib_version.fypp
8265
)
8366

67+
# Preprocessed files to contain preprocessor directives -> .F90
68+
set(cppFiles
69+
stdlib_linalg_constants.fypp
70+
stdlib_linalg_blas.fypp
71+
stdlib_linalg_blas_aux.fypp
72+
stdlib_linalg_blas_s.fypp
73+
stdlib_linalg_blas_d.fypp
74+
stdlib_linalg_blas_q.fypp
75+
stdlib_linalg_blas_c.fypp
76+
stdlib_linalg_blas_z.fypp
77+
stdlib_linalg_blas_w.fypp
78+
stdlib_linalg_lapack.fypp
79+
stdlib_linalg_lapack_aux.fypp
80+
stdlib_linalg_lapack_s.fypp
81+
stdlib_linalg_lapack_d.fypp
82+
stdlib_linalg_lapack_q.fypp
83+
stdlib_linalg_lapack_c.fypp
84+
stdlib_linalg_lapack_z.fypp
85+
stdlib_linalg_lapack_w.fypp
86+
)
8487

8588
fypp_f90("${fyppFlags}" "${fppFiles}" outFiles)
89+
fypp_f90pp("${fyppFlags}" "${cppFiles}" outPreprocFiles)
8690

8791
set(SRC
8892
stdlib_ansi.f90
@@ -102,6 +106,7 @@ set(SRC
102106
stdlib_quadrature_gauss.f90
103107
stdlib_stringlist_type.f90
104108
${outFiles}
109+
${outPreprocFiles}
105110
)
106111

107112
add_library(${PROJECT_NAME} ${SRC})

0 commit comments

Comments
 (0)