Skip to content
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

integrating 3rd party library updates into CMake/CI #332

Open
dmedine opened this issue Aug 10, 2018 · 3 comments
Open

integrating 3rd party library updates into CMake/CI #332

dmedine opened this issue Aug 10, 2018 · 3 comments

Comments

@dmedine
Copy link
Contributor

dmedine commented Aug 10, 2018

How? Programmatically, I mean.

I have some library updates from Brain Products and I'd like to get them into the build structure somehow. Are we still relying on the SCCN ftp to store the 3rd party dependencies?

@mgrivich
Copy link
Collaborator

Since none of us have access to SCCN's ftp anymore, it is time to move away from that. Github releases looks like it will work to me: https://help.github.com/articles/distributing-large-binaries/ https://help.github.com/articles/about-releases/ If that isn't good enough, I'd go to Amazon file hosting next. If there is a cost, I could take care of it.

@cboulay
Copy link
Collaborator

cboulay commented Aug 10, 2018

If you're talking about storage, this is one of the great benefits of separating the repos.
https://github.com/labstreaminglayer/App-BrainProducts/
Create a release, then you can attach binaries in the release. This is outlined in the link from Matthew.

If you're talking about how to get CMake to download them, that's also pretty easy to do.
Use cmake ExternalProject_Add to create a target.

Then you have several ways to trigger that target.

  • You can trigger its download during configure (see here).
  • You can make your real target dependent on it using add_dependencies(${target} ${ext_name}) which will cause the external target to be executed (download, build if necessary) during the build phase of the ${target}.
    • You will have to tell developers to first attempt to build the executable to download the headers they need for proper development.
  • You can create a new target called something like "get-deps" that depends on the external target, then tell users to first call cmake --build . --target get-deps (or use the IDE equivalent of right-clicking on the get-deps target and building that).

@dmedine
Copy link
Contributor Author

dmedine commented Aug 11, 2018 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants