-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Add ohPipeline #20791
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 ohPipeline #20791
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.
|
@conan-io/barbarians any chance to use a more recent CMake? Edit: it seems I don't have the proper ping abilities. @uilianries could you by any chance help here? 🙏 |
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.
uilianries
left a comment
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.
Thank you for your PR!! Please, take a look on my review 😄
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.
This cmake file is huge. Please sent it to the upstream as pull request. I see the project is not active, but still, more users can use it and contribute with comments.
I see they offer a build support with waf.io, but not sure how good is 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.
I will send it. Unfortunately, I don't have good experience with sending patches upstream with this org but at least we'll have it there for documentation purposes :)
Do you think it'd make sense to split the main CMakeLists.txt into several smaller ones?
As for Waf: I tried using it form building a Conan package, but creating CMake turned out to be easier...
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.
Let's keep a single cmakefile for now. The current one is large, but simple to read. I totally understand trying to use another build tool that is not so supported by Conan makes life harder. There are other PRs that we accepted a custom cmake file to build the project.
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 would recommend forking the library or at least creating a separate repo for the CMake project files.
This comment has been minimized.
This comment has been minimized.
|
Ok, now I have some fPIC woes. Any idea how to approach those, @uilianries ? |
I'm curious if it was because that workaround involving cmake_cxx_flags or is something related the the cmakefile. I'm not on my computer now, but I'll build it locally tomorrow. |
|
May this be caused by improper fPIC handling in ohNet? |
|
@DoomHammer Sorry the delay, I made a PR to your branch here: DoomHammer#1 Please, consider it as a fix for the current error. The fPIC error is occurring because all libraries are configured to be built as static, but Conan build both static and dynamic. |
This comment has been minimized.
This comment has been minimized.
|
@uilianries do you think ohNet library should also be updated regarding the static changes? |
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.
|
It's very hacky but it works. @uilianries @memsharded any ideas if this could be improved? |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
| raise ConanInvalidConfiguration(f"{self.ref} doesn't support GCC < 7") | ||
|
|
||
| def generate(self): | ||
| tc = CMakeToolchain(self) |
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.
| tc = CMakeToolchain(self) | |
| venv = VirtualBuildEnv(self) | |
| venv.generate() | |
| tc = CMakeToolchain(self) |
Required for the CMake tool_requires.
|
@DoomHammer I opened a PR with all of my recipe improvement suggestions: DoomHammer#2 Thank you for moving the CMakeLists.txt into its own repo! The recipe looks much better now. |
ohpipeline: misc recipe improvements
This comment has been minimized.
This comment has been minimized.
|
@valgur do you see the entire error message? I cannot deduce what's the problem based on what's presented here and I also cannot reproduce the problem locally. |
|
Hi @DoomHammer - I've restarted the PR's CI - We had an outagge with one of the OSx agents that caused some builds to fail without logs. It's now fixed so let's see if this builds now :) Thanks a lot for your patience! |
This comment has been minimized.
This comment has been minimized.
|
Hi @RubenRBS ! Unfortunately, it's the same :( |
|
@DoomHammer The macOS Debug (but not Release) build fails with If you can't figure out a fix or a workaround for this, you can probably just raise a ConanInvalidConfiguration exception for Macos + Debug. |
|
MacOS + Debug works for me locally albeit with a different clang version. But what we see here is a lack of file that's used both in Debug and Release. So this is extremely weird. A race condition maybe? |
|
Which CMake generator does the CI use? Is it Makefile or Ninja or something else? |
|
It uses the default CMake generator - Unix Makefiles. |
|
Yes, Conan v1 seems to work for me. I found a possible fix, though, so I'm trying it now. |
This comment has been minimized.
This comment has been minimized.
|
Nope, I only made that worse... |
f80876e to
4ed0c7f
Compare
Conan v1 pipeline ✔️All green in build 6 (
Conan v2 pipeline ✔️
All green in build 6 (
|
|
OMG, we made 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.
Please submit it to the upstream project as well, if you already haven't.
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.
The reason CMake ended up here is the same as the reason the patch is here and the reason why I made my fork. The upstream does not accept patches.
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.
Exhibit A: openhome/ohPipeline#8
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.
Also: I see this has been fixed in the more recent versions, which I want to handle after this one is merged. It's been lingering way to long already :P
valgur
left a comment
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.
Nice! Thanks!
|
Can we get that merged, then? |
| cmake: | ||
| url: "https://raw.githubusercontent.com/merakiacoustic/ohPipeline/ohMediaPlayer_1.139.1000_meraki2/CMakeLists.txt" | ||
| sha256: "f9e11d4adb8426a8375dae02e3b641d66efc6ef3abd6f96cb81f6e85352083a3" |
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 know I might be a bit late for the review but think we should not incorporate new build systems to a 3rd party library as there might be errors or subtle behavior changes for the end user. However, I understand the effort here and the usage of an external fork-provided CMakeLists. For future iterations of this recipe, let's try to use the original waf build system and stick to only the sources and instructions provided by the library. Thanks!
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.
Making the original work with Conan probably requires more code than just using CMake but ends up being less flexible...
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.
thanks for the input. Yes, I understand, but maintaining a different build system as the library evolves will be an issue for the recipe here in conan-center as well. We have to take care of that as maintenance of that could be a nightmare as well.
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.
True. But it would be nightmare mostly for me, either way ;) The current version of the library doesn't even compile unless you have non-free SDK, so I'll need to patch it to handle this as an option.
Specify library name and version: ohpipeline/1.39.1000
This library is required to build audio products based on the OpenHome protocol.