I'm hoping to lessen the pain in dealing with tools like gcc and make/cmake/etc. More importantly, C libraries are scattered inaccessibly throughout the web, and Kit provides a central index of modularized units. What's most important going forward is to gather useful libraries, modify them to meet kit standards, and link them in this central registry. Any help there would be appreciated (i.e. send me your libraries!).
Please let me know if you find bugs, have questions, or anything like that.
Also I'll admit I vastly prefer the autotools warts and all to cmake. But I'll poke about at it later.
For my own stuff I have a template git repo setup that I can use that sets up autotools/pkg-config/gcc/clang flags as needed that serves me rather well.
I hadn't come across ccan before your post, so my thoughts on it are fairly superficial. [warn me if I'm off track]
From what I can tell, it's been around for a while, has countless modules, and probably is a better choice than Kit at this point, given the early stage of this project.
There are two main differences: (1) Kit is a project manager, while CCAN is a code archive, and (2) Kit modules are compiled libraries, while CCAN distributes source code only.
So, I suppose one would decide in favor of Kit because of its whole-scope approach. If not that, because CCAN looks quite hackish at first glance. From its homepage: "just hack whatever parts you want so it compiles in your project".
> Kit modules are compiled libraries, while CCAN distributes source code only.
Could you expand on this? I assume pulling the source, compiling locally, and then adding the headers and libs to a project local include or link path. Is it individual directories for each dependency or do they get mixed together?
How are you handling macros? Do you have some preset defines you're passing in for different platforms?
I think it's an interesting idea and definitely has more polish than ccan. I don't know if I'd ever give up fine grained control in production but for small personal projects this would be ideal.
You're correct. When fetched, modules are given their own directory and compiled locally (one directory per module/dependency). New projects are then scanned for dependencies, linked against pre-compiled libraries, and necessary headers are added to the search path.
In terms of presets, I have some [basic] defaults included myself, but more can be added in an optional config file, along with arbitrary compiler flags.
Kit is optimized for simple projects, where crazy build scripts aren't needed. So, yeah, for fine-grained control, I'd stick to existing tools. However, this may be more pleasant than alternatives for personal projects, as you mention.
5 comments
[ 4.8 ms ] story [ 18.1 ms ] threadI'm hoping to lessen the pain in dealing with tools like gcc and make/cmake/etc. More importantly, C libraries are scattered inaccessibly throughout the web, and Kit provides a central index of modularized units. What's most important going forward is to gather useful libraries, modify them to meet kit standards, and link them in this central registry. Any help there would be appreciated (i.e. send me your libraries!).
Please let me know if you find bugs, have questions, or anything like that.
http://ccodearchive.net/
Also I'll admit I vastly prefer the autotools warts and all to cmake. But I'll poke about at it later.
For my own stuff I have a template git repo setup that I can use that sets up autotools/pkg-config/gcc/clang flags as needed that serves me rather well.
From what I can tell, it's been around for a while, has countless modules, and probably is a better choice than Kit at this point, given the early stage of this project.
There are two main differences: (1) Kit is a project manager, while CCAN is a code archive, and (2) Kit modules are compiled libraries, while CCAN distributes source code only.
So, I suppose one would decide in favor of Kit because of its whole-scope approach. If not that, because CCAN looks quite hackish at first glance. From its homepage: "just hack whatever parts you want so it compiles in your project".
Could you expand on this? I assume pulling the source, compiling locally, and then adding the headers and libs to a project local include or link path. Is it individual directories for each dependency or do they get mixed together?
How are you handling macros? Do you have some preset defines you're passing in for different platforms?
I think it's an interesting idea and definitely has more polish than ccan. I don't know if I'd ever give up fine grained control in production but for small personal projects this would be ideal.
In terms of presets, I have some [basic] defaults included myself, but more can be added in an optional config file, along with arbitrary compiler flags.
Kit is optimized for simple projects, where crazy build scripts aren't needed. So, yeah, for fine-grained control, I'd stick to existing tools. However, this may be more pleasant than alternatives for personal projects, as you mention.