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 automate download & build of Assimp code #359

Closed
3 tasks done
jlblancoc opened this issue Oct 24, 2016 · 7 comments
Closed
3 tasks done

CMake automate download & build of Assimp code #359

jlblancoc opened this issue Oct 24, 2016 · 7 comments

Comments

@jlblancoc
Copy link
Member

jlblancoc commented Oct 24, 2016

TO-DO (in a separate branch until stable):

@jlblancoc jlblancoc added this to the Release 1.5.0 milestone Oct 24, 2016
@jlblancoc jlblancoc modified the milestones: Release 2.0.0, Release 1.5.0 Mar 2, 2017
@jlblancoc
Copy link
Member Author

Postponed to milestone 2.0.0, where we can require a newer version of CMake and will have stopped supporting Ubuntu Trusty.

@jlblancoc
Copy link
Member Author

Removing from Milestone 2.0.0, since "Trusty" is already removed, at least from the PPA auto builds list.

@jlblancoc jlblancoc removed this from the Release 2.0.0 milestone May 25, 2017
@bergercookie
Copy link
Contributor

@jlblancoc,

Create CMake scripts to automate the download and compilation of ASSIMP from latest GitHub release if the lib is not found in the system (mainly for Windows users).

Instead of just pulling and working on the latest Assimp release on github, I think it should be more robust to depend on a particular commit/release of the Assimp repo and periodically update that commit ID. This would ensure that nothing breaks in the MRPT compilation process if new non-backwards-compatible code is introduced to Assimp.

This can be implemented with Git submodules which are designed for maintaining and tracking 3rd party project dependencies.

@jlblancoc
Copy link
Member Author

Good point! 👍
Just updated the 2nd task description to reflect that idea.

I liked GitHub submodules, but after working some time with them in another project, I'm now more inclined to prefer leaving that work to CMake, since we avoid having "anything special" in the "git domain"... thoughts?

@bergercookie
Copy link
Contributor

I'm now more inclined to prefer leaving that work to CMake, since we avoid having "anything special" in the "git domain"... thoughts?

The "anything special" point is indeed true; unfortunately they do require special attention and can easily break stuff especially in cases that one develops both the outer repo and the submodule itself.

However, if one follows a basic set of rules, they are invaluable at splitting the work in separate repos. I have actually set up my entire catkin repo for the master thesis on git submodules.

Anyway, the CMake solution is pretty neat as well, and also more suitable in this case since MRPT do not hold any other tool as a submodule

@jolting
Copy link
Member

jolting commented May 25, 2017

I don't think that is the intent of submodules. Submodules really shouldn't be used to pull in other projects. A submodule should be a way of breaking up a single git repository into smaller pieces(modules), to avoid the issues associated with a large centralized software repository.

"What happens is that you do a single commit in each submodule that is
atomic to that private copy of that submodule (and nobody will ever see
it on its own, since you'd not push it out), and then in the supermodule
you make another commit that updates the supermodule to all the changes
in each submodule." - Linus Torvald

jlblancoc added a commit that referenced this issue Aug 11, 2017
(still DLLs are in the wrong output dir)

cc: #359
jlblancoc added a commit that referenced this issue Aug 13, 2017
* Remove embedded copy of assimp, and use CMake to download it if needed
* fix EP assimp build (still DLLs are in the wrong output dir) cc: #359
* fix EP assimp link
* correctly removed Eigen3 embedded dir
* EP out-of-source dirs
* done porting eigen & assimp as EP
* Remove embedded version of octomap cc: #574
* Add simpler build instructions to README
* fix build of EP in GNU/Linux
* Debian pkg: update after removing octomap sources
jlblancoc added a commit that referenced this issue Aug 16, 2017
* Remove embedded copy of assimp, and use CMake to download it if needed
* fix EP assimp build (still DLLs are in the wrong output dir) cc: #359
* fix EP assimp link
* correctly removed Eigen3 embedded dir
* EP out-of-source dirs
* done porting eigen & assimp as EP
* Remove embedded version of octomap cc: #574
* Add simpler build instructions to README
* fix build of EP in GNU/Linux
* Debian pkg: update after removing octomap sources
jlblancoc added a commit that referenced this issue Aug 16, 2017
* Remove embedded copy of assimp, and use CMake to download it if needed
* fix EP assimp build (still DLLs are in the wrong output dir) cc: #359
* fix EP assimp link
* correctly removed Eigen3 embedded dir
* EP out-of-source dirs
* done porting eigen & assimp as EP
* Remove embedded version of octomap cc: #574
* Add simpler build instructions to README
* fix build of EP in GNU/Linux
* Debian pkg: update after removing octomap sources
@spsancti
Copy link

Sorry, accidentally referenced this issue.
Sincerely, Borys.

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

No branches or pull requests

4 participants