-
-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build(meson): add compile_library option #142
Conversation
Do you want me to offer feedback as you work on the draft, or just wait until you mark it as ready? |
Feedback is always welcome, and now should be almost ready (I only need to define |
Changes so far:
|
Now failing due to a warning related to type attributes being in the wrong place, but I'll be really happy to hear some feedback :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There we go, just a few nitpicks.
Something else that occurs to me; is this also adding support for compiling as static library? If not, it probably should, since adding shared-lib support is going to open me up to feature requests along the lines of "shared, but no static option??? plz???". Though, maybe that's better left to a later batch of work.
Yep |
ce2c635
to
f64ae3c
Compare
f64ae3c
to
1ed8340
Compare
Hmmn, I see there's some issues with |
Now there are only two main issues to fix. The first one is the use of tomlplusplus/include/toml++/impl/value_extern.inl Lines 11 to 24 in 7b61012
GCC says: "type attributes ignored after type is already defined" The other one is related to a message sent by
Inspecting generate_single_header.py, I see that only "macros that are meant to stay public" should still be defined after the build.
|
Oh, I didn't noticed that you wrote this as I was writing #142 (comment) at the same time :/ |
Yeah, for our purposes they're both 'public' w.r.t. that script. I'm happy for them to go in the ignore list.
It being set by a global header in the library itself is totally fine in the 'default' case. It's essentially an undocumented config option. I don't mind if it leaks. ...having said that, you also make a reasonable point. Maybe |
I mean, for this simple case I believe that an
I don't really understand what that define does... But now something is necessary to tell GCC to ignore the |
We still have one issue left with symbol visibility: when linking against the compiled libraries, a few symbols are missing. Here's the output of LLD:
And the one from gold:
|
Linking issues do not occur when setting the gnu_symbol_visibility to default (i.e. everything public), so this is almost surely because |
I think just unconditionally outlining the destructor is the 'standard' way to fix this, but I'm no longer at a PC to test. Happy to investigate tomorrow. |
Ok, I'll give it a shot myself. Have a good night! |
ba88046
to
e9782e8
Compare
Fyi: circle ci didn't run your new job because you didn't add it to the workflow bit at the bottom of the script (Good idea to add the lib target to the tests though) |
Relevant docs: https://circleci.com/docs/2.0/workflows/ |
Sorry @Tachi107 I'm not going to get a chance to help with the linker thing today after all, won't be able to until Sunday or Monday at the earliest. |
eaca39c
to
c672675
Compare
I think this is almost ready. If you're ok with the changes I could edit the commit history and keep only a few meaningful commits (like "depreate TOML_API", "add compile_library option", "switch to GitHub Actions", etc). Normally I would squash everything in one single commit, but since this PR is so huge I believe that having four or five different commits in the master branch would be better. |
Yeah, sure, that sounds like a good idea. |
c672675
to
4bf229b
Compare
@marzer mostly done (I'm pinging you just in case you're not subscribed to this thread). I only need to move the If what they need to do is to build the html files and deploy them to GitHub Pages then I could add a job similar to the one I added in pistacheio/pistache/.github/workflows/pistache.io.yaml Edit: done, I believe it should work fine. |
e043e7d
to
c379dc9
Compare
0680717
to
6d50685
Compare
I've also updated the badge in the Readme to point to the GitHub CI job, and now I really think that this is complete. When merging, be careful not to squash the commits :) And now the Windows job gives issues when it is triggered by a PR... I'll see how to fix it. |
6d50685
to
ff9814c
Compare
f2cf783
to
ad4bc54
Compare
Ok, I've fixed that too, and now this should be ready for real :D |
ad4bc54
to
6cff0b0
Compare
Thanks for all your work on this! |
Still a lot of stuff to do.
#140 (comment)