Conversation
|
Somehow travis managed to hang, you'd be fine in switching to github actions? |
|
This needs docs and tests, but why is this different from adding an include file with whatever code you want? It seems better than stashing all the C code in the config file. |
|
Somehow your reply got lost in my mailbox, I'll update it with docs and tests. My main use-case is to add the crate version information automatically in cargo-c in a cleaner way and probably more people using both bindgen and cbindgen may enjoy having the symmetry :) |
f0bebc1 to
39ba221
Compare
|
this seems very similar to the solution needed for issue #303, which was worked on a bit in PR #306 where the proposed syntax was in this PR which would leave room for Then this PR could implement only: This is mostly a suggestion on config naming/structuring, though I agree with @emilio that it is nice to keep code in separate files, so I used that in my example config suggestion above. |
|
The two approaches solve two different problems I'm afraid. |
|
I am curious about how raw_lines vs file inclusion are different problems. FYI: I was just chiming in with idea... did not mean to derail anything. I'm just a bystander, learning about cbindgen :) |
|
Embedding already existing files is really an half step from just adding them to the distribution and just |
|
@emilio I rebased it again, can it get in? |
emilio
left a comment
There was a problem hiding this comment.
Ok, so the only difference between this and header is that it goes after the includes, inside the include guard.
I'd prefer this to be a string for consistency with other options (header / trailer / etc...), and maybe we should call it after_includes or something? But yeah this looks ok otherwise.
|
I renamed the option as you suggested now :) |
|
It seems you didn't turn it into a string, is there a strong reason for that? I'd prefer it to be a string for consistency with the other options, so for example instead of: You'd do: |
f2bfc26 to
80bac20
Compare
Not a strong reason, patch updated. I just overlooked that part, sorry |
emilio
left a comment
There was a problem hiding this comment.
Just some final nits to the docs to reflect the latest change. And please if you don't mind reword the commit message to mention then new name too?
docs.md
Outdated
| cpp_compat = false | ||
|
|
||
| # A list of lines to add verbatim after the includes block | ||
| after_includes = ["#define VERSION 1", ""] |
There was a problem hiding this comment.
Docs are still using the old syntax.
template.toml
Outdated
| sys_includes = [] | ||
| includes = [] | ||
| no_includes = false | ||
| after_includes = [] |
There was a problem hiding this comment.
Template is still using the wrong syntax.
Let the user add raw C code in the generated header after the include blocks. It matches what bindgen provides with the raw_lines option.
|
Now it should be fine :) |
emilio
left a comment
There was a problem hiding this comment.
Thanks, looks fine!
Sorry this took such a long time.
1519: Bump cbindgen from 0.14.1 to 0.14.2 r=tomtau a=dependabot-preview[bot] Bumps [cbindgen](https://github.com/eqrion/cbindgen) from 0.14.1 to 0.14.2. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/eqrion/cbindgen/blob/master/CHANGES">cbindgen's changelog</a>.</em></p> <blockquote> <h2>0.14.2</h2> <pre><code> * Fixed minimal dependency versions. ([#507](mozilla/cbindgen#507)) * Add an option to write pragma once. ([#511](mozilla/cbindgen#511)) * Fix submodule scanning for implicit Rust 2018 modules. ([#512](mozilla/cbindgen#512)) * Fix dependency parsing / scanning to handle target-specific versions. ([#513](mozilla/cbindgen#513)) * Use heck for case conversion. ([#514](mozilla/cbindgen#514)) * Add support for verbatim content after includes. ([#416](mozilla/cbindgen#416)) * Allow to add attributes to most generated functions. ([#515](mozilla/cbindgen#515)) </code></pre> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eqrion/cbindgen/commit/b6b88f8c3024288287368b377e4d928ddcd2b9e2"><code>b6b88f8</code></a> Release v0.14.2</li> <li><a href="https://github.com/eqrion/cbindgen/commit/a05a223704e206679068cf84da09a7b49ea202a4"><code>a05a223</code></a> tests: Add tests for attribute annotations.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/5ee5b3ee8884b256decf6e4d91563799a986d758"><code>5ee5b3e</code></a> ir: Allow per-method annotations for all the auto-generated struct and enum m...</li> <li><a href="https://github.com/eqrion/cbindgen/commit/be8e6ec876972b28519803e041ae12b4c63948fc"><code>be8e6ec</code></a> enum: Allow to store annotations for empty variants.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/1a824c04f21f22d1488609cedf8d0c7b13bb83eb"><code>1a824c0</code></a> Add support for verbatim content after includes</li> <li><a href="https://github.com/eqrion/cbindgen/commit/d0d67165561c6249d39148bc1b63d62d713fdd1a"><code>d0d6716</code></a> ir: Minor cleanup to the cfg code.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/8139fbf3c7db6e0635161ecc5631d865ac4e3d4e"><code>8139fbf</code></a> Fix <a href="https://github-redirect.dependabot.com/eqrion/cbindgen/issues/418">#418</a>: Use heck for case conversion</li> <li><a href="https://github.com/eqrion/cbindgen/commit/4beb526516fa6e1de38cebc3f02b1d095f8947d1"><code>4beb526</code></a> Fix <a href="https://github-redirect.dependabot.com/eqrion/cbindgen/issues/254">#254</a> (<a href="https://github-redirect.dependabot.com/eqrion/cbindgen/issues/512">#512</a>)</li> <li><a href="https://github.com/eqrion/cbindgen/commit/ca1c0b27b66edc372d7c190e8d22e41125a985a4"><code>ca1c0b2</code></a> Run cargo-fmt</li> <li><a href="https://github.com/eqrion/cbindgen/commit/1df5129d1a227d5f1dbf66b6d8fe66eba44ae880"><code>1df5129</code></a> Fix 2015 edition module path resolution</li> <li>Additional commits viewable in <a href="https://github.com/eqrion/cbindgen/compare/v0.14.1...v0.14.2">compare view</a></li> </ul> </details> <br /> [](https://dependabot.com/compatibility-score/?dependency-name=cbindgen&package-manager=cargo&previous-version=0.14.1&new-version=0.14.2) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) </details> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Bump cbindgen from 0.14.1 to 0.14.2 Bumps [cbindgen](https://github.com/eqrion/cbindgen) from 0.14.1 to 0.14.2. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/eqrion/cbindgen/blob/master/CHANGES">cbindgen's changelog</a>.</em></p> <blockquote> <h2>0.14.2</h2> <pre><code> * Fixed minimal dependency versions. ([#507](mozilla/cbindgen#507)) * Add an option to write pragma once. ([#511](mozilla/cbindgen#511)) * Fix submodule scanning for implicit Rust 2018 modules. ([#512](mozilla/cbindgen#512)) * Fix dependency parsing / scanning to handle target-specific versions. ([#513](mozilla/cbindgen#513)) * Use heck for case conversion. ([#514](mozilla/cbindgen#514)) * Add support for verbatim content after includes. ([#416](mozilla/cbindgen#416)) * Allow to add attributes to most generated functions. ([#515](mozilla/cbindgen#515)) </code></pre> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eqrion/cbindgen/commit/b6b88f8c3024288287368b377e4d928ddcd2b9e2"><code>b6b88f8</code></a> Release v0.14.2</li> <li><a href="https://github.com/eqrion/cbindgen/commit/a05a223704e206679068cf84da09a7b49ea202a4"><code>a05a223</code></a> tests: Add tests for attribute annotations.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/5ee5b3ee8884b256decf6e4d91563799a986d758"><code>5ee5b3e</code></a> ir: Allow per-method annotations for all the auto-generated struct and enum m...</li> <li><a href="https://github.com/eqrion/cbindgen/commit/be8e6ec876972b28519803e041ae12b4c63948fc"><code>be8e6ec</code></a> enum: Allow to store annotations for empty variants.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/1a824c04f21f22d1488609cedf8d0c7b13bb83eb"><code>1a824c0</code></a> Add support for verbatim content after includes</li> <li><a href="https://github.com/eqrion/cbindgen/commit/d0d67165561c6249d39148bc1b63d62d713fdd1a"><code>d0d6716</code></a> ir: Minor cleanup to the cfg code.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/8139fbf3c7db6e0635161ecc5631d865ac4e3d4e"><code>8139fbf</code></a> Fix <a href="https://github-redirect.dependabot.com/eqrion/cbindgen/issues/418">#418</a>: Use heck for case conversion</li> <li><a href="https://github.com/eqrion/cbindgen/commit/4beb526516fa6e1de38cebc3f02b1d095f8947d1"><code>4beb526</code></a> Fix <a href="https://github-redirect.dependabot.com/eqrion/cbindgen/issues/254">#254</a> (<a href="https://github-redirect.dependabot.com/eqrion/cbindgen/issues/512">#512</a>)</li> <li><a href="https://github.com/eqrion/cbindgen/commit/ca1c0b27b66edc372d7c190e8d22e41125a985a4"><code>ca1c0b2</code></a> Run cargo-fmt</li> <li><a href="https://github.com/eqrion/cbindgen/commit/1df5129d1a227d5f1dbf66b6d8fe66eba44ae880"><code>1df5129</code></a> Fix 2015 edition module path resolution</li> <li>Additional commits viewable in <a href="https://github.com/eqrion/cbindgen/compare/v0.14.1...v0.14.2">compare view</a></li> </ul> </details> <br /> [](https://dependabot.com/compatibility-score/?dependency-name=cbindgen&package-manager=cargo&previous-version=0.14.1&new-version=0.14.2) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) </details>
Bump cbindgen from 0.14.1 to 0.14.2 Bumps [cbindgen](https://github.com/eqrion/cbindgen) from 0.14.1 to 0.14.2. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/eqrion/cbindgen/blob/master/CHANGES">cbindgen's changelog</a>.</em></p> <blockquote> <h2>0.14.2</h2> <pre><code> * Fixed minimal dependency versions. ([#507](mozilla/cbindgen#507)) * Add an option to write pragma once. ([#511](mozilla/cbindgen#511)) * Fix submodule scanning for implicit Rust 2018 modules. ([#512](mozilla/cbindgen#512)) * Fix dependency parsing / scanning to handle target-specific versions. ([#513](mozilla/cbindgen#513)) * Use heck for case conversion. ([#514](mozilla/cbindgen#514)) * Add support for verbatim content after includes. ([#416](mozilla/cbindgen#416)) * Allow to add attributes to most generated functions. ([#515](mozilla/cbindgen#515)) </code></pre> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eqrion/cbindgen/commit/b6b88f8c3024288287368b377e4d928ddcd2b9e2"><code>b6b88f8</code></a> Release v0.14.2</li> <li><a href="https://github.com/eqrion/cbindgen/commit/a05a223704e206679068cf84da09a7b49ea202a4"><code>a05a223</code></a> tests: Add tests for attribute annotations.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/5ee5b3ee8884b256decf6e4d91563799a986d758"><code>5ee5b3e</code></a> ir: Allow per-method annotations for all the auto-generated struct and enum m...</li> <li><a href="https://github.com/eqrion/cbindgen/commit/be8e6ec876972b28519803e041ae12b4c63948fc"><code>be8e6ec</code></a> enum: Allow to store annotations for empty variants.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/1a824c04f21f22d1488609cedf8d0c7b13bb83eb"><code>1a824c0</code></a> Add support for verbatim content after includes</li> <li><a href="https://github.com/eqrion/cbindgen/commit/d0d67165561c6249d39148bc1b63d62d713fdd1a"><code>d0d6716</code></a> ir: Minor cleanup to the cfg code.</li> <li><a href="https://github.com/eqrion/cbindgen/commit/8139fbf3c7db6e0635161ecc5631d865ac4e3d4e"><code>8139fbf</code></a> Fix <a href="https://github-redirect.dependabot.com/eqrion/cbindgen/issues/418">#418</a>: Use heck for case conversion</li> <li><a href="https://github.com/eqrion/cbindgen/commit/4beb526516fa6e1de38cebc3f02b1d095f8947d1"><code>4beb526</code></a> Fix <a href="https://github-redirect.dependabot.com/eqrion/cbindgen/issues/254">#254</a> (<a href="https://github-redirect.dependabot.com/eqrion/cbindgen/issues/512">#512</a>)</li> <li><a href="https://github.com/eqrion/cbindgen/commit/ca1c0b27b66edc372d7c190e8d22e41125a985a4"><code>ca1c0b2</code></a> Run cargo-fmt</li> <li><a href="https://github.com/eqrion/cbindgen/commit/1df5129d1a227d5f1dbf66b6d8fe66eba44ae880"><code>1df5129</code></a> Fix 2015 edition module path resolution</li> <li>Additional commits viewable in <a href="https://github.com/eqrion/cbindgen/compare/v0.14.1...v0.14.2">compare view</a></li> </ul> </details> <br /> [](https://dependabot.com/compatibility-score/?dependency-name=cbindgen&package-manager=cargo&previous-version=0.14.1&new-version=0.14.2) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired) </details>
Let the user add raw C code in the generated header after the include
blocks.
It matches what bindgen provides.