1## [1.7.0] - 2023-12-31
2
3### Added
4- Added support for `clang` 17.0.x
5
6## [1.6.1] - 2023-03-29
7
8### Fixed
9- Improved error message when calling a `libclang` function that is not supported by the loaded `libclang` instance (https://github.com/rust-lang/rust-bindgen/issues/2446)
10
11## [1.6.0] - 2023-02-18
12
13### Changed
14- MinGW directories are not searched for `libclang` instances on Windows when
15compiling for an MSVC target
16- Bumped minimum supported Rust version (MSRV) to 1.51.0
17- Changed Windows search directory preferences (`libclang` instances from
18Visual Studio installs are now the lowest priority rather than the second
19highest)
20
21## ~~[1.5.1] - 2023-02-05~~ (YANKED)
22
23### Changed
24- MinGW directories are not searched for `libclang` instances on Windows when
25compiling for an MSVC target
26
27## ~~[1.5.0] - 2023-02-05~~ (YANKED)
28
29### Changed
30- Bumped minimum supported Rust version (MSRV) to 1.51.0
31- Changed Windows search directory preferences (`libclang` instances from
32Visual Studio installs are now the lowest priority rather than the second
33highest)
34
35### Added
36- Added additional support for `clang` 16.0.x
37
38## [1.4.0] - 2022-09-22
39
40### Changed
41- The value of an `EntityKind` enum variant
42(`EntityKind::CXCursor_TranslationUnit`) has been updated for Clang 15.0 and
43later to match the
44[breaking change made in `libclang`](https://github.com/llvm/llvm-project/commit/bb83f8e70bd1d56152f02307adacd718cd67e312#diff-674613a0e47f4e66cc19061e28e3296d39be2d124dceefb68237b30b8e241e7c)
45
46### Added
47- Added support for `clang` 16.0.x
48- Added support for `clang` 15.0.x
49- Added support for `clang` 14.0.x
50
51## [1.3.3] - 2022-05-28
52
53### Fixed
54- Fixed `Clang::find` to check that `CLANG_PATH` is an executable file before
55selecting it
56
57## [1.3.2] - 2022-05-18
58
59### Added
60- Added support for illumos and derivatives
61
62## [1.3.1] - 2022-02-03
63
64### Added
65- Added missing `clang_getToken` function
66
67## [1.3.0] - 2021-10-31
68
69### Added
70- Added support for `clang` 13.0.x
71- Added support for `clang` 12.0.x
72- Added support for the Haiku operating system
73
74## [1.2.2] - 2021-09-02
75
76### Fixed
77- Fixed handling of paths that contain characters that have special meaning in
78glob patterns (e.g., `[` or `]`)
79
80## [1.2.1] - 2021-08-24
81
82### Changed
83- Updated build script to check the install location used by the
84[Scoop](https://scoop.sh/) command-line installer on Windows
85
86### Fixed
87- Updated build script to support environments where the `PATH` environment
88variable is not set
89
90## [1.2.0] - 2021-04-08
91
92### Changed
93- Changed `Clang::find` to prefer target-prefixed binaries when a `-target`
94argument is provided (e.g., if the arguments `-target` and
95`x86_64-unknown-linux-gnu` are provided, a target-prefixed Clang executable
96such as `x86_64-unknown-linux-gnu-clang` will be preferred over a non-target
97prefixed Clang executable)
98
99### Fixed
100- Fixed build script to split paths in environment variables (e.g.,
101`LD_LIBRARY_PATH`) using the appropriate separator for the platform (previously
102`:` was used as the separator but some platforms such as Windows use `;`)
103
104## [1.1.1] - 2021-02-19
105
106### Changed
107- Bumped `libloading` version to `0.7`
108
109## [1.1.0] - 2021-02-09
110
111### Changed
112- Added Visual Studio LLVM component directory to search paths on Windows
113([#121](https://github.com/KyleMayes/clang-sys/issues/121))
114
115### Added
116- Added support for `clang` 11.0.x
117
118## [1.0.3] - 2020-11-19
119
120### Fixed
121- Fixed `Clang::find` panicking when `llvm-config` or `xcode-build` don't output anything to `stdout`
122
123## [1.0.2] - 2020-11-17
124
125### Fixed
126- Fixed `Clang::find` to properly search directories returned by the
127`llvm-config --bindir` and `xcodebuild -find clang` commands
128- Improved version selection algorithm in the case where there are multiple
129instances of `libclang` with the highest version found; previously the lowest
130priority instance would be selected instead of the highest priority instance
131(e.g., the versions found by searching the fallback directories were preferred
132over the versions found by searching the `llvm-config --prefix` directory)
133
134## [1.0.1] - 2020-10-01
135
136### Changed
137- Improved panic error message when calling an unloaded function
138
139## [1.0.0] - 2020-07-14
140
141### Changed
142- Bumped `libloading` version to `0.6.0`
143- Updated build script to not print warnings about failures to execute
144`llvm-config` and `xcode-select` unless an instance of `libclang` is not found
145
146### Added
147- Added support for `clang` 10.0.x
148
149### Removed
150- Removed `gte_clang_*` Cargo features (these were an implementation detail)
151
152## [0.29.3] - 2020-03-31
153
154### Added
155- Added ability to determine version of runtime-linked instance of `libclang`
156
157## [0.29.2] - 2020-03-09
158
159### Added
160- Revert unnecessary increase of minimum version of `libc` and `libloading`
161
162## [0.29.2] - 2020-03-09
163
164### Added
165- Revert unnecessary increase of minimum version of `libc` and `libloading`
166
167## [0.29.1] - 2020-03-06
168
169### Added
170- Added support for finding instances of `libclang` matching `libclang-*.so.*`
171
172## [0.29.0] - 2020-02-17
173
174### Changed
175- Wrapped function pointer fields in `Option` in the `CXCursorAndRangeVisitor`
176and `IndexerCallbacks` structs (to permit nullability and to avoid undefined
177behavior caused by `Default` implementations for these structs which returns a
178zeroed value)
179
180### Added
181- Added support for `clang` 9.0.x
182- Added missing `CXCallingConv_AArch64VectorCall` variant to `CXCallingConv` enum
183- Added missing `clang_CompileCommand_getNumMappedSources` function
184
185## [0.28.1] - 2019-07-28
186
187### Changed
188- Bumped `glob` version to `0.3.0`
189- Improved error message when an invocation of an executable is not successful
190- Allowed `LIBCLANG_PATH` to refer to a specific `libclang` instance (e.g.,
191  `/usr/local/lib/libclang.so.10`)
192
193### Fixed
194- Fixed
195  [`libclang-cpp`](https://github.com/llvm-mirror/clang/commit/90d6722bdcbc2af52306f7e948c556ad6185ac48)
196  being linked instead of `libclang`
197
198## [0.28.0] - 2019-02-17
199
200### Changed
201- Changed `llvm-config` to be first search candidate on macOS
202
203### Added
204- Added support for `clang` 8.0.x
205
206### Removed
207- Removed `assert-minimum` feature
208- Removed version detection for libraries without versions embedded in the filename
209
210## [0.27.0] - 2019-01-10
211
212### Changed
213- Added version detection for libraries without versions embedded in the filename
214
215### Added
216- Added `assert-minimum` feature (see `README.md` for details)
217
218## [0.26.4] - 2018-12-29
219
220### Changed
221- Added shared library path to `SharedLibrary` struct
222
223## [0.26.3] - 2018-11-14
224
225### Changed
226- Disable default features of `libc` dependency
227
228## [0.26.2] - 2018-11-03
229
230### Fixed
231- Fixed dynamic linking on macOS
232
233## [0.26.1] - 2018-10-10
234
235### Fixed
236- Fixed support for finding libraries in `bin` directories on Windows
237
238## [0.26.0] - 2018-10-07
239
240### Changed
241- Added support for finding libraries with version suffixes on Linux when using runtime linking (e.g., `libclang.so.1`)
242
243## [0.25.0] - 2018-10-06
244
245### Changed
246- Added support for versioned libraries on BSDs
247
248## [0.24.0] - 2018-09-15
249
250### Changed
251- Reworked finding of libraries (see `README.md` for details)
252
253### Added
254- Added support for `clang` 7.0.x
255
256## [0.23.0] - 2018-06-16
257
258### Changed
259- Changed `Clang::find` to skip dynamic libraries for an incorrect architecture on Windows
260
261## [0.22.0] - 2018-03-11
262
263### Added
264- Added support for `clang` 6.0.x
265- Bumped `libc` version to `0.2.39`
266- Bumped `libloading` version to `0.5.0`
267
268## [0.21.2] - 2018-02-17
269
270### Changed
271- Added original errors to error messages
272- Added support for searching for libraries in `LD_LIBRARY_PATH` directories
273
274## [0.21.1] - 2017-11-24
275
276### Changed
277- Improved finding of versioned libraries (e.g., `libclang-3.9.so`)
278
279### Fixed
280* Fixed compilation failures on the beta and nightly channels caused by a [compiler bug](https://github.com/KyleMayes/clang-sys/pull/69)
281
282## [0.21.0] - 2017-10-11
283
284### Changed
285* Replaced `bitflags` usage with constants which avoids crashes on 32-bit Linux platforms
286
287## [0.20.1] - 2017-09-16
288
289### Fixed
290- Fixed static linking
291
292## [0.20.0] - 2017-09-14
293
294### Added
295- Added support for `clang` 5.0.x
296- Added `clang` as a link target of this package
297- Added dummy implementations of `is_loaded` for builds with the `static` Cargo feature enabled
298
299## [0.19.0] - 2017-07-02
300
301### Changed
302- Bumped `bitflags` version to `0.9.1`
303- Added `args` parameter to `Clang::new` function which passes arguments to the Clang executable
304
305## [0.18.0] - 2017-05-16
306
307### Changed
308- Improved finding of versioned libraries (e.g., `libclang.so.3.9`)
309
310## [0.17.0] - 2017-05-08
311
312### Changed
313- Changed storage type of include search paths from `Vec<PathBuf>` to `Option<Vec<PathBuf>>`
314
315## [0.16.0] - 2017-05-02
316
317### Changed
318- Bumped `libloading` version to `0.4.0`
319
320## [0.15.2] - 2017-04-28
321
322### Fixed
323- Fixed finding of `libclang.so.1` on Linux
324
325## [0.15.1] - 2017-03-29
326
327### Fixed
328- Fixed static linking when libraries are in [different directories](https://github.com/KyleMayes/clang-sys/issues/50)
329
330## [0.15.0] - 2017-03-13
331
332### Added
333- Added support for `clang` 4.0.x
334
335### Changed
336- Changed functions in the `Functions` struct to be `unsafe` (`runtime` feature only)
337- Changed `Clang::find` method to ignore directories and non-executable files
338- Changed `Clang::find` to skip dynamic libraries for an incorrect architecture on FreeBSD and Linux
339- Bumped `bitflags` version to `0.7.0`
340
341## [0.14.0] - 2017-01-30
342
343### Changed
344- Changed all enum types from tuple structs to raw integers to avoid
345  [segmentation faults](https://github.com/rust-lang/rust/issues/39394) on some platforms
346
347## [0.13.0] - 2017-01-29
348
349### Changed
350- Changed all opaque pointers types from tuple structs to raw pointers to avoid
351  [segmentation faults](https://github.com/rust-lang/rust/issues/39394) on some platforms
352
353## [0.12.0] - 2016-12-13
354
355### Changed
356- Altered the runtime linking API to allow for testing the presence of functions
357
358## [0.11.1] - 2016-12-07
359
360### Added
361- Added support for linking to Clang on Windows from unofficial LLVM sources such as MSYS and MinGW
362
363## [0.11.0] - 2016-10-07
364
365### Changed
366- Changed all enums from Rust enums to typed constants to avoid
367  [undefined behavior](https://github.com/KyleMayes/clang-sys/issues/42)
368
369## [0.10.1] - 2016-08-21
370
371### Changed
372- Changed static linking on FreeBSD and macOS to link against `libc++` instead of `libstd++`
373
374## [0.10.0] - 2016-08-01
375
376### Changed
377- Added `runtime` Cargo feature that links to `libclang` shared library at runtime
378- Added `from_raw` method to `CXTypeLayoutError` enum
379- Added implementations of `Deref` for opaque FFI structs
380- Changed `Default` implementations for structs to zero out the struct
381
382## [0.9.0] - 2016-07-21
383
384### Added
385- Added documentation bindings
386
387## [0.8.1] - 2016-07-20
388
389### Changed
390- Added `CLANG_PATH` environment variable for providing a path to `clang` executable
391- Added usage of `llvm-config` to search for `clang`
392- Added usage of `xcodebuild` to search for `clang` on macOS
393
394## [0.8.0] - 2016-07-18
395
396### Added
397- Added support for `clang` 3.9.x
398
399### Changed
400- Bumped `libc` version to `0.2.14`
401
402### Fixed
403- Fixed `LIBCLANG_PATH` usage on Windows to search both the `bin` and `lib` directories
404- Fixed search path parsing on macOS
405- Fixed search path parsing on Windows
406- Fixed default search path ordering on macOS
407
408## [0.7.2] - 2016-06-17
409
410### Fixed
411- Fixed finding of `clang` executables when system has executables matching `clang-*`
412  (e.g., `clang-format`)
413
414## [0.7.1] - 2016-06-10
415
416### Changed
417- Bumped `libc` version to `0.2.12`
418
419### Fixed
420- Fixed finding of `clang` executables suffixed by their version (e.g., `clang-3.5`)
421
422## [0.7.0] - 2016-05-31
423
424### Changed
425- Changed `Clang` struct `version` field type to `Option<CXVersion>`
426
427## [0.6.0] - 2016-05-26
428
429### Added
430- Added `support` module
431
432### Fixed
433- Fixed `libclang` linking on FreeBSD
434- Fixed `libclang` linking on Windows with the MSVC toolchain
435- Improved `libclang` static linking
436
437## [0.5.4] - 20160-5-19
438
439### Changed
440- Added implementations of `Default` for FFI structs
441
442## [0.5.3] - 2016-05-17
443
444### Changed
445- Bumped `bitflags` version to `0.7.0`
446
447## [0.5.2] - 2016-05-12
448
449### Fixed
450- Fixed `libclang` static linking
451
452## [0.5.1] - 2016-05-10
453
454### Fixed
455- Fixed `libclang` linking on macOS
456- Fixed `libclang` linking on Windows
457
458## [0.5.0] - 2016-05-10
459
460### Removed
461- Removed `rustc_version` dependency
462- Removed support for `LIBCLANG_STATIC` environment variable
463
464### Changed
465- Bumped `bitflags` version to `0.6.0`
466- Bumped `libc` version to `0.2.11`
467- Improved `libclang` search path
468- Improved `libclang` static linking
469
470## [0.4.2] - 2016-04-20
471
472### Changed
473- Bumped `libc` version to `0.2.10`
474
475## [0.4.1] - 2016-04-02
476
477### Changed
478- Bumped `libc` version to `0.2.9`
479- Bumped `rustc_version` version to `0.1.7`
480
481## [0.4.0] - 2016-03-28
482
483### Removed
484- Removed support for `clang` 3.4.x
485
486## [0.3.1] - 2016-03-21
487
488### Added
489- Added support for finding `libclang`
490
491## [0.3.0] - 2016-03-16
492
493### Removed
494- Removed build system types and functions
495
496### Added
497- Added support for `clang` 3.4.x
498
499### Changed
500- Bumped `bitflags` version to `0.5.0`
501- Bumped `libc` version to `0.2.8`
502
503## [0.2.1] - 2016-02-13
504
505### Changed
506- Simplified internal usage of conditional compilation
507- Bumped `bitflags` version to `0.4.0`
508- Bumped `libc` version to `0.2.7`
509- Bumped `rustc_version` version to `0.1.6`
510
511## [0.2.0] - 2016-02-12
512
513### Added
514- Added support for `clang` 3.8.x
515
516## [0.1.2] - 2015-12-29
517
518### Added
519- Added derivations of `Debug` for FFI structs
520
521## [0.1.1] - 2015-12-26
522
523### Added
524- Added derivations of `PartialOrd` and `Ord` for FFI enums
525
526## [0.1.0] - 2015-12-22
527- Initial release
528