@@ -25,6 +25,13 @@ executors:
2525 CXX : g++
2626 BUILD_FLAGS : -j
2727 CTEST_FLAGS : -j4 --output-on-failure
28+ clang9 :
29+ docker :
30+ - image : conanio/clang9
31+ environment :
32+ CXX : clang++-9
33+ BUILD_FLAGS : -j
34+ CTEST_FLAGS : -j4 --output-on-failure
2835
2936 clang6 :
3037 docker :
@@ -50,10 +57,13 @@ commands:
5057 - run : make test
5158 - run : make checkperf
5259
53- cmake_prep :
60+ install_cmake :
5461 steps :
5562 - run : apt-get update -qq
5663 - run : apt-get install -y cmake
64+
65+ cmake_prep :
66+ steps :
5767 - checkout
5868
5969 cmake_build :
@@ -78,6 +88,7 @@ commands:
7888 - run : SIMDJSON_FORCE_IMPLEMENTATION=fallback ctest $CTEST_FLAGS -L per_implementation
7989 - run : ctest $CTEST_FLAGS -LE "acceptance|per_implementation" # Everything we haven't run yet, run now.
8090
91+
8192 # we not only want cmake to build and run tests, but we want also a successful installation from which we can build, link and run programs
8293 cmake_install_test : # this version builds, install, test and then verify from the installation
8394 steps :
@@ -91,60 +102,65 @@ jobs:
91102 description : Build and run tests on GCC 7 and AVX 2 with a cmake static build
92103 executor : gcc7
93104 environment : { CMAKE_FLAGS: -DSIMDJSON_GOOGLE_BENCHMARKS=ON }
94- steps : [ cmake_test_all, cmake_install_test ]
105+ steps : [ install_cmake, cmake_test_all, cmake_install_test ]
95106 clang6 :
96107 description : Build and run tests on clang 6 and AVX 2 with a cmake static build
97108 executor : clang6
98109 environment : { CMAKE_FLAGS: -DSIMDJSON_GOOGLE_BENCHMARKS=ON }
99- steps : [ init_clang6, cmake_test_all, cmake_install_test ]
100-
110+ steps : [ init_clang6, install_cmake, cmake_test_all, cmake_install_test ]
111+ # libcpp
112+ libcpp-clang9 :
113+ description : Build and run tests on clang 6 and AVX 2 with a cmake static build and libc++
114+ executor : clang9
115+ environment : { CMAKE_FLAGS: -DSIMDJSON_USE_LIBCPP=ON }
116+ steps : [ cmake_test_all, cmake_install_test ]
101117 # sanitize
102118 sanitize-gcc9 :
103119 description : Build and run tests on GCC 9 and AVX 2 with a cmake sanitize build
104120 executor : gcc9
105121 environment : { CMAKE_FLAGS: -DSIMDJSON_BUILD_STATIC=OFF -DSIMDJSON_SANITIZE=ON, CTEST_FLAGS: -j4 --output-on-failure -E checkperf }
106- steps : [ cmake_test_all ]
122+ steps : [ install_cmake, cmake_test_all ]
107123 sanitize-clang6 :
108124 description : Build and run tests on clang 6 and AVX 2 with a cmake sanitize build
109125 executor : clang6
110126 environment : { CMAKE_FLAGS: -DSIMDJSON_BUILD_STATIC=OFF -DSIMDJSON_SANITIZE=ON, CTEST_FLAGS: -j4 --output-on-failure -E checkperf }
111- steps : [ init_clang6, cmake_test_all ]
127+ steps : [ init_clang6, install_cmake, cmake_test_all ]
112128
113129 # dynamic
114130 dynamic-gcc7 :
115131 description : Build and run tests on GCC 7 and AVX 2 with a cmake dynamic build
116132 executor : gcc7
117133 environment : { CMAKE_FLAGS: -DSIMDJSON_BUILD_STATIC=OFF }
118- steps : [ cmake_test, cmake_install_test ]
134+ steps : [ install_cmake, cmake_test, cmake_install_test ]
119135 dynamic-clang6 :
120136 description : Build and run tests on clang 6 and AVX 2 with a cmake dynamic build
121137 executor : clang6
122138 environment : { CMAKE_FLAGS: -DSIMDJSON_BUILD_STATIC=OFF }
123- steps : [ init_clang6, cmake_test, cmake_install_test ]
139+ steps : [ init_clang6, install_cmake, cmake_test, cmake_install_test ]
124140
125141 # unthreaded
126142 unthreaded-gcc7 :
127143 description : Build and run tests on GCC 7 and AVX 2 *without* threads
128144 executor : gcc7
129145 environment : { CMAKE_FLAGS: -DSIMDJSON_ENABLE_THREADS=OFF }
130- steps : [ cmake_test, cmake_install_test ]
146+ steps : [ install_cmake, cmake_test, cmake_install_test ]
131147 unthreaded-clang6 :
132148 description : Build and run tests on Clang 6 and AVX 2 *without* threads
133149 executor : clang6
134150 environment : { CMAKE_FLAGS: -DSIMDJSON_ENABLE_THREADS=OFF }
135- steps : [ init_clang6, cmake_test, cmake_install_test ]
151+ steps : [ init_clang6, install_cmake, cmake_test, cmake_install_test ]
136152
137153 # noexcept
138154 noexcept-gcc7 :
139155 description : Build and run tests on GCC 7 and AVX 2 with exceptions off
140156 executor : gcc7
141157 environment : { CMAKE_FLAGS: -DSIMDJSON_EXCEPTIONS=OFF }
142- steps : [ cmake_test, cmake_install_test ]
158+ steps : [ install_cmake, cmake_test, cmake_install_test ]
143159 noexcept-clang6 :
144160 description : Build and run tests on GCC 7 and AVX 2 with exceptions off
145161 executor : clang6
146162 environment : { CMAKE_FLAGS: -DSIMDJSON_EXCEPTIONS=OFF }
147- steps : [ init_clang6, cmake_test, cmake_install_test ]
163+ steps : [ init_clang6, install_cmake, cmake_test, cmake_install_test ]
148164
149165 #
150166 # Misc.
@@ -174,7 +190,10 @@ workflows:
174190 # full multi-implementation tests
175191 - gcc7
176192 - clang6
177-
193+
194+ # libc++
195+ - libcpp-clang9
196+
178197 # full single-implementation tests
179198 - sanitize-gcc9
180199 - sanitize-clang6
0 commit comments