-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Add au recipe #25447
Add au recipe #25447
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Hi! I'm commenting here so that I can stay in the loop on this PR. (And also --- thanks so much for adding Au to conan! Hugely appreciated.) A couple of questions:
For question (2), note that I'm not at all offended or anything --- this was my first time using or writing CMake, so I definitely expected it to look weird, compared to what experienced people would write! Instead, I'm asking because this seems like an awesome learning opportunity for me. I did buy the CMake book and try to follow best practices using the latest CMake version, but I'm also coming from a bazel-first mindset, so I'm sure I have many blind spots. Thanks again 🙂 |
If you look at the test package, I'm including the
Let me start with an apology, I did not meant to criticize your code. English is not my first language and I may have said something that came out disrespectful, that was not my intention at all.
add_library(myCoolLibrary)
target_sources(..)
target_link_libraries(...)
if(BUILD_TESTING)
add_subdirectiory(tests)
endif() Then you completely ignore the tests with a single flag. |
No apology necessary. 🙂 The only reason I mentioned "I'm not offended" was because of what I was saying in that message: I thought I could easily be mistaken for getting defensive, since tone doesn't translate well on the internet. I think I'm starting to see the outlines of the changes we'll want to end up making. Probably something like the following:
I'll need to go back and remember all the different use cases I tested when we first added CMake support (system install, FetchContent, ...), and make sure all those still work. And we'll need to test the new use cases you're providing. But I think we can make this work. I'm assuming that once Au is in shape, we wouldn't need the patch file that's currently in this present PR --- does that sound right to you? |
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.
Hi @ericriff thanks a lot for taking the time to create the recipe for Au, we really appreciate it (And more so me personally, I've wanted to add this for a bit now (see aurora-opensource/au#257) but hadn't found the time to do so)
This looks good to me as a first approach, but I'll need to circle back to this after rechecking @chiphogg comment in aurora-opensource/au#297 (comment) :)
Exactly. Once Au doesn't publicly depend on GTest or any other internal tool, this patch will go away. |
This part was really intriguing and surprising to me. So if a library has their own Also, I'm working on the Au-side changes, but it's a pretty busy and exciting time at work right now, so I don't have as much bandwidth right now as I often do at other times. I'll do my best to keep the ball moving forward, though. |
Not exactly. The CMake files conan replaces are the ones used to find the libraries once installed. In this case, |
Note that what @ericriff is saying is refering to the Conan Center Index context. Users adding their own support for Conan in their libraries are free to use their own config files without issue :) |
Neat! So is there a future world where it makes sense to include direct support for conan inside of Au? Should we consider moving in that direction eventually? |
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.
I had a general question w.r.t. strategy for this PR.
Right now, this PR patches the stock 0.3.5 version of Au. Simultaneously, we're working on updating Au's CMake upstream, to be more friendly to conan (and vcpkg, I think). But those changes obviously won't affect 0.3.5, which is set in stone at this point.
Does that imply that (1) we should plan to land this present PR, in close to its present form, regardless of what's going on in the Au repo? Does it mean (2) Au should try to get a 0.3.6 release out soon, as the "first conan release"? Or does it mean that (3) we should use a specific (near-future) commit from HEAD as the release here?
I'm open to suggestion here. I assume (3) is a no-go. I'm guessing we want to do (1); but as for (2), I'd be open to consider cutting a release sooner than I had been planning.
We can go for a combination of both. We can release 0.3.5 as-is, and you can take the necessary time for 0.3.6. we'll then update the recipe without issue to handle the new version, so you can always release at your own cadance. How does that sound? |
Makes sense. Let's do that! |
Conan v1 pipeline ✔️Warning Conan Center will stop receiving updates for Conan 1.x packages soon - please see announcement. All green in build 8 (
Conan v2 pipeline ✔️
All green in build 8 (
|
Some background on the holdup for this PR until I get a chance to discuss it with the team:
@chiphogg can you give me some more insight into this target? What's is intended usage? I see that it declares some matchers, but it would be nice to get a bit more insight |
Yep, that's right:
Also, the current version on |
So just to clarify, is this target always used as part of gtest testing? |
Yes. People who use gtest would find this target helpful in writing their tests. But people who use other testing libraries wouldn't get any use out of it. |
Great! So, what we're doing is:
Thanks a lot for your insight and patience while we got the PR reviewed @chiphogg, and thanks @ericriff for actually taking the time to create it, we really appreciate it :) |
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.
LGTM
Summary
Changes to recipe: au/[0.3.5]
Motivation
Add recipe for https://github.com/aurora-opensource/au
This is an incomplete recipe, it only exposes the main
Au::au
target and not theio
component (which is used for the<<
operator).I'm not sure why it is needed since it works anyway? Their CMake is a bit weird.