minimap2 0.2.24.3 → 0.2.24.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/ext/minimap2/lib/simde/CONTRIBUTING.md +114 -0
  3. data/ext/minimap2/lib/simde/COPYING +20 -0
  4. data/ext/minimap2/lib/simde/README.md +333 -0
  5. data/ext/minimap2/lib/simde/amalgamate.py +58 -0
  6. data/ext/minimap2/lib/simde/meson.build +33 -0
  7. data/ext/minimap2/lib/simde/netlify.toml +20 -0
  8. data/ext/minimap2/lib/simde/simde/arm/neon/float32x2.h +140 -0
  9. data/ext/minimap2/lib/simde/simde/arm/neon/float32x4.h +137 -0
  10. data/ext/minimap2/lib/simde/simde/arm/neon/float64x1.h +142 -0
  11. data/ext/minimap2/lib/simde/simde/arm/neon/float64x2.h +145 -0
  12. data/ext/minimap2/lib/simde/simde/arm/neon/int16x4.h +140 -0
  13. data/ext/minimap2/lib/simde/simde/arm/neon/int16x8.h +145 -0
  14. data/ext/minimap2/lib/simde/simde/arm/neon/int32x2.h +140 -0
  15. data/ext/minimap2/lib/simde/simde/arm/neon/int32x4.h +143 -0
  16. data/ext/minimap2/lib/simde/simde/arm/neon/int64x1.h +137 -0
  17. data/ext/minimap2/lib/simde/simde/arm/neon/int64x2.h +141 -0
  18. data/ext/minimap2/lib/simde/simde/arm/neon/int8x16.h +147 -0
  19. data/ext/minimap2/lib/simde/simde/arm/neon/int8x8.h +141 -0
  20. data/ext/minimap2/lib/simde/simde/arm/neon/uint16x4.h +134 -0
  21. data/ext/minimap2/lib/simde/simde/arm/neon/uint16x8.h +138 -0
  22. data/ext/minimap2/lib/simde/simde/arm/neon/uint32x2.h +134 -0
  23. data/ext/minimap2/lib/simde/simde/arm/neon/uint32x4.h +137 -0
  24. data/ext/minimap2/lib/simde/simde/arm/neon/uint64x1.h +131 -0
  25. data/ext/minimap2/lib/simde/simde/arm/neon/uint64x2.h +135 -0
  26. data/ext/minimap2/lib/simde/simde/arm/neon/uint8x16.h +141 -0
  27. data/ext/minimap2/lib/simde/simde/arm/neon/uint8x8.h +135 -0
  28. data/ext/minimap2/lib/simde/simde/arm/neon.h +97 -0
  29. data/ext/minimap2/lib/simde/simde/check.h +267 -0
  30. data/ext/minimap2/lib/simde/simde/debug-trap.h +83 -0
  31. data/ext/minimap2/lib/simde/simde/hedley.h +1899 -0
  32. data/ext/minimap2/lib/simde/simde/simde-arch.h +445 -0
  33. data/ext/minimap2/lib/simde/simde/simde-common.h +697 -0
  34. data/ext/minimap2/lib/simde/simde/x86/avx.h +5385 -0
  35. data/ext/minimap2/lib/simde/simde/x86/avx2.h +2402 -0
  36. data/ext/minimap2/lib/simde/simde/x86/avx512bw.h +391 -0
  37. data/ext/minimap2/lib/simde/simde/x86/avx512f.h +3389 -0
  38. data/ext/minimap2/lib/simde/simde/x86/avx512vl.h +112 -0
  39. data/ext/minimap2/lib/simde/simde/x86/fma.h +659 -0
  40. data/ext/minimap2/lib/simde/simde/x86/mmx.h +2210 -0
  41. data/ext/minimap2/lib/simde/simde/x86/sse.h +3696 -0
  42. data/ext/minimap2/lib/simde/simde/x86/sse2.h +5991 -0
  43. data/ext/minimap2/lib/simde/simde/x86/sse3.h +343 -0
  44. data/ext/minimap2/lib/simde/simde/x86/sse4.1.h +1783 -0
  45. data/ext/minimap2/lib/simde/simde/x86/sse4.2.h +105 -0
  46. data/ext/minimap2/lib/simde/simde/x86/ssse3.h +1053 -0
  47. data/ext/minimap2/lib/simde/simde/x86/svml.h +543 -0
  48. data/ext/minimap2/lib/simde/test/CMakeLists.txt +166 -0
  49. data/ext/minimap2/lib/simde/test/arm/meson.build +4 -0
  50. data/ext/minimap2/lib/simde/test/arm/neon/meson.build +23 -0
  51. data/ext/minimap2/lib/simde/test/arm/neon/skel.c +871 -0
  52. data/ext/minimap2/lib/simde/test/arm/neon/test-neon-internal.h +134 -0
  53. data/ext/minimap2/lib/simde/test/arm/neon/test-neon.c +39 -0
  54. data/ext/minimap2/lib/simde/test/arm/neon/test-neon.h +10 -0
  55. data/ext/minimap2/lib/simde/test/arm/neon/vadd.c +1260 -0
  56. data/ext/minimap2/lib/simde/test/arm/neon/vdup_n.c +873 -0
  57. data/ext/minimap2/lib/simde/test/arm/neon/vmul.c +1084 -0
  58. data/ext/minimap2/lib/simde/test/arm/neon/vsub.c +1260 -0
  59. data/ext/minimap2/lib/simde/test/arm/test-arm-internal.h +18 -0
  60. data/ext/minimap2/lib/simde/test/arm/test-arm.c +20 -0
  61. data/ext/minimap2/lib/simde/test/arm/test-arm.h +8 -0
  62. data/ext/minimap2/lib/simde/test/cmake/AddCompilerFlags.cmake +171 -0
  63. data/ext/minimap2/lib/simde/test/cmake/ExtraWarningFlags.cmake +68 -0
  64. data/ext/minimap2/lib/simde/test/meson.build +64 -0
  65. data/ext/minimap2/lib/simde/test/munit/COPYING +21 -0
  66. data/ext/minimap2/lib/simde/test/munit/Makefile +55 -0
  67. data/ext/minimap2/lib/simde/test/munit/README.md +54 -0
  68. data/ext/minimap2/lib/simde/test/munit/example.c +351 -0
  69. data/ext/minimap2/lib/simde/test/munit/meson.build +37 -0
  70. data/ext/minimap2/lib/simde/test/munit/munit.c +2055 -0
  71. data/ext/minimap2/lib/simde/test/munit/munit.h +535 -0
  72. data/ext/minimap2/lib/simde/test/run-tests.c +20 -0
  73. data/ext/minimap2/lib/simde/test/run-tests.h +260 -0
  74. data/ext/minimap2/lib/simde/test/x86/avx.c +13752 -0
  75. data/ext/minimap2/lib/simde/test/x86/avx2.c +9977 -0
  76. data/ext/minimap2/lib/simde/test/x86/avx512bw.c +2664 -0
  77. data/ext/minimap2/lib/simde/test/x86/avx512f.c +10416 -0
  78. data/ext/minimap2/lib/simde/test/x86/avx512vl.c +210 -0
  79. data/ext/minimap2/lib/simde/test/x86/fma.c +2557 -0
  80. data/ext/minimap2/lib/simde/test/x86/meson.build +33 -0
  81. data/ext/minimap2/lib/simde/test/x86/mmx.c +2878 -0
  82. data/ext/minimap2/lib/simde/test/x86/skel.c +2984 -0
  83. data/ext/minimap2/lib/simde/test/x86/sse.c +5121 -0
  84. data/ext/minimap2/lib/simde/test/x86/sse2.c +9860 -0
  85. data/ext/minimap2/lib/simde/test/x86/sse3.c +486 -0
  86. data/ext/minimap2/lib/simde/test/x86/sse4.1.c +3446 -0
  87. data/ext/minimap2/lib/simde/test/x86/sse4.2.c +101 -0
  88. data/ext/minimap2/lib/simde/test/x86/ssse3.c +2084 -0
  89. data/ext/minimap2/lib/simde/test/x86/svml.c +1545 -0
  90. data/ext/minimap2/lib/simde/test/x86/test-avx.h +16 -0
  91. data/ext/minimap2/lib/simde/test/x86/test-avx512.h +25 -0
  92. data/ext/minimap2/lib/simde/test/x86/test-mmx.h +13 -0
  93. data/ext/minimap2/lib/simde/test/x86/test-sse.h +13 -0
  94. data/ext/minimap2/lib/simde/test/x86/test-sse2.h +13 -0
  95. data/ext/minimap2/lib/simde/test/x86/test-x86-internal.h +196 -0
  96. data/ext/minimap2/lib/simde/test/x86/test-x86.c +48 -0
  97. data/ext/minimap2/lib/simde/test/x86/test-x86.h +8 -0
  98. data/lib/minimap2/aligner.rb +2 -2
  99. data/lib/minimap2/ffi/constants.rb +3 -0
  100. data/lib/minimap2/version.rb +1 -1
  101. metadata +99 -3
