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

Simplify the dependency building using CMake's ExternalProject_Add #7

Open
4 tasks
Algomorph opened this issue Sep 19, 2019 · 5 comments
Open
4 tasks

Comments

@Algomorph
Copy link
Contributor

Using CMake's ExternalProject_Add to check-out and automatically build dependencies can probably dramatically simplify the build process, esp. on the Windows platform, where more things have to be built from scratch. This would thereby aid in the adoption of SurfelWarp by the community.

Hence I propose to have corresponding CMake options, i.e.
BUILD_EXTERNAL_GLFW, which would trigger the download and build using CMake subroutines (which use git). Otherwise, the system version of the package would be used.

Refer to Pangolin for reference.

Again, if #5 is accepted, these can be the target dependencies:

  • Eigen
  • GLFW
  • Pangolin
  • cilantro

I wouldn't include OpenCV or PCL here because those are massive and require eons to build, esp. with common dependencies. Moreover, OpenCV is pre-packaged and available for both Windows and Ubuntu.

This addition would also allow not to include Eigen with the code but get it from a specific commit, thereby reducing the size of the repository and amount of clutter.

@wangmiaowei
Copy link

@weigao95 @Algomorph When I run ./surfelwarp_app /test_data/boxing_config.json I get an error Segmentation fault (core dumped)
I do not know the reason.

@Algomorph
Copy link
Contributor Author

Algomorph commented Dec 8, 2020

@wangmiaowei I'm not using this specific codebase right now. It may have bugs stemming from dependency upgrades or some specific setup on the system. It took me two weeks of coding just to get it working, hopefully my cilantro integration instead of PCL will make things easier for you.

If you have very specific issues, e.g. determine which line of the code segfaults, try to figure out what part of the code or third-party call is failing, maybe I could help you.

@Algomorph
Copy link
Contributor Author

Algomorph commented Dec 8, 2020

@weigao95 I've figured out how to do integration testing with CUDA, but for now I'm still using BOYC for Appveyor to do this for the codebase I'm working on right now (because the build & testing are so slow and it times out without using my own cloud).

If you really want to ensure your code keeps working for other people, I recommend investing some time in exploring continuous integration. That's the only real way to ensure things continue working while third-party libraries are upgraded. Bear in mind that the whole reason for my cilantro integration was that it was virtually impossible to get the right combination of severely outdated PCL + other libraries back when I was trying your code out.

@Algomorph
Copy link
Contributor Author

Also, @wangmiaowei , you should open a separate issue if you're experiencing an unrelated build problem.

@411066282
Copy link

@wangmiaowei how large is your nvdia card? Main is 8G, and i get the same error

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