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

Reorganise source code of external libraries (pre-requisite for #4354) #4358

Open
matejk opened this issue Dec 18, 2023 · 1 comment
Open
Assignees
Labels
buildsystem cmake Related to cmake build system

Comments

@matejk
Copy link
Contributor

matejk commented Dec 18, 2023

From #4354 by @teksturi :

Separate external source files to own folder

It would be quite hard to exclude every external source without moving them to different folder. This same thing will happened also with other static analyzer tools, formatting tools, compiler options. So if we move them separated folders we can always exclude them more easily.

We can consider couple options here (example for zlib). Note that "external" can also be replaced with some other word if wanted.

  1. Foundation/external/
  2. Foundation/external/zlib/
  3. Foundation/src/external/
  4. Foundation/src/external/zlib/
  5. Foundation/src/zlib
  6. external/
  7. external/zlib

My personal vote goes to 2, 4 or 7. Probably 7 because that way it so easy to seperete everything to one place. We can have example update script which checks all new version for those.

Still need to think what about external files which are also in include/ there we would probably need external folder. Example of this kind of file is "Foundation/include/Poco/ordered_map.h"

Maybe something like this for external files.

image

I still need to prototype a little bit. We probably still do not want to build these as libs as before. Also we probably want to have nice include paths

#include "Poco/external/pdjson/pdjson.h"
We could also do some magic that we can always do that even when POCO_UNBUNDLED is used. But that is not very high priority but would be nice.


Structure reorganization is needed if we want to have clang-tidy automated in good way. Else we will clatter with exclude rules. That would be same work as moving files to different location. Moving them will also help in other stuff like taking clang-format in use.

Easiest reorganization would be this

Foundation/src/External/
Foundation/include/Poco/External/

This way almost nothing change but we can exclude those pretty easily.

@matejk matejk added this to the Release 1.14.0 milestone Dec 18, 2023
@aleks-f
Copy link
Member

aleks-f commented Dec 19, 2023

I'd name the directory ext

@matejk matejk self-assigned this Dec 22, 2023
@matejk matejk added buildsystem cmake Related to cmake build system labels Jan 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
buildsystem cmake Related to cmake build system
Projects
Status: No status
Development

No branches or pull requests

2 participants