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

CMake Project Examples #6

Closed
stonier opened this issue Jun 15, 2017 · 15 comments
Closed

CMake Project Examples #6

stonier opened this issue Jun 15, 2017 · 15 comments
Assignees

Comments

@stonier
Copy link
Contributor

stonier commented Jun 15, 2017

To put under CI and be instructive about how to pull Drake into a CMake project. Pulling is via find_package or ExternalProjectAdd.

@RussTedrake would also like to show (I agree) a lightweight Travis build using a hosted tarball of the installation.

@stonier
Copy link
Contributor Author

stonier commented Jun 15, 2017

How does the above sound?

@RussTedrake
Copy link
Contributor

Linking to RobotLocomotion/drake#6149 (for those with access).

The above sounds great. Almost any of the simple executables in the examples directory would be appropriate here. For instance, implementing examples/simple_continuous_time_system again, but using drake as an external. Perhaps a similarly simple example using the optimization library, too. Goal is to document/prototype how we think external projects should use drake.

@stonier
Copy link
Contributor Author

stonier commented Jul 13, 2017

@jamiesnape we need some concrete examples to validate it. As Russ mentioned, examples/simple_continuous_time_system is a good example and I think sufficient for a first pass.

@jamiesnape
Copy link
Contributor

Sounds good.

@stonier
Copy link
Contributor Author

stonier commented Jul 13, 2017

Let's drop that example in all the drake examples (i.e. bazel and cmake). We should also drop the hello world code then just to keep it simple.

@jamiesnape
Copy link
Contributor

Cool, working on it now.

@jamiesnape
Copy link
Contributor

Note that the licenses are currently different for this repo and drake and hence simple_continuous_time_system.cc.

@stonier
Copy link
Contributor Author

stonier commented Jul 13, 2017

Oversight, let's sync the license here with Drake's.

@stonier stonier changed the title CMake Project Example CMake Project Examples Jul 13, 2017
@stonier
Copy link
Contributor Author

stonier commented Jul 13, 2017

Some update. We cannot do Travis, it has no support for Ubuntu/Xenial. CircleCI is another option, but 2.0 with Xenial support only released yesterday. Likely to be bumpy. There are other options that may be feasible, e.g. docker container builds, but these are likely to be sufficiently complex to defeat the purpose.

For now we will just drop in a simple bash script build on Jenkins. Bash scripts in the project examples.

@stonier
Copy link
Contributor Author

stonier commented Jul 13, 2017

Task List for the 20170713-14 sprint:

Target Platform: Ubuntu/Xenial

  • Upload a tarball snapshot of drake (where?)
  • CMake find_package project example copies and compiles examples/simple_continuous_time_system
  • CMake ExternalProject_Add project example copies and compiles examples/simple_continuous_time_system
  • Jenkins bash scripts inside both cmake project examples
  • Jenkins jobs on our CI server that builds each cmake project examples (nightly?)
  • A nice README.md in each project example

Stretch

  • Jenkins CI job to build and host the tarball, nightly
  • Pointing a group of closed beta testers (Russ' friends) to road test this

@RussTedrake
Copy link
Contributor

@rdeits, @tkoolen -- any ideas for getting around lack of ubuntu support?

@jwnimmer-tri
Copy link
Contributor

Travis-CI says to use Docker if you want a Xenial build environment travis-ci/travis-ci#5821 (comment). I think that's a fine approach for a Xenial flavor of the a prebuilt-Drake-in-other-CI example.

@jamiesnape
Copy link
Contributor

I think CircleCI 2.0 would work best for us at this stage.

@rdeits
Copy link

rdeits commented Jul 14, 2017

I set up xenial testing with Docker on Travis for Director: https://github.com/RobotLocomotion/director/blob/master/.travis.yml and it was actually pretty easy.

@stonier
Copy link
Contributor Author

stonier commented Jul 26, 2017

Most jobs covered in PR #8. Will follow up on the remaining in individual issues.

@stonier stonier closed this as completed Jul 26, 2017
@jamiesnape jamiesnape removed their assignment Jun 22, 2021
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

5 participants