Hi Joe, Bill,

On 10/17/2014 06:15 PM, Bill Somerville wrote:
> On 18/10/2014 00:56, Joe Taylor wrote:
> Hi Joe,
>> Hi Greg,
>>
>> About a possible common library:
>>
>>>> I would like to see any common libraries built with CMake, this is
>>>> because CMake has powerful tools for exporting library code for use in
>>>> other CMake built projects. This doesn't make them any less useful for
>>>> non-CMake projects.
>>> Unless you plan on coveting WSJT and / or WSPR over to Cmake, I
>>> wouldn’t' want to deal with this at all, WSPR may not factor in, but
>>> still. The builds for those two packages are already hybrids, adding a
>>> third layer would compound things further. I'm sure there is a long list
>>> of reasons why X is better that Y, but, seems to me, there are plenty of
>>> fish to fry, so no urgent need to go throw a line in the water :-)
>> It may not need to be very complicated.  A simple CMakeLists.txt (or a
>> simple Makefile) can build the library, say libpackmsg.a, from sources
>> moved into a new branch.  Building the library would be a prerequisite
>> to building the programs, and would be managed by the CMakeLists.txt
>> file (WSJT-X and MAP65) or Makefile.jtsdk (WSJT).
> Of course you are correct but I see Greg's point too. I expect he is
> concerned about the complexities of delivering an application on Linux
> for example where the whole thing must be built from sources plus
> existing packages. A statement like "Building the library would be a
> prerequisite to building the program ..." is not trivial in the package
> building world because the prerequisite build has to be part of the
> product build. This is because the only binary inputs to the packaging
> process allowed are other already in place packages.
>
> We have just attacked that same problem for WSJT-X where an autoconf
> based hamlib build must be aggregated with the CMake WSJT-X build.
> Fortunately in that case CMake provides the tools as we have
> demonstrated with the new wsjtx-superbuild project. The same probably
> isn't true of an autoconf based project which I believe some of our
> applications are.
That is part of the concern for sure, the other is, one library built 
one way and the other half built another all for the same app.

What I was meaning by building all the libraries was, I believe all 5 
apps have a library, and addding a common library would make 6 
libraries?. Why not create a libwsjt package ( similar to what hamlib 
does ) or something, which would include all libraries, mutual or 
exclusive, then link against that package.

While this adds another package of sorts, it can simplify things a fare 
bit during local test builds, packaging, or infrastructure server 
builds. I would think, this approach should help with duplicate source also.

I prefer GNU Make over CMake, but either one is a fine, the important 
thing is, they should all get built at the same time and by the same 
build system.


>>> I certainly see the benefits of having a common library set, but if
>>> that's to be done, do them all, not just one or two for a particular
>>> need. Clearly a roadmap of some kind could be beneficial here, maybe
>>> include long term integration plans for all the apps, if that is on the
>>> cards.
>> It's mainly the message packing and unpacking that needs to be
>> consistent across all three programs.  As you say, there is other
>> potentially common code as well; but the benefits of making all of that
>> code uniform across all programs are much smaller.
> I can see a few other possibilities like rig control, location, distance
> and, bearing functions.

Yes, maybe the Astro Data also, SR/SR. MR/MS, Az/Elev bearing information.

>>> A few months back, 6+ or so, I tried to do some commonality checks
>>> between the different .F90 / .f90 files. I found allot of delta's, but I
>>> had no way of knowing which file was truth, so, kinda of gave up on that
>>> adventure. I think this would be benifical for sure, but do them all,
>>> and publish the libs.
>> Those deltas, of course, are the main motivation for maintaining a
>> single set of source files.
> There is a potential downside, updating a library with a poorly designed
> interface, and library interface design is very difficult, can break one
> client that uses it in some ambiguous way despite the change correcting
> some defect for another client. So it does place a larger testing burden
> on perhaps more mature applications that have fewer release cycles.
>
> I will always vote for reusing code by sharing a library rather than
> copying sources and possibly diverging, but there is no free lunch here.

But the upside is, its consistent, and if a problems arises, and the 
library hasn't changed, should point to the app.

>>      -- Joe, K1JT
> 73
> Bill
> G4WJS.
>
>

------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
_______________________________________________
wsjt-devel mailing list
wsjt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to