@@ -0,0 +1,18 @@
1
+ #if !defined(SIMDE_TESTS_ARM_INTERNAL_H)
2
+ #define SIMDE_TESTS_CURRENT_ARCH arm
3
+
4
+ #include "../run-tests.h"
5
+
6
+ HEDLEY_BEGIN_C_DECLS
7
+
8
+ #define SIMDE_TESTS_ARM_GENERATE_SUITE_GETTERS(isax) \
9
+ MunitSuite* SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, native, c)(void); \
10
+ MunitSuite* SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, native, cpp)(void); \
11
+ MunitSuite* SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, emul, c)(void); \
12
+ MunitSuite* SIMDE_TESTS_GENERATE_SYMBOL_FULL(suite, SIMDE_TESTS_CURRENT_ARCH, isax, emul, cpp)(void)
13
+
14
+ SIMDE_TESTS_ARM_GENERATE_SUITE_GETTERS(neon);
15
+
16
+ HEDLEY_END_C_DECLS
17
+
18
+ #endif /* !defined(SIMDE_TESTS_ARM_INTERNAL_H) */
@@ -0,0 +1,20 @@
1
+ #include "test-arm.h"
2
+ #include "test-arm-internal.h"
3
+ #include "neon/test-neon.h"
4
+
5
+ #include <stdio.h>
6
+
7
+ MunitSuite*
8
+ simde_tests_arm_get_suite(void) {
9
+ static MunitSuite children[] = {
10
+ { NULL, NULL, NULL, 1, MUNIT_SUITE_OPTION_NONE },
11
+ { NULL, NULL, NULL, 1, MUNIT_SUITE_OPTION_NONE }
12
+ };
13
+ static MunitSuite suite = { HEDLEY_STATIC_CAST(char*, "/arm"), NULL, NULL, 1, MUNIT_SUITE_OPTION_NONE };
14
+
15
+ children[0] = *simde_tests_arm_neon_get_suite();
16
+
17
+ suite.suites = children;
18
+
19
+ return &suite;
20
+ }
@@ -0,0 +1,8 @@
1
+ #include "../../simde/hedley.h"
2
+ #include "../munit/munit.h"
3
+
4
+ HEDLEY_BEGIN_C_DECLS
5
+
6
+ MunitSuite* simde_tests_arm_get_suite(void);
7
+
8
+ HEDLEY_END_C_DECLS
@@ -0,0 +1,171 @@
1
+ # This module provides a convenient way to add C/C++ compiler flags if
2
+ # the compiler supports them.
3
+
4
+ include (CheckCCompilerFlag)
5
+ include (CheckCXXCompilerFlag)
6
+
7
+ cmake_policy(SET CMP0054 NEW)
8
+
9
+ # Depending on the settings, some compilers will accept unknown flags.
10
+ # We try to disable this behavior by also passing these flags when we
11
+ # check if a flag is supported.
12
+ set (ADD_COMPILER_FLAGS_PREPEND "")
13
+
14
+ if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
15
+ set (ADD_COMPILER_FLAGS_PREPEND "-Wall -Wextra -Werror")
16
+ elseif (CMAKE_C_COMPILER_ID STREQUAL "Clang")
17
+ set (ADD_COMPILER_FLAGS_PREPEND "-Werror=unknown-warning-option")
18
+ endif ()
19
+
20
+ ##
21
+ # Set a variable to different flags, depending on which compiler is in
22
+ # use.
23
+ #
24
+ # Example:
25
+ # set_compiler_specific_flags(VARIABLE varname MSVC /wd666 INTEL /wd1729)
26
+ #
27
+ # This will set varname to /wd666 if the compiler is MSVC, and /wd1729
28
+ # if it is Intel.
29
+ #
30
+ # Possible compilers:
31
+ # - GCC: GNU C Compiler
32
+ # - GCCISH: A compiler that (tries to) be GCC-compatible on the CLI
33
+ # (i.e., anything but MSVC).
34
+ # - CLANG: clang
35
+ # - MSVC: Microsoft Visual C++ compiler
36
+ # - INTEL: Intel C Compiler
37
+ # - PGI: PGI C Compiler
38
+ #
39
+ # Note: the compiler is determined based on the value of the
40
+ # CMAKE_C_COMPILER_ID variable, not CMAKE_CXX_COMPILER_ID.
41
+ ##
42
+ function (set_compiler_specific_flags)
43
+ set (oneValueArgs VARIABLE)
44
+ set (multiValueArgs GCC GCCISH INTEL CLANG MSVC PGI)
45
+ cmake_parse_arguments(COMPILER_SPECIFIC_FLAGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
46
+ unset (options)
47
+ unset (oneValueArgs)
48
+ unset (multiValueArgs)
49
+
50
+ set (compiler_flags)
51
+
52
+ if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
53
+ list (APPEND compiler_flags ${COMPILER_SPECIFIC_FLAGS_GCC})
54
+ elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
55
+ list (APPEND compiler_flags ${COMPILER_SPECIFIC_FLAGS_CLANG})
56
+ elseif(CMAKE_C_COMPILER_ID STREQUAL "Intel")
57
+ list (APPEND compiler_flags ${COMPILER_SPECIFIC_FLAGS_INTEL})
58
+ elseif(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
59
+ list (APPEND compiler_flags ${COMPILER_SPECIFIC_FLAGS_MSVC})
60
+ elseif(CMAKE_C_COMPILER_ID STREQUAL "PGI")
61
+ list (APPEND compiler_flags ${COMPILER_SPECIFIC_FLAGS_PGI})
62
+ endif()
63
+
64
+ set(GCCISH_COMPILERS GNU Clang Intel)
65
+ list(FIND GCCISH_COMPILERS "${CMAKE_C_COMPILER_ID}" IS_GCCISH)
66
+ if (IS_GCCISH GREATER -1)
67
+ list (APPEND compiler_flags ${COMPILER_SPECIFIC_FLAGS_GCCISH})
68
+ endif ()
69
+
70
+ set (${COMPILER_SPECIFIC_FLAGS_VARIABLE} "${compiler_flags}" PARENT_SCOPE)
71
+ endfunction ()
72
+
73
+ function (source_file_add_compiler_flags_unchecked file)
74
+ set (flags ${ARGV})
75
+ list (REMOVE_AT flags 0)
76
+ get_source_file_property (sources ${file} SOURCES)
77
+
78
+ foreach (flag ${flags})
79
+ get_source_file_property (existing ${file} COMPILE_FLAGS)
80
+ if ("${existing}" STREQUAL "NOTFOUND")
81
+ set_source_files_properties (${file}
82
+ PROPERTIES COMPILE_FLAGS "${flag}")
83
+ else ()
84
+ set_source_files_properties (${file}
85
+ PROPERTIES COMPILE_FLAGS "${existing} ${flag}")
86
+ endif ()
87
+ endforeach (flag)
88
+ endfunction ()
89
+
90
+ function (source_file_add_compiler_flags file)
91
+ set (flags ${ARGV})
92
+ list (REMOVE_AT flags 0)
93
+ get_source_file_property (sources ${file} SOURCES)
94
+
95
+ foreach (flag ${flags})
96
+ if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
97
+ # Because https://gcc.gnu.org/wiki/FAQ#wnowarning
98
+ string (REGEX REPLACE "\\-Wno\\-(.+)" "-W\\1" flag_to_test "${flag}")
99
+ else ()
100
+ set (flag_to_test ${flag})
101
+ endif ()
102
+
103
+ if (file MATCHES "\\.c$")
104
+ string (REGEX REPLACE "[^a-zA-Z0-9]+" "_" test_name "CFLAG_${flag_to_test}")
105
+ CHECK_C_COMPILER_FLAG ("${ADD_COMPILER_FLAGS_PREPEND} ${flag_to_test}" ${test_name})
106
+ elseif (file MATCHES "\\.(cpp|cc|cxx)$")
107
+ string (REGEX REPLACE "[^a-zA-Z0-9]+" "_" test_name "CXXFLAG_${flag_to_test}")
108
+ CHECK_CXX_COMPILER_FLAG ("${ADD_COMPILER_FLAGS_PREPEND} ${flag_to_test}" ${test_name})
109
+ endif ()
110
+
111
+ if (${test_name})
112
+ source_file_add_compiler_flags_unchecked (${file} ${flag})
113
+ endif ()
114
+
115
+ unset (test_name)
116
+ unset (flag_to_test)
117
+ endforeach (flag)
118
+
119
+ unset (flags)
120
+ endfunction ()
121
+
122
+ function (target_add_compiler_flags target)
123
+ set (flags ${ARGV})
124
+ list (REMOVE_AT flags 0)
125
+ get_target_property (sources ${target} SOURCES)
126
+
127
+ foreach (source ${sources})
128
+ source_file_add_compiler_flags (${source} ${flags})
129
+ endforeach (source)
130
+
131
+ unset (flags)
132
+ unset (sources)
133
+ endfunction (target_add_compiler_flags)
134
+
135
+ # global_add_compiler_flags (flag1 [flag2 [flag3 ...]]):
136
+ #
137
+ # This just adds the requested compiler flags to
138
+ # CMAKE_C/CXX_FLAGS variable if they work with the compiler.
139
+ function (global_add_compiler_flags)
140
+ set (flags ${ARGV})
141
+
142
+ foreach (flag ${flags})
143
+ if ("GNU" STREQUAL "${CMAKE_C_COMPILER_ID}")
144
+ # Because https://gcc.gnu.org/wiki/FAQ#wnowarning
145
+ string (REGEX REPLACE "\\-Wno\\-(.+)" "-W\\1" flag_to_test "${flag}")
146
+ else ()
147
+ set (flag_to_test "${flag}")
148
+ endif ()
149
+
150
+ string (REGEX REPLACE "[^a-zA-Z0-9]+" "_" c_test_name "CFLAG_${flag_to_test}")
151
+ CHECK_C_COMPILER_FLAG ("${ADD_COMPILER_FLAGS_PREPEND} ${flag_to_test}" ${c_test_name})
152
+ if (${c_test_name})
153
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}")
154
+ endif ()
155
+ unset (c_test_name)
156
+
157
+ string (REGEX REPLACE "[^a-zA-Z0-9]+" "_" cxx_test_name "CFLAG_${flag_to_test}")
158
+ CHECK_CXX_COMPILER_FLAG ("${ADD_COMPILER_FLAGS_PREPEND} ${flag_to_test}" ${cxx_test_name})
159
+ if (${cxx_test_name})
160
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
161
+ endif ()
162
+ unset (cxx_test_name)
163
+
164
+ unset (flag_to_test)
165
+ endforeach (flag)
166
+
167
+ unset (flags)
168
+
169
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" PARENT_SCOPE)
170
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" PARENT_SCOPE)
171
+ endfunction (global_add_compiler_flags)
@@ -0,0 +1,68 @@
1
+ # This is basically supposed to be the CMake equivalent of
2
+ # https://git.gnome.org/browse/gnome-common/tree/macros2/gnome-compiler-flags.m4
3
+
4
+ include (AddCompilerFlags)
5
+
6
+ if (MSVC)
7
+ set (EXTRA_WARNING_FLAGS
8
+ /W4
9
+ /analyze)
10
+ else ()
11
+ set (EXTRA_WARNING_FLAGS
12
+ -Wall
13
+ -Wcast-align
14
+ -Wclobbered
15
+ -Wempty-body
16
+ -Werror=format=2
17
+ -Werror=format-security
18
+ -Werror=implicit-function-declaration
19
+ -Werror=init-self
20
+ -Werror=missing-include-dirs
21
+ -Werror=missing-prototypes
22
+ -Werror=pointer-arith
23
+ -Wextra
24
+ -Wformat-nonliteral
25
+ -Wformat-security
26
+ -Wignored-qualifiers
27
+ -Winit-self
28
+ -Winvalid-pch
29
+ -Wlogical-op
30
+ -Wmissing-declarations
31
+ -Wmissing-format-attribute
32
+ -Wmissing-include-dirs
33
+ -Wmissing-noreturn
34
+ -Wmissing-parameter-type
35
+ -Wmissing-prototypes
36
+ -Wnested-externs
37
+ -Wno-missing-field-initializers
38
+ -Wno-strict-aliasing
39
+ -Wno-uninitialized
40
+ -Wno-unused-parameter
41
+ -Wold-style-definition
42
+ -Woverride-init
43
+ -Wpacked
44
+ -Wpointer-arith
45
+ -Wredundant-decls
46
+ -Wreturn-type
47
+ -Wshadow
48
+ -Wsign-compare
49
+ -Wstrict-prototypes
50
+ -Wswitch-enum
51
+ -Wsync-nand
52
+ -Wtype-limits
53
+ -Wundef
54
+ -Wuninitialized
55
+ -WUnsafe-loop-optimizations
56
+ -Wwrite-strings
57
+ -Wsuggest-attribute=format)
58
+ endif ()
59
+
60
+ mark_as_advanced (EXTRA_WARNING_FLAGS)
61
+
62
+ function (target_add_extra_warning_flags target)
63
+ target_add_compiler_flags (${target} ${EXTRA_WARNING_FLAGS})
64
+ endfunction (target_add_extra_warning_flags)
65
+
66
+ function (source_file_add_extra_warning_flags file)
67
+ source_file_add_compiler_flags (${file} ${EXTRA_WARNING_FLAGS})
68
+ endfunction (source_file_add_extra_warning_flags)
@@ -0,0 +1,64 @@
1
+ munit_deps = []
2
+ munit_defs = []
3
+ if cc.get_id() == 'pgi'
4
+ munit_deps += dependency('openmp')
5
+ endif
6
+ if cc.has_function('clock_gettime')
7
+ librt_dep = cc.find_library('rt', required: false)
8
+ if not librt_dep.found()
9
+ munit_defs += '-DPSNIP_CLOCK_NO_LIBRT'
10
+ endif
11
+ munit_deps += librt_dep
12
+ endif
13
+ munit = static_library('munit', 'munit/munit.c', dependencies: munit_deps)
14
+
15
+ simde_c_defs = []
16
+ simde_cxx_defs = []
17
+ simde_c_args = []
18
+ simde_cxx_args = []
19
+ simde_deps = []
20
+
21
+ c_openmp_simd = false
22
+ cxx_openmp_simd = false
23
+ foreach omp_arg : ['-fopenmp-simd', '-qopenmp-simd']
24
+ if (not c_openmp_simd) and cc.has_argument(omp_arg)
25
+ simde_c_args += omp_arg
26
+ simde_c_defs += '-DSIMDE_ENABLE_OPENMP'
27
+ c_openmp_simd = true
28
+ endif
29
+
30
+ if (not cxx_openmp_simd) and cxx.has_argument(omp_arg)
31
+ simde_cxx_args += omp_arg
32
+ simde_cxx_defs += '-DSIMDE_ENABLE_OPENMP'
33
+ cxx_openmp_simd = true
34
+ endif
35
+ endforeach
36
+
37
+ simde_native_c_flags = []
38
+ # if cc.has_argument('-march=native+simd')
39
+ # simde_native_c_flags += '-march=native+simd'
40
+ # elif cc.has_argument('-march=native')
41
+ # simde_native_c_flags += '-march=native'
42
+ # endif
43
+
44
+ simde_native_cxx_flags = []
45
+ # if cxx.has_argument('-march=native+simd')
46
+ # simde_native_cxx_flags += '-march=native+simd'
47
+ # elif cxx.has_argument('-march=native')
48
+ # simde_native_cxx_flags += '-march=native'
49
+ # endif
50
+
51
+ if not c_openmp_simd
52
+ simde_deps += dependency('openmp', required: false)
53
+ endif
54
+
55
+ simde_include_dir = include_directories('..')
56
+
57
+ subdir('x86')
58
+ subdir('arm')
59
+
60
+ executable('run-tests', 'run-tests.c',
61
+ link_with: [munit, simde_tests_x86, simde_tests_arm],
62
+ dependencies: simde_deps,
63
+ c_args: simde_c_args + simde_c_defs + simde_native_c_flags,
64
+ cpp_args: simde_cxx_args + simde_cxx_defs + simde_native_cxx_flags)
@@ -0,0 +1,21 @@
1
+ µnit Testing Framework
2
+ Copyright (c) 2013-2016 Evan Nemerson <evan@nemerson.com>
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining
5
+ a copy of this software and associated documentation files (the
6
+ "Software"), to deal in the Software without restriction, including
7
+ without limitation the rights to use, copy, modify, merge, publish,
8
+ distribute, sublicense, and/or sell copies of the Software, and to
9
+ permit persons to whom the Software is furnished to do so, subject to
10
+ the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,55 @@
1
+ # Using µnit is very simple; just include the header and add the C
2
+ # file to your sources. That said, here is a simple Makefile to build
3
+ # the example.
4
+
5
+ CSTD:=99
6
+ OPENMP:=n
7
+ ASAN:=n
8
+ UBSAN:=n
9
+ EXTENSION:=
10
+ TEST_ENV:=
11
+ CFLAGS:=
12
+ AGGRESSIVE_WARNINGS=n
13
+
14
+ ifeq ($(CC),pgcc)
15
+ CFLAGS+=-c$(CSTD)
16
+ else
17
+ CFLAGS+=-std=c$(CSTD)
18
+ endif
19
+
20
+ ifeq ($(OPENMP),y)
21
+ ifeq ($(CC),pgcc)
22
+ CFLAGS+=-mp
23
+ else
24
+ CFLAGS+=-fopenmp
25
+ endif
26
+ endif
27
+
28
+ ifneq ($(SANITIZER),)
29
+ CFLAGS+=-fsanitize=$(SANITIZER)
30
+ endif
31
+
32
+ ifneq ($(CC),pgcc)
33
+ ifeq ($(EXTRA_WARNINGS),y)
34
+ CFLAGS+=-Wall -Wextra -Werror
35
+ endif
36
+
37
+ ifeq ($(ASAN),y)
38
+ CFLAGS+=-fsanitize=address
39
+ endif
40
+
41
+ ifeq ($(UBSAN),y)
42
+ CFLAGS+=-fsanitize=undefined
43
+ endif
44
+ endif
45
+
46
+ example$(EXTENSION): munit.h munit.c example.c
47
+ $(CC) $(CFLAGS) -o $@ munit.c example.c
48
+
49
+ test:
50
+ $(TEST_ENV) ./example$(EXTENSION)
51
+
52
+ clean:
53
+ rm -f example$(EXTENSION)
54
+
55
+ all: example$(EXTENSION)
@@ -0,0 +1,54 @@
1
+ # µnit
2
+
3
+ µnit is a small but full-featured unit testing framework for C. It has
4
+ no dependencies (beyond libc), is permissively licensed (MIT), and is
5
+ easy to include into any project.
6
+
7
+ For more information, see
8
+ [the µnit web site](https://nemequ.github.io/munit).
9
+
10
+ [![Build status](https://travis-ci.org/nemequ/munit.svg?branch=master)](https://travis-ci.org/nemequ/munit)
11
+ [![Windows build status](https://ci.appveyor.com/api/projects/status/db515g5ifcwjohq7/branch/master?svg=true)](https://ci.appveyor.com/project/quixdb/munit/branch/master)
12
+
13
+ ## Features
14
+
15
+ Features µnit currently includes include:
16
+
17
+ * Handy assertion macros which make for nice error messages.
18
+ * Reproducible cross-platform random number generation, including
19
+ support for supplying a seed via CLI.
20
+ * Timing of both wall-clock and CPU time.
21
+ * Parameterized tests.
22
+ * Nested test suites.
23
+ * Flexible CLI.
24
+ * Forking
25
+ ([except on Windows](https://github.com/nemequ/munit/issues/2)).
26
+ * Hiding output of successful tests.
27
+
28
+ Features µnit does not currently include, but some day may include
29
+ (a.k.a., if you file a PR…), include:
30
+
31
+ * [TAP](http://testanything.org/) support; feel free to discuss in
32
+ [issue #1](https://github.com/nemequ/munit/issues/1)
33
+
34
+ ### Include into your project with meson
35
+
36
+ In your `subprojects` folder put a `munit.wrap` file containing:
37
+
38
+ ```
39
+ [wrap-git]
40
+ directory=munit
41
+ url=https://github.com/nemequ/munit/
42
+ revision=head
43
+ ```
44
+
45
+ Then you can use a subproject fallback when you include munit as a
46
+ dependency to your project: `dependency('munit', fallback: ['munit', 'munit_dep'])`
47
+
48
+ ## Documentation
49
+
50
+ See [the µnit web site](https://nemequ.github.io/munit).
51
+
52
+ Additionally, there is a heavily-commented
53
+ [example.c](https://github.com/nemequ/munit/blob/master/example.c) in
54
+ the repository.