Skip to content

Commit fa4afb8

Browse files
author
Raghuveer Devulapalli
authored
Merge pull request #94 from r-devulap/install
Provide a way to install x86simdsort as a library
2 parents b0b1037 + 20955e4 commit fa4afb8

File tree

5 files changed

+32
-15
lines changed

5 files changed

+32
-15
lines changed

.github/workflows/c-cpp.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
CXX: g++-9
3131
run: |
3232
make clean
33-
meson setup --warnlevel 2 --werror --buildtype release builddir
33+
meson setup -Dbuild_tests=true --warnlevel 2 --werror --buildtype release builddir
3434
cd builddir
3535
ninja
3636
@@ -60,7 +60,7 @@ jobs:
6060
CXX: g++-10
6161
run: |
6262
make clean
63-
meson setup --warnlevel 2 --werror --buildtype release builddir
63+
meson setup -Dbuild_tests=true --warnlevel 2 --werror --buildtype release builddir
6464
cd builddir
6565
ninja
6666
@@ -90,7 +90,7 @@ jobs:
9090
CXX: g++-11
9191
run: |
9292
make clean
93-
meson setup --warnlevel 2 --werror --buildtype release builddir
93+
meson setup -Dbuild_tests=true --warnlevel 2 --werror --buildtype release builddir
9494
cd builddir
9595
ninja
9696
- name: Run test suite on TGL
@@ -126,7 +126,7 @@ jobs:
126126
CXX: g++-13
127127
run: |
128128
make clean
129-
meson setup --warnlevel 2 --werror --buildtype release builddir
129+
meson setup -Dbuild_tests=true --warnlevel 2 --werror --buildtype release builddir
130130
cd builddir
131131
ninja
132132
@@ -157,7 +157,7 @@ jobs:
157157
CXXFLAGS: -DXSS_MINIMAL_NETWORK_SORT
158158
run: |
159159
make clean
160-
meson setup --warnlevel 2 --werror --buildtype release builddir
160+
meson setup -Dbuild_tests=true --warnlevel 2 --werror --buildtype release builddir
161161
cd builddir
162162
ninja
163163

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
meson:
2-
meson setup --warnlevel 2 --werror --buildtype release builddir
2+
meson setup -Dbuild_tests=true -Dbuild_benchmarks=true --warnlevel 2 --werror --buildtype release builddir
33
cd builddir && ninja
44

55
mesondebug:
6-
meson setup --warnlevel 2 --werror --buildtype debug debug
6+
meson setup -Dbuild_tests=true -Dbuild_benchmarks=true --warnlevel 2 --werror --buildtype debug debug
77
cd debug && ninja
88

99
clean:
10-
$(RM) -rf $(TESTOBJS) $(BENCHOBJS) $(UTILOBJS) testexe benchexe builddir
10+
$(RM) -rf $(TESTOBJS) $(BENCHOBJS) $(UTILOBJS) testexe benchexe builddir debug

lib/meson.build

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,5 @@ if cancompilefp16
3939
cpp_args : ['-march=sapphirerapids', flags_hide_symbols],
4040
)
4141
endif
42+
43+
install_headers('x86simdsort.h')

meson.build

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
project('x86-simd-sort', 'cpp',
2-
version : '2.0.0',
2+
version : '4.0.0',
33
license : 'BSD 3-clause',
44
default_options : ['cpp_std=c++17'])
55
cpp = meson.get_compiler('cpp')
@@ -8,8 +8,6 @@ lib = include_directories('lib')
88
bench = include_directories('benchmarks')
99
utils = include_directories('utils')
1010
tests = include_directories('tests')
11-
gtest_dep = dependency('gtest_main', required : false, static: false)
12-
gbench_dep = dependency('benchmark', required : false, static: false)
1311

1412
fp16code = '''#include<immintrin.h>
1513
int main() {
@@ -27,19 +25,32 @@ libsimdsort = shared_library('x86simdsort',
2725
include_directories : [utils, lib],
2826
link_with : [libtargets],
2927
cpp_args : [flags_hide_symbols],
28+
install : true,
3029
)
3130

32-
if gtest_dep.found()
31+
pkg_mod = import('pkgconfig')
32+
pkg_mod.generate(libraries : libsimdsort,
33+
version : '4.0',
34+
name : 'libx86simdsort',
35+
filebase : 'x86simdsort',
36+
description : 'High performance SIMD based sorting routines.')
37+
38+
# Build test suite if option build_tests set to true
39+
if get_option('build_tests')
40+
gtest_dep = dependency('gtest_main', required : true, static: false)
3341
subdir('tests')
3442
testexe = executable('testexe',
3543
include_directories : [lib, utils],
3644
dependencies : gtest_dep,
3745
link_whole : [libtests],
3846
link_with : libsimdsort,
3947
)
48+
test('x86 simd sort tests', testexe)
4049
endif
4150

42-
if gbench_dep.found()
51+
# Build benchmarking suite if option build_benchmarks is set to true
52+
if get_option('build_benchmarks')
53+
gbench_dep = dependency('benchmark', required : true, static: false)
4354
subdir('benchmarks')
4455
benchexe = executable('benchexe',
4556
include_directories : [src, lib, utils, bench],
@@ -52,8 +63,8 @@ endif
5263

5364
summary({
5465
'Can compile AVX-512 FP16 ISA': cancompilefp16,
55-
'Built test content': gtest_dep.found(),
56-
'Built benchmarks': gbench_dep.found(),
66+
'Build test content': get_option('build_tests'),
67+
'Build benchmarks': get_option('build_benchmarks'),
5768
},
5869
section: 'Configuration',
5970
bool_yn: true

meson_options.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
option('build_tests', type : 'boolean', value : false,
2+
description : 'Build test suite (default: "false").')
3+
option('build_benchmarks', type : 'boolean', value : false,
4+
description : 'Build benchmarking suite (default: "false").')

0 commit comments

Comments
 (0)