On 3/22/24 16:03, Hassan Sajjad wrote:
Please, don't top-post.
Sorry, what do you mean by that? I use Reply All button in Gmail.
I've included a link to our discussion policies that, among other things, explains what top-posting is. I'm including the link again, for your convenience: https://www.boost.org/community/policy.html#quoting
I can see you're explicitly using std::filesystem in some examples, and that reinforces my suspicion.
std::filesystem is much better than CMake filesystem API or any other build-system's filesystem API. And for anything advanced, much less verbose as-well.
It is better for some things and worse for others. Where in b2 or CMake you would glob the filesystem using a wildcard, std::filesystem would require one to write a loop with directory iterators and applying a wildcard (which is not available in the std::filesystem). It would also require one to handle any errors that might arise in the process.
I can believe it was easier *for you* to implement the build scenario in HMake - because you know HMake. It won't be necessarily the case for someone new to HMake, especially without documentation.
I would love to address if you have any specific complaints regarding documentation.
My first complaint would be that it doesn't exist. Have a look at b2 docs or CMake reference for a few examples of what I have in mind.
Also, SFML looks like a much smaller library than Boost.
But it could be considered a middle-sized project. And I don't see a reason for my build-system to not scale.
It's not so much about scaling (although scaling is not a given, too) but about various features and corner cases. I mentioned configure-time checks earlier. Then there are non-trivial dependencies between libraries. There is support for configuration (e.g. which Boost libraries to build, release/debug, single/multi-threaded, which C++ runtime to link, etc.). Then there are tests and documentation, which also use a variety of tools to build.