dougbinks / enkiTS

A permissively licensed C and C++ Task Scheduler for creating parallel programs. Requires C++11 support.
zlib License
1.74k stars 145 forks source link

Put header files in a subdirectory in the main repository #117

Closed bkmgit closed 7 months ago

bkmgit commented 8 months ago

Thanks for the updates. While examining https://github.com/p-ranav/argparse found that the header files are put in a subdirectory in the source repository. Having a similar structure might make the examples more useful as they would then consistently use

include enkTS/TaskScheduler.h`

Can work on this if helpful, but should not delay a new release.

dougbinks commented 8 months ago

I don't want to put the header files in another directory, as I am strongly in favour of having header files in the same directory as the source files.

It can be useful in large libraries with many source and header files to separate out the interface from the implementation. For smaller libraries, that is trumped in my view by the ease of use of having everything in one directory.

I actually also preferred listing all the headers and source as source code in CMake, which is how the CMakeLists.txt was originally configured, however this needed to be changed for CMake installs, and I don't use this CMakeLists.txt for enkiTS in my own projects since it's so simple to add without it.

dougbinks commented 7 months ago

I'm closing this issue as won't fix, but if it poses a significant issue I'm open to discussing solutions.