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

TriWild dependencies and build system #10

Open
ramcdona opened this issue May 27, 2023 · 2 comments
Open

TriWild dependencies and build system #10

ramcdona opened this issue May 27, 2023 · 2 comments

Comments

@ramcdona
Copy link

I am interested in trying out TriWild as a replacement for Triangle in my program.

Is there a mailing list or forum or other place to ask questions? I always hate posting questions to an Issue list. Sorry if this is the wrong place, but I couldn't find any other place for questions.

I use Triangle for both simple 2D CDT and also mesh generation -- where the boundary is fully specified, but Triangle inserts interior points to reach mesh size and quality goals.

The Triangle license is problematic. It also crashes far more often than I can deal with anymore. I have tried various 'improved' wrappers that attempt to catch various failure cases more elegantly, but none of them are satisfactory.

Shewchuk is unresponsive to questions about the license and development of the library appears to be dead. This would be fine if was problem-free, but that is certainly not the case in my experience.

Hopefully TriWild improves in a number of these areas.

I need to build TriWild as a library and call that from my program -- I currently use CMake. Specifically, I use the SuperBuild approach to have a Library and Main project and then I bundle my various libraries with ExternalProject_add. I am sensitive to the dependencies I add to my program -- I much prefer libraries with few or no dependencies.

From what I can tell, TriWild requires LIBIGL and GMP. It may also require NLOPT and geogram. Digging into some of the CMake, it also appears to download aabbcc, and json. LibIGL itself requires Eigen. I couldn't really tell how deep the dependency rabbit hole goes.

Some of my users need to build my program (and any dependencies) on a computer that does not have access to the internet. Because of this (and also for testing and repeatability sake), I always embed *.zip files of dependencies in my program instead of downloading the latest version from the upstream project (as a compromise, it is better to point at a specific upstream version).

From what I can tell, TriWild's build requires an internet connection to download at least a half dozen libraries -- some of which have their own dependency chain.

That doesn't even get into the mess that is the melange of software licenses that all these libraries introduce.

Is there any place where the use of these dependencies by TriWild is clearly documented? Optional libraries are clearly identified and instructions given for leaving them out.

Is there any plan going forward to reduce the number of dependencies? A number of them appear to be relatively simple convince libraries implementing commodity data structures. In my experience, it is generally better to re-implement what is needed from these cases and drop the dependency.

@Yixin-Hu
Copy link
Contributor

Hi,

Thanks for the suggestions. We currently don't have a mailing list for our projects. You can post questions here.

Unfortunately, we currently do not have a plan to reduce the number of dependencies. It requires too much labor work to reimplement what we use from the dependent libraries.

@xyont
Copy link

xyont commented Sep 3, 2023

is there anyone to kindly share binary exe with all dll dependency?

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