Tectu / malloy

A cross-platform C++20 library providing embeddable server & client components for HTTP and WebSocket.
BSD 3-Clause "New" or "Revised" License
68 stars 8 forks source link

Split library into server and client libraries #25

Closed Tectu closed 3 years ago

Tectu commented 3 years ago

Currently, we build one library containing both server & client components (if enabled). It might make sense to build separate libraries for the server components and the client components.

0x00002a commented 3 years ago

We also need to build a core library that they both link too. Can we use cmake to define targets like malloy::server, malloy::client, etc or is that only for find_package files?

Tectu commented 3 years ago

Yep, +1 for the core library.

I think what you do is just name the library targets core, client and server and then setup the namespace as malloy in the export configuration so consumers of the cmake lists (importing the library into another cmake project) will have them exposed as malloy::client etc.

0x00002a commented 3 years ago

Working on this currently. Not sure if I should do the whole install stuff too since I think there is going to need to be some complex shenanigans with how server and client depend on core both with its internal name and in a transitive way for consumer projects

Tectu commented 3 years ago

I am working on this currently. 93% done 🤦

Tectu commented 3 years ago

If you feel bored I certainly wouldn't mind if you'd tackle #40 :p Hold your horses on a PR tho - the commit(s) for this task will restructure some stuff (mainly file locations).