argtable / argtable3

A single-file, ANSI C, command-line parsing library that parses GNU-style command-line options.
http://www.argtable.org
Other
377 stars 65 forks source link

Dramatic Build System / Documentation Simplification #30

Closed john-r-graham closed 5 years ago

john-r-graham commented 5 years ago

You all seem to have thrown out all of the documentation source code as well as the build system that would build a shared library when picking up maintainership. Seems a shame, especially the latter, as it makes it much more of a chore to package it similarly.

Any chance you all might put some of that back or, if I create it, accept a pull request?

tomghuang commented 5 years ago

@john-r-graham I've noticed the problem. I'm cleaning up the recent pull requests so that the project can be simple again.

john-r-graham commented 5 years ago

Hi Tom,

Sorry; I should've looked more carefully through the other issues as I see that something is in process on resurrecting the library build already. That said, I think you really need to learn to build and use libraries in your environment. Your amalgamation burdens every program you link argtable to with all of the code, whether a particular data type is used or not. Shared libraries are a step beyond that but are standard practice as well in this day & age.

Still, thanks for your prompt reply and attention.

Regards, John

tomghuang commented 5 years ago

@john-r-graham I do use this library in most of my projects. However, maybe my use cases don't reflect how other developers use this library, so I didn't notice the problems caused by the built-in getopt library and issues related to the amalgamation distribution.

In the latest commit, I've re-organized the project, so that developers can choose to use the library in the amalgamation format or the original format. I'm also modifying the CMake scripts so that we can use the library in the dynamic library format, too. Hope these changes can solve most build issues. Thanks.

john-r-graham commented 5 years ago

Hi @tomghuang,

Okay, thanks. Will give the new build system a try.

Regards, John

tomghuang commented 5 years ago

Hi @john-r-graham,

I've updated README.md and fixed Travis CI and Conan package issues. Now you can use Argtable3 in four ways: as a shared library, a static library, a source code library, or an amalgamation library. Each type of the library has a corresponding CTest target, which can be triggered by running make test.

I'll update the document for the new API, which allow us to implement sub-commands in argtable3. But for now, I think the library is in a much better shape. If you find any problem, welcome to submit a pull request. Thanks.