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