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