|
1 # v0.5.0 (2024-05-11) |
|
2 |
|
3 ### Breaking Changes |
|
4 |
|
5 - Dashes (`-`) in names of imported CMake **library** targets are now replaced with underscores (`_`). |
|
6 See [issue #501] for details. Users on older Corrosion versions will experience the same |
|
7 change when using Rust 1.79 or newer. `bin` targets are not affected by this change. |
|
8 |
|
9 [issue #501]: https://github.com/corrosion-rs/corrosion/issues/501 |
|
10 |
|
11 # v0.4.10 (2024-05-11) |
|
12 |
|
13 ### New features |
|
14 |
|
15 - `corrosion_experimental_cbindgen()` can now be called multiple times on the same Rust target, |
|
16 as long as the output header name differs. This may be useful to generate separate C and C++ |
|
17 bindings. [#507] |
|
18 - If `corrosion_link_libraries()` is called on a Rust static library target, then |
|
19 `target_link_libraries()` is called to propagate the dependencies to C/C++ consumers. |
|
20 Previously a warning was emitted in this case and the arguments ignored. [#506] |
|
21 |
|
22 ### Fixes |
|
23 |
|
24 - Combine `-framework` flags on macos to avoid linker deduplication errors [#455] |
|
25 - `corrosion_experimental_cbindgen()` will now correctly use the package name, instead of assuming that |
|
26 the package and crate name are identical. ([11e27c]) |
|
27 - Set the `AR_<triple>` variable for `cc-rs` (except for msvc targets) [#456] |
|
28 - Fix hostbuild when cross-compiling to windows [#477] |
|
29 - Consider vworks executable suffix [#504] |
|
30 - `corrosion_experimental_cbindgen()` now forwards the Rust target-triple (e.g. `aarch64-unknown-linux-gnu`) |
|
31 to cbindgen via the `TARGET` environment variable. The `hostbuild` property is considered. [#507] |
|
32 - Fix linking errors with Rust >= 1.79 and `-msvc` targets.` [#511] |
|
33 |
|
34 |
|
35 [#455]: https://github.com/corrosion-rs/corrosion/pull/455 |
|
36 [#456]: https://github.com/corrosion-rs/corrosion/pull/456 |
|
37 [#477]: https://github.com/corrosion-rs/corrosion/pull/477 |
|
38 [#504]: https://github.com/corrosion-rs/corrosion/pull/504 |
|
39 [#506]: https://github.com/corrosion-rs/corrosion/pull/506 |
|
40 [#507]: https://github.com/corrosion-rs/corrosion/pull/507 |
|
41 [#511]: https://github.com/corrosion-rs/corrosion/pull/511 |
|
42 [11e27c]: https://github.com/corrosion-rs/corrosion/pull/514/commits/11e27cde2cf32c7ed539c96eb03c2f10035de538 |
|
43 |
|
44 # v0.4.9 (2024-05-01) |
|
45 |
|
46 ### New Features |
|
47 |
|
48 - Automatically detect Rust target for OpenHarmony ([#510]). |
|
49 |
|
50 ### Fixes |
|
51 |
|
52 - Make find_package portable ([#509]). |
|
53 |
|
54 [#510]: https://github.com/corrosion-rs/corrosion/pull/510 |
|
55 [#509]: https://github.com/corrosion-rs/corrosion/pull/509 |
|
56 |
|
57 # v0.4.8 (2024-04-03) |
|
58 |
|
59 ### Fixes |
|
60 |
|
61 - Fix an internal error when passing both the `PROFILE` and `CRATES` option to |
|
62 `corrosion_import_crate()` ([#496]). |
|
63 |
|
64 [#496]: https://github.com/corrosion-rs/corrosion/pull/496 |
|
65 |
|
66 # v0.4.7 (2024-01-19) |
|
67 |
|
68 ### Fixes |
|
69 |
|
70 - The C/C++ compiler passed from corrosion to `cc-rs` can now be overriden by users setting |
|
71 `CC_<target>` (e.g. `CC_x86_64-unknown-linux-gnu=/path/to/my-compiler`) environment variables ([#475]). |
|
72 |
|
73 [#475]: https://github.com/corrosion-rs/corrosion/pull/475 |
|
74 |
|
75 # v0.4.6 (2024-01-17) |
|
76 |
|
77 ### Fixes |
|
78 |
|
79 - Fix hostbuild executables when cross-compiling from non-windows to windows targets. |
|
80 (Only with CMake >= 3.19). |
|
81 |
|
82 # v0.4.5 (2023-11-30) |
|
83 |
|
84 ### Fixes |
|
85 |
|
86 - Fix hostbuild executables when cross-compiling on windows to non-windows targets |
|
87 (Only with CMake >= 3.19). |
|
88 |
|
89 # v0.4.4 (2023-10-06) |
|
90 |
|
91 ### Fixes |
|
92 |
|
93 - Add `chimera` ([#445]) and `unikraft` ([#446]) to the list of known vendors |
|
94 |
|
95 [#445]: https://github.com/corrosion-rs/corrosion/pull/445 |
|
96 [#446]: https://github.com/corrosion-rs/corrosion/pull/446 |
|
97 |
|
98 # v0.4.3 (2023-09-09) |
|
99 |
|
100 ### Fixes |
|
101 |
|
102 - Fix the PROFILE option with CMake < 3.19 [#427] |
|
103 - Relax vendor parsing for espressif targets (removes warnings) |
|
104 - Fix an issue detecting required link libraries with Rust >= 1.71 |
|
105 when the cmake build directory is located in a Cargo workspace. |
|
106 |
|
107 # 0.4.2 (2023-07-16) |
|
108 |
|
109 ### Fixes |
|
110 |
|
111 - Fix an issue when cross-compiling with clang |
|
112 - Fix detecting required libraries with cargo 1.71 |
|
113 |
|
114 ### New features |
|
115 |
|
116 - Users can now set `Rust_RESOLVE_RUSTUP_TOOLCHAINS` to `OFF`, which will result in Corrosion |
|
117 not attempting to resolve rustc/cargo. |
|
118 |
|
119 # 0.4.1 (2023-06-03) |
|
120 |
|
121 This is a bugfix release. |
|
122 |
|
123 ### Fixes |
|
124 |
|
125 - Fixes a regression on multi-config Generators |
|
126 |
|
127 # 0.4.0 LTS (2023-06-01) |
|
128 |
|
129 No changes compared to v0.4.0-beta2. |
|
130 |
|
131 ## Announcements |
|
132 |
|
133 The `v0.4.x` LTS series will be the last release to support older CMake and Rust versions. |
|
134 If necessary, fixes will be backported to the v0.4 branch. New features will not be |
|
135 actively backported after the next major release, but community contributions are possible. |
|
136 The `v0.4.x` series is currently planned to be maintained until the end of 2024. |
|
137 |
|
138 The following major release will increase the minimum required CMake version to 3.22. The |
|
139 minimum supported Rust version will also be increased to make use of newly added flags, but |
|
140 the exact version is not fixed yet. |
|
141 |
|
142 |
|
143 ## Changes compared to v0.3.5: |
|
144 |
|
145 ### Breaking Changes |
|
146 |
|
147 - The Visual Studio Generators now require at least CMake 3.20. |
|
148 This was previously announced in the 0.3.0 release notes and is the same |
|
149 requirement as for the other Multi-Config Generators. |
|
150 - The previously deprecated function `corrosion_set_linker_language()` |
|
151 will now raise an error when called and may be removed without further |
|
152 notice in future stable releases. Use `corrosion_set_linker()` instead. |
|
153 - Improved the FindRust target triple detection, which may cause different behavior in some cases. |
|
154 The detection does not require an enabled language anymore and will always fall back |
|
155 to the default host target triple. A warning is issued if target triple detection failed. |
|
156 |
|
157 ### Potentially Breaking Changes |
|
158 |
|
159 - Corrosion now sets the `IMPORTED_NO_SONAME` property for shared rust libraries, since by |
|
160 default they won't have an `soname` field. |
|
161 If you add a rustflag like `-Clink-arg=-Wl,-soname,libmycrate.so` in your project, |
|
162 you should set this property to false on the shared rust library. |
|
163 - Corrosion now uses a mechanism to determine which native libraries need to be linked with |
|
164 Rust `staticlib` targets into C/C++ targets. The previous mechanism contained a hardcoded list. |
|
165 The new mechanism asks `rustc` which libraries are needed at minimum for a given |
|
166 target triple (with `std` support). This should not be a breaking change, but if you |
|
167 do encounter a new linking issue when upgrading with `staticlib` targets, please open an |
|
168 issue. |
|
169 |
|
170 ### New features |
|
171 |
|
172 - `corrosion_import_crate()` has two new options `LOCKED` and `FROZEN` which pass the |
|
173 `--locked` and `--frozen` flags to all invocations of cargo. |
|
174 - `FindRust` now provides cache variables containing information on the default host |
|
175 target triple: |
|
176 - `Rust_CARGO_HOST_ARCH` |
|
177 - `Rust_CARGO_HOST_VENDOR` |
|
178 - `Rust_CARGO_HOST_OS` |
|
179 - `Rust_CARGO_HOST_ENV` |
|
180 |
|
181 ### Other changes |
|
182 |
|
183 - When installing Corrosion with CMake >= 3.19, the legacy Generator tool is |
|
184 no longer built and installed by default. |
|
185 - Corrosion now issues a warning when setting the linker or setting linker |
|
186 options for a Rust static library. |
|
187 - Corrosion no longer enables the `C` language when CMake is in crosscompiling mode and |
|
188 no languages where previously enabled. This is not considered a breaking change. |
|
189 - `corrosion_import_crate()` now warns about unexpected arguments. |
|
190 |
|
191 ### Fixes |
|
192 |
|
193 - Fix building when the `dev` profile is explicitly set by the user. |
|
194 |
|
195 ## Experimental features (may be changed or removed without a major version bump) |
|
196 |
|
197 - Experimental cxxbridge and cbindgen integration. |
|
198 - Add a helper function to parse the package version from a Cargo.toml file |
|
199 - Expose rustup toolchains discovered by `FindRust` in the following cache variables |
|
200 which contain a list. |
|
201 - `Rust_RUSTUP_TOOLCHAINS`: List of toolchains names |
|
202 - `Rust_RUSTUP_TOOLCHAINS_VERSION`: List of `rustc` version of the toolchains |
|
203 - `Rust_RUSTUP_TOOLCHAINS_RUSTC_PATH`: List of the path to `rustc` |
|
204 - `Rust_RUSTUP_TOOLCHAINS_CARGO_PATH`: List of the path to `cargo`. Entries may be `NOTFOUND` if cargo |
|
205 is not available for that toolchain. |
|
206 - Add target properties `INTERFACE_CORROSION_RUSTC` and `INTERFACE_CORROSION_CARGO`, which may |
|
207 be set to paths to `rustc` and `cargo` respectively to override the toolchain for a specific |
|
208 target. |
|
209 |
|
210 # 0.3.5 (2023-03-19) |
|
211 |
|
212 - Fix building the Legacy Generator on Rust toolchains < 1.56 ([#365]) |
|
213 |
|
214 [#365]: https://github.com/corrosion-rs/corrosion/pull/365 |
|
215 |
|
216 # 0.3.4 (2023-03-02) |
|
217 |
|
218 ## Fixes |
|
219 |
|
220 - Fix hostbuild (when CMake/Cargo is configured for cross-compiling) if clang is used ([#338]). |
|
221 |
|
222 ## Other |
|
223 |
|
224 - Pass `--no-deps` to cargo metadata ([#334]). |
|
225 - Bump the legacy generator dependencies |
|
226 |
|
227 [#334]: https://github.com/corrosion-rs/corrosion/pull/334 |
|
228 [#338]: https://github.com/corrosion-rs/corrosion/pull/338 |
|
229 |
|
230 |
|
231 # 0.3.3 (2023-02-17) |
|
232 |
|
233 ## New features (Only available on CMake >= 3.19) |
|
234 |
|
235 - Add new `IMPORTED_CRATES` flag to `corrosion_import_crate()` to retrieve the list of imported crates in the current |
|
236 scope ([#312](https://github.com/corrosion-rs/corrosion/pull/312)). |
|
237 |
|
238 ## Fixes |
|
239 |
|
240 - Fix imported location target property when the rust target name contains dashes |
|
241 and a custom OUTPUT_DIRECTORY was specified by the user ([#322](https://github.com/corrosion-rs/corrosion/pull/322)). |
|
242 - Fix building for custom rust target-triples ([#316](https://github.com/corrosion-rs/corrosion/pull/316)) |
|
243 |
|
244 # 0.3.2 (2023-01-11) |
|
245 |
|
246 ## New features (Only available on CMake >= 3.19) |
|
247 |
|
248 - Add new `CRATE_TYPES` flag to `corrosion_import_crate()` to restrict which |
|
249 crate types should be imported ([#269](https://github.com/corrosion-rs/corrosion/pull/269)). |
|
250 - Add `NO_LINKER_OVERRIDE` flag to let Rust choose the default linker for the target |
|
251 instead of what Corrosion thinks is the appropriate linker driver ([#272](https://github.com/corrosion-rs/corrosion/pull/272)). |
|
252 |
|
253 ## Fixes |
|
254 |
|
255 - Fix clean target when cross-compiling ([#291](https://github.com/corrosion-rs/corrosion/pull/291)). |
|
256 - Don't set the linker for Rust static libraries ([#275](https://github.com/corrosion-rs/corrosion/pull/275)). |
|
257 - Minor fixes in FindRust [#297](https://github.com/corrosion-rs/corrosion/pull/297): |
|
258 - fix a logic error in the version detection |
|
259 - fix a logic error in `QUIET` mode when rustup is not found. |
|
260 |
|
261 # 0.3.1 (2022-12-13) |
|
262 |
|
263 ### Fixes |
|
264 |
|
265 - Fix a regression in detecting the MSVC abi ([#256]) |
|
266 - Fix an issue on macOS 13 which affected rust crates compiling C++ code in build scripts ([#254]). |
|
267 - Fix corrosion not respecting `CMAKE_<XYZ>_OUTPUT_DIRECTORY` values ([#268]). |
|
268 - Don't override rusts linker choice for the msvc abi (previously this was only skipped for msvc generators) ([#271]) |
|
269 |
|
270 [#254]: https://github.com/corrosion-rs/corrosion/pull/254 |
|
271 [#256]: https://github.com/corrosion-rs/corrosion/pull/256 |
|
272 [#268]: https://github.com/corrosion-rs/corrosion/pull/268 |
|
273 [#271]: https://github.com/corrosion-rs/corrosion/pull/271 |
|
274 |
|
275 # 0.3.0 (2022-10-31) |
|
276 |
|
277 ## Breaking |
|
278 |
|
279 - The minimum supported rust version (MSRV) was increased to 1.46, due to a cargo issue that recently |
|
280 surfaced on CI when using crates.io. On MacOS 12 and Windows-2022 at least Rust 1.54 is required. |
|
281 - MacOS 10 and 11 are no longer officially supported and untested in CI. |
|
282 - The minimum required CMake version is now 3.15. |
|
283 - Adding a `PRE_BUILD` custom command on a `cargo-build_<target_name>` CMake target will no |
|
284 longer work as expected. To support executing user defined commands before cargo build is |
|
285 invoked users should use the newly added targets `cargo-prebuild` (before all cargo build invocations) |
|
286 or `cargo-prebuild_<target_name>` as a dependency target. |
|
287 Example: `add_dependencies(cargo-prebuild code_generator_target)` |
|
288 |
|
289 ### Breaking: Removed previously deprecated functionality |
|
290 - Removed `add_crate()` function. Use `corrosio_import_crate()` instead. |
|
291 - Removed `cargo_link_libraries()` function. Use `corrosion_link_libraries()` instead. |
|
292 - Removed experimental CMake option `CORROSION_EXPERIMENTAL_PARSER`. |
|
293 The corresponding stable option is `CORROSION_NATIVE_TOOLING` albeit with inverted semantics. |
|
294 - Previously Corrosion would set the `HOST_CC` and `HOST_CXX` environment variables when invoking |
|
295 cargo build, if the environment variables `CC` and `CXX` outside of CMake where set. |
|
296 However this did not work as expected in all cases and sometimes the `HOST_CC` variable would be set |
|
297 to a cross-compiler for unknown reasons. For this reason `HOST_CC` and `HOST_CXX` are not set by |
|
298 corrosion anymore, but users can still set them manually if required via `corrosion_set_env_vars()`. |
|
299 - The `CARGO_RUST_FLAGS` family of cache variables were removed. Corrosion does not internally use them |
|
300 anymore. |
|
301 |
|
302 ## Potentially breaking |
|
303 |
|
304 - The working directory when invoking `cargo build` was changed to the directory of the Manifest |
|
305 file. This now allows cargo to pick up `.cargo/config.toml` files located in the source tree. |
|
306 ([205](https://github.com/corrosion-rs/corrosion/pull/205)) |
|
307 - Corrosion internally invokes `cargo build`. When passing arguments to `cargo build`, Corrosion |
|
308 now uses the CMake `VERBATIM` option. In rare cases this may require you to change how you quote |
|
309 parameters passed to corrosion (e.g. via `corrosion_add_target_rustflags()`). |
|
310 For example setting a `cfg` option previously required double escaping the rustflag like this |
|
311 `"--cfg=something=\\\"value\\\""`, but now it can be passed to corrosion without any escapes: |
|
312 `--cfg=something="value"`. |
|
313 - Corrosion now respects the CMake `OUTPUT_DIRECTORY` target properties. More details in the "New features" section. |
|
314 |
|
315 ## New features |
|
316 |
|
317 - Support setting rustflags for only the main target and none of its dependencies ([215](https://github.com/corrosion-rs/corrosion/pull/215)). |
|
318 A new function `corrosion_add_target_local_rustflags(target_name rustc_flag [more_flags ...])` |
|
319 is added for this purpose. |
|
320 This is useful in cases where you only need rustflags on the main-crate, but need to set different |
|
321 flags for different targets. Without "local" Rustflags this would require rebuilds of the |
|
322 dependencies when switching targets. |
|
323 - Support explicitly selecting a linker ([208](https://github.com/corrosion-rs/corrosion/pull/208)). |
|
324 The linker can be selected via `corrosion_set_linker(target_name linker)`. |
|
325 Please note that this only has an effect for targets, where the final linker invocation is done |
|
326 by cargo, i.e. targets where foreign code is linked into rust code and not the other way around. |
|
327 - Corrosion now respects the CMake `OUTPUT_DIRECTORY` target properties and copies build artifacts to the expected |
|
328 locations ([217](https://github.com/corrosion-rs/corrosion/pull/217)), if the properties are set. |
|
329 This feature requires at least CMake 3.19 and is enabled by default if supported. Please note that the `OUTPUT_NAME` |
|
330 target properties are currently not supported. |
|
331 Specifically, the following target properties are now respected: |
|
332 - [ARCHIVE_OUTPUT_DIRECTORY](https://cmake.org/cmake/help/latest/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY.html) |
|
333 - [LIBRARY_OUTPUT_DIRECTORY](https://cmake.org/cmake/help/latest/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.html) |
|
334 - [RUNTIME_OUTPUT_DIRECTORY](https://cmake.org/cmake/help/latest/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.html) |
|
335 - [PDB_OUTPUT_DIRECTORY](https://cmake.org/cmake/help/latest/prop_tgt/PDB_OUTPUT_DIRECTORY.html) |
|
336 - Corrosion now supports packages with potentially multiple binaries (bins) and a library (lib) at the |
|
337 same time. The only requirement is that the names of all `bin`s and `lib`s in the whole project must be unique. |
|
338 Users can set the names in the `Cargo.toml` by adding `name = <unique_name>` in the `[[bin]]` and `[lib]` tables. |
|
339 - FindRust now has improved support for the `VERSION` option of `find_package` and will now attempt to find a matching |
|
340 toolchain version. Previously it was only checked if the default toolchain matched to required version. |
|
341 - For rustup managed toolchains a CMake error is issued with a helpful message if the required target for |
|
342 the selected toolchain is not installed. |
|
343 |
|
344 ## Fixes |
|
345 |
|
346 - Fix a CMake developer Warning when a Multi-Config Generator and Rust executable targets |
|
347 ([#213](https://github.com/corrosion-rs/corrosion/pull/213)). |
|
348 - FindRust now respects the `QUIET` option to `find_package()` in most cases. |
|
349 |
|
350 ## Deprecation notice |
|
351 |
|
352 - Support for the MSVC Generators with CMake toolchains before 3.20 is deprecated and will be removed in the next |
|
353 release (v0.4). All other Multi-config Generators already require CMake 3.20. |
|
354 |
|
355 ## Internal Changes |
|
356 |
|
357 - The CMake Generator written in Rust and `CorrosionGenerator.cmake` which are responsible for parsing |
|
358 `cargo metadata` output to create corresponding CMake targets for all Rust targets now share most code. |
|
359 This greatly simplified the CMake generator written in Rust and makes it much easier maintaining and adding |
|
360 new features regardless of how `cargo metadata` is parsed. |
|
361 |
|
362 # 0.2.2 (2022-09-01) |
|
363 |
|
364 ## Fixes |
|
365 |
|
366 - Do not use C++17 in the tests (makes tests work with older C++ compilers) ([184](https://github.com/corrosion-rs/corrosion/pull/184)) |
|
367 - Fix finding cargo on NixOS ([192](https://github.com/corrosion-rs/corrosion/pull/192)) |
|
368 - Fix issue with Rustflags test when using a Build type other than Debug and Release ([203](https://github.com/corrosion-rs/corrosion/pull/203)). |
|
369 |
|
370 # 0.2.1 (2022-05-07) |
|
371 |
|
372 ## Fixes |
|
373 |
|
374 - Fix missing variables provided by corrosion, when corrosion is used as a subdirectory ([181](https://github.com/corrosion-rs/corrosion/pull/181)): |
|
375 Public [Variables](https://github.com/corrosion-rs/corrosion#information-provided-by-corrosion) set |
|
376 by Corrosion were not visible when using Corrosion as a subdirectory, due to the wrong scope of |
|
377 the variables. This was fixed by promoting the respective variables to Cache variables. |
|
378 |
|
379 # 0.2.0 (2022-05-05) |
|
380 |
|
381 ## Breaking changes |
|
382 |
|
383 - Removed the integrator build script ([#156](https://github.com/corrosion-rs/corrosion/pull/156)). |
|
384 The build script provided by corrosion (for rust code that links in foreign code) is no longer necessary, |
|
385 so users can just remove the dependency. |
|
386 |
|
387 ## Deprecations |
|
388 |
|
389 - Direct usage of the following target properties has been deprecated. The names of the custom properties are |
|
390 no longer considered part of the public API and may change in the future. Instead, please use the functions |
|
391 provided by corrosion. Internally different property names are used depending on the CMake version. |
|
392 - `CORROSION_FEATURES`, `CORROSION_ALL_FEATURES`, `CORROSION_NO_DEFAULT_FEATURES`. Instead please use |
|
393 `corrosion_set_features()`. See the updated Readme for details. |
|
394 - `CORROSION_ENVIRONMENT_VARIABLES`. Please use `corrosion_set_env_vars()` instead. |
|
395 - `CORROSION_USE_HOST_BUILD`. Please use `corrosion_set_hostbuild()` instead. |
|
396 - The Minimum CMake version will likely be increased for the next major release. At the very least we want to drop |
|
397 support for CMake 3.12, but requiring CMake 3.16 or even 3.18 is also on the table. If you are using a CMake version |
|
398 that would be no longer supported by corrosion, please comment on issue |
|
399 [#168](https://github.com/corrosion-rs/corrosion/issues/168), so that we can gauge the number of affected users. |
|
400 |
|
401 ## New features |
|
402 |
|
403 - Add `NO_STD` option to `corrosion_import_crate` ([#154](https://github.com/corrosion-rs/corrosion/pull/154)). |
|
404 - Remove the requirement of building the Rust based generator crate for CMake >= 3.19. This makes using corrosion as |
|
405 a subdirectory as fast as the installed version (since everything is done in CMake). |
|
406 ([#131](https://github.com/corrosion-rs/corrosion/pull/131), [#161](https://github.com/corrosion-rs/corrosion/pull/161)) |
|
407 If you do choose to install Corrosion, then by default the old Generator is still compiled and installed, so you can |
|
408 fall back to using it in case you use multiple cmake versions on the same machine for different projects. |
|
409 |
|
410 ## Fixes |
|
411 |
|
412 - Fix Corrosion on MacOS 11 and 12 ([#167](https://github.com/corrosion-rs/corrosion/pull/167) and |
|
413 [#164](https://github.com/corrosion-rs/corrosion/pull/164)). |
|
414 - Improve robustness of parsing the LLVM version (exported in `Rust_LLVM_VERSION`). It now also works for |
|
415 Rust versions, where the LLVM version is reported as `MAJOR.MINOR`. ([#148](https://github.com/corrosion-rs/corrosion/pull/148)) |
|
416 - Fix a bug which occurred when Corrosion was added multiple times via `add_subdirectory()` |
|
417 ([#143](https://github.com/corrosion-rs/corrosion/pull/143)). |
|
418 - Set `CC_<target_triple_undercore>` and `CXX_<target_triple_undercore>` environment variables for the invocation of |
|
419 `cargo build` to the compilers selected by CMake (if any) |
|
420 ([#138](https://github.com/corrosion-rs/corrosion/pull/138) and [#161](https://github.com/corrosion-rs/corrosion/pull/161)). |
|
421 This should ensure that C dependencies built in cargo buildscripts via [cc-rs](https://github.com/alexcrichton/cc-rs) |
|
422 use the same compiler as CMake built dependencies. Users can override the compiler by specifying the higher |
|
423 priority environment variable variants with dashes instead of underscores (See cc-rs documentation for details). |
|
424 - Fix Ninja-Multiconfig Generator support for CMake versions >= 3.20. Previous CMake versions are missing a feature, |
|
425 which prevents us from supporting the Ninja-Multiconfig generator. ([#137](https://github.com/corrosion-rs/corrosion/pull/137)) |
|
426 |
|
427 |
|
428 # 0.1.0 (2022-02-01) |
|
429 |
|
430 This is the first release of corrosion after it was moved to the new corrosion-rs organization. |
|
431 Since there are no previous releases, this is not a complete changelog but only lists changes since |
|
432 September 2021. |
|
433 |
|
434 ## New features |
|
435 - [Add --profile support for rust >= 1.57](https://github.com/corrosion-rs/corrosion/pull/130): |
|
436 Allows users to specify a custom cargo profile with |
|
437 `corrosion_import_crate(... PROFILE <profilename>)`. |
|
438 - [Add support for specifying per-target Rustflags](https://github.com/corrosion-rs/corrosion/pull/127): |
|
439 Rustflags can be added via `corrosion_add_target_rustflags(<target_name> [rustflags1...])` |
|
440 - [Add `Rust_IS_NIGHTLY` and `Rust_LLVM_VERSION` variables](https://github.com/corrosion-rs/corrosion/pull/123): |
|
441 This may be useful if you want to conditionally enabled features when using a nightly toolchain |
|
442 or a specific LLVM Version. |
|
443 - [Let `FindRust` fail gracefully if rustc is not found](https://github.com/corrosion-rs/corrosion/pull/111): |
|
444 This allows using `FindRust` in a more general setting (without corrosion). |
|
445 - [Add support for cargo feature selection](https://github.com/corrosion-rs/corrosion/pull/108): |
|
446 See the [README](https://github.com/corrosion-rs/corrosion#cargo-feature-selection) for details on |
|
447 how to select features. |
|
448 |
|
449 |
|
450 ## Fixes |
|
451 - [Fix the cargo-clean target](https://github.com/corrosion-rs/corrosion/pull/129) |
|
452 - [Fix #84: CorrosionConfig.cmake looks in wrong place for Corrosion::Generator when CMAKE_INSTALL_LIBEXEC is an absolute path](https://github.com/corrosion-rs/corrosion/pull/122/commits/6f29af3ac53917ca2e0638378371e715a18a532d) |
|
453 - [Fix #116: (Option CORROSION_INSTALL_EXECUTABLE not working)](https://github.com/corrosion-rs/corrosion/commit/97d44018fac1b1a2a7c095288c628f5bbd9b3184) |
|
454 - [Fix building on Windows with rust >= 1.57](https://github.com/corrosion-rs/corrosion/pull/120) |
|
455 |
|
456 ## Known issues: |
|
457 - Corrosion is currently not working on macos-11 and newer. See issue [#104](https://github.com/corrosion-rs/corrosion/issues/104). |
|
458 Contributions are welcome. |