|
1 | | -# ISA |
2 | | -set(isal_src_dir ${CMAKE_SOURCE_DIR}/src/isa-l) |
3 | | -include_directories(${isal_src_dir}/include) |
| 1 | +# build isa-l from its makefile and expose as target ISAL::ISAL |
| 2 | +include(BuildISAL) |
| 3 | +build_isal() |
4 | 4 |
|
5 | | -if(HAVE_NASM_X64_AVX2) |
6 | | - set(CMAKE_ASM_FLAGS "-i ${isal_src_dir}/include/ ${CMAKE_ASM_FLAGS}") |
7 | | - set(isa_srcs |
8 | | - ${isal_src_dir}/erasure_code/ec_base.c |
9 | | - ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_sse.asm |
10 | | - ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_sse.asm |
11 | | - ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_sse.asm |
12 | | - ${isal_src_dir}/erasure_code/gf_5vect_dot_prod_sse.asm |
13 | | - ${isal_src_dir}/erasure_code/gf_6vect_dot_prod_sse.asm |
14 | | - ${isal_src_dir}/erasure_code/gf_vect_dot_prod_sse.asm |
15 | | - ${isal_src_dir}/erasure_code/gf_2vect_mad_avx2.asm |
16 | | - ${isal_src_dir}/erasure_code/gf_3vect_mad_avx2.asm |
17 | | - ${isal_src_dir}/erasure_code/gf_4vect_mad_avx2.asm |
18 | | - ${isal_src_dir}/erasure_code/gf_5vect_mad_avx2.asm |
19 | | - ${isal_src_dir}/erasure_code/gf_6vect_mad_avx2.asm |
20 | | - ${isal_src_dir}/erasure_code/gf_vect_mad_avx2.asm |
21 | | - ${isal_src_dir}/erasure_code/ec_highlevel_func.c |
22 | | - ${isal_src_dir}/erasure_code/gf_2vect_mad_avx.asm |
23 | | - ${isal_src_dir}/erasure_code/gf_3vect_mad_avx.asm |
24 | | - ${isal_src_dir}/erasure_code/gf_4vect_mad_avx.asm |
25 | | - ${isal_src_dir}/erasure_code/gf_5vect_mad_avx.asm |
26 | | - ${isal_src_dir}/erasure_code/gf_6vect_mad_avx.asm |
27 | | - ${isal_src_dir}/erasure_code/gf_vect_mad_avx.asm |
28 | | - ${isal_src_dir}/erasure_code/ec_multibinary.asm |
29 | | - ${isal_src_dir}/erasure_code/gf_2vect_mad_sse.asm |
30 | | - ${isal_src_dir}/erasure_code/gf_3vect_mad_sse.asm |
31 | | - ${isal_src_dir}/erasure_code/gf_4vect_mad_sse.asm |
32 | | - ${isal_src_dir}/erasure_code/gf_5vect_mad_sse.asm |
33 | | - ${isal_src_dir}/erasure_code/gf_6vect_mad_sse.asm |
34 | | - ${isal_src_dir}/erasure_code/gf_vect_mad_sse.asm |
35 | | - ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_avx2.asm |
36 | | - ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_avx2.asm |
37 | | - ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_avx2.asm |
38 | | - ${isal_src_dir}/erasure_code/gf_5vect_dot_prod_avx2.asm |
39 | | - ${isal_src_dir}/erasure_code/gf_6vect_dot_prod_avx2.asm |
40 | | - ${isal_src_dir}/erasure_code/gf_vect_dot_prod_avx2.asm |
41 | | - ${isal_src_dir}/erasure_code/gf_vect_mul_avx.asm |
42 | | - ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_avx.asm |
43 | | - ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_avx.asm |
44 | | - ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_avx.asm |
45 | | - ${isal_src_dir}/erasure_code/gf_5vect_dot_prod_avx.asm |
46 | | - ${isal_src_dir}/erasure_code/gf_6vect_dot_prod_avx.asm |
47 | | - ${isal_src_dir}/erasure_code/gf_vect_dot_prod_avx.asm |
48 | | - ${isal_src_dir}/erasure_code/gf_vect_mul_sse.asm |
49 | | - ${isal_src_dir}/erasure_code/gf_2vect_dot_prod_avx512.asm |
50 | | - ${isal_src_dir}/erasure_code/gf_2vect_mad_avx512.asm |
51 | | - ${isal_src_dir}/erasure_code/gf_3vect_dot_prod_avx512.asm |
52 | | - ${isal_src_dir}/erasure_code/gf_3vect_mad_avx512.asm |
53 | | - ${isal_src_dir}/erasure_code/gf_4vect_dot_prod_avx512.asm |
54 | | - ${isal_src_dir}/erasure_code/gf_4vect_mad_avx512.asm |
55 | | - ${isal_src_dir}/erasure_code/gf_vect_dot_prod_avx512.asm |
56 | | - ${isal_src_dir}/erasure_code/gf_vect_mad_avx512.asm |
57 | | - ${isal_src_dir}/raid/raid_base.c |
58 | | - ${isal_src_dir}/raid/raid_multibinary.asm |
59 | | - ${isal_src_dir}/raid/xor_check_sse.asm |
60 | | - ${isal_src_dir}/raid/xor_gen_sse.asm |
61 | | - ${isal_src_dir}/raid/xor_gen_avx.asm |
62 | | - ${isal_src_dir}/raid/xor_gen_avx512.asm |
63 | | - ${isal_src_dir}/raid/pq_check_sse.asm |
64 | | - ${isal_src_dir}/raid/pq_gen_sse.asm |
65 | | - ${isal_src_dir}/raid/pq_gen_avx.asm |
66 | | - ${isal_src_dir}/raid/pq_gen_avx2.asm |
67 | | - ErasureCodeIsa.cc |
68 | | - ErasureCodeIsaTableCache.cc |
69 | | - ErasureCodePluginIsa.cc |
70 | | - ) |
71 | | -elseif(HAVE_ARMV8_SIMD) |
72 | | - set(isa_srcs |
73 | | - ${isal_src_dir}/erasure_code/ec_base.c |
74 | | - ${isal_src_dir}/erasure_code/aarch64/ec_aarch64_highlevel_func.c |
75 | | - ${isal_src_dir}/erasure_code/aarch64/ec_aarch64_dispatcher.c |
76 | | - ${isal_src_dir}/erasure_code/aarch64/gf_2vect_dot_prod_neon.S |
77 | | - ${isal_src_dir}/erasure_code/aarch64/gf_2vect_mad_neon.S |
78 | | - ${isal_src_dir}/erasure_code/aarch64/gf_3vect_dot_prod_neon.S |
79 | | - ${isal_src_dir}/erasure_code/aarch64/gf_3vect_mad_neon.S |
80 | | - ${isal_src_dir}/erasure_code/aarch64/gf_4vect_dot_prod_neon.S |
81 | | - ${isal_src_dir}/erasure_code/aarch64/gf_4vect_mad_neon.S |
82 | | - ${isal_src_dir}/erasure_code/aarch64/gf_5vect_dot_prod_neon.S |
83 | | - ${isal_src_dir}/erasure_code/aarch64/gf_5vect_mad_neon.S |
84 | | - ${isal_src_dir}/erasure_code/aarch64/gf_6vect_mad_neon.S |
85 | | - ${isal_src_dir}/erasure_code/aarch64/gf_vect_dot_prod_neon.S |
86 | | - ${isal_src_dir}/erasure_code/aarch64/gf_vect_mad_neon.S |
87 | | - ${isal_src_dir}/erasure_code/aarch64/gf_vect_mul_neon.S |
88 | | - ${isal_src_dir}/erasure_code/aarch64/ec_multibinary_arm.S |
89 | | - ${isal_src_dir}/raid/raid_base.c |
90 | | - ${isal_src_dir}/raid/aarch64/raid_aarch64_dispatcher.c |
91 | | - ${isal_src_dir}/raid/aarch64/raid_multibinary_arm.S |
92 | | - ${isal_src_dir}/raid/aarch64/xor_check_neon.S |
93 | | - ${isal_src_dir}/raid/aarch64/xor_gen_neon.S |
94 | | - ${isal_src_dir}/raid/aarch64/pq_check_neon.S |
95 | | - ${isal_src_dir}/raid/aarch64/pq_gen_neon.S |
96 | | - ErasureCodeIsa.cc |
97 | | - ErasureCodeIsaTableCache.cc |
98 | | - ErasureCodePluginIsa.cc |
99 | | - ) |
100 | | - set_source_files_properties( |
101 | | - ${isal_src_dir}/erasure_code/aarch64/ec_multibinary_arm.S |
102 | | - ${isal_src_dir}/raid/aarch64/raid_multibinary_arm.S |
103 | | - PROPERTIES COMPILE_FLAGS "-D__ASSEMBLY__" |
104 | | - ) |
105 | | -endif() |
| 5 | +# ISA |
| 6 | +set(isa_srcs |
| 7 | + ErasureCodeIsa.cc |
| 8 | + ErasureCodeIsaTableCache.cc |
| 9 | + ErasureCodePluginIsa.cc |
| 10 | +) |
106 | 11 |
|
107 | 12 | add_library(ec_isa SHARED |
108 | 13 | ${isa_srcs} |
109 | 14 | $<TARGET_OBJECTS:erasure_code_objs>) |
110 | | -target_link_libraries(ec_isa ${EXTRALIBS}) |
| 15 | +target_link_libraries(ec_isa ISAL::ISAL ${EXTRALIBS}) |
111 | 16 | set_target_properties(ec_isa PROPERTIES |
112 | 17 | INSTALL_RPATH "") |
113 | 18 | install(TARGETS ec_isa DESTINATION ${erasure_plugin_dir}) |
0 commit comments