DanBloomberg / leptonica

Leptonica is an open source library containing software that is broadly useful for image processing and image analysis applications. The official github repository for Leptonica is: danbloomberg/leptonica. See leptonica.org for more documentation.
Other
1.82k stars 394 forks source link

Autotools vs CMake: Inconsistency #598

Open diizzyy opened 3 years ago

diizzyy commented 3 years ago

Hi,

I'm planning on submitting a few patches to improve CMake but I have a question. Can we please use one library name? Right now there's a mix between liblept and libleptonica this includes both the library itself and pc file, which one is the preferred one?

Best regards, Daniel

zdenop commented 3 years ago

AFAIR it is intentional so, people do not mix autotools builds with cmake builds e.g. they should consistently use the one build system. Also, there are different naming conventions e.g. for windows (GCC vs MVSC) and linux. Also, sw build system uses different naming.

diizzyy commented 3 years ago

However you'd expect to get the same result on the same os/distro irregardless of used framework.

amitdo commented 3 years ago

i raised this issue years ago. See #253.

diizzyy commented 3 years ago

@amitdo Ahh, sorry I didn't find that issue.

Just decide on something (I would prefer if it used project name) and push it everywhere, it's not like a few simple patches for repo/downstream users will be much of a hassle.

DanBloomberg commented 3 years ago

When this issue was raised 4 years ago, the consensus was to continue using the two different library names.

The issue keeps coming up. If Daniel is right that using the same name will not cause undue hassle, and I suspect that he is, perhaps we should fix this. If we do fix it, I agree with Daniel that the project name, not the abbreviated 'lept', should be used.

So: should we fix this now?

rhurlin commented 2 years ago

Hi @DanBloomberg, I am one of the people working for FreeBSD on an update of the port of leptonica from version 1.78 to 1.82. We would like to switch from autotools to cmake and use the final naming of the library right away, preferably with the full name libleptonica.so ;)

Do you expect a decision about the naming of the library in the near future?

DanBloomberg commented 2 years ago

Sorry for all the delays! We're looking into it now.

DanBloomberg commented 2 years ago

@rhurlin I believe that cmake uses libleptonica.so. There is one line in CMakeLists.txt (line 57) that can make a symlink, but it is off by default anyway.

The issue is what to do about autotools, and the decision is to use the project name instead of the abbreviation. It hasn't been implemented yet. We'll try it in 1.83 and see what happens.

rhurlin commented 2 years ago

@DanBloomberg

I believe that cmake uses libleptonica.so. There is one line in CMakeLists.txt (line 57) that can make a symlink, but it is off by default anyway.

Ahh, ok. I wasn't aware that this switch existed. Must have overlooked it.

The issue is what to do about autotools, and the decision is to use the project name instead of the abbreviation. It hasn't been implemented yet. We'll try it in 1.83 and see what happens.

Yes, it is significantly more work to keep cmake and autotools up to date at the same time. Nevertheless, it will probably be necessary, since many distributions unfortunately take a long time to switch a tool from autotools to cmake. We at FreeBSD have already switched and everything works fine. Except that so far, instead of using the switch "manually", we link to the short form liblept ;)

Nice that the decision was made in favor of the verbose lib names.

Thanks for the information. Best wishes, Rainer

DanBloomberg commented 2 years ago

The changes discussed are now all in the master. 1.83 has not yet been released.

rhurlin commented 2 years ago

Thanks for the commit and the info.

I am very happy about the standardization of the name. This will make things easier for us (FreeBSD people) in the future :)

DanBloomberg commented 2 years ago

You're welcome. Always good to hear that we're being helpful and making things simpler. We perhaps should have done it earlier, but there are some costs & tradeoffs.