= PCC
:url-dub: https://dub.pm
:url-importc: https://dlang.org/spec/importc.html
PCC is a library that allows you to compile a set of C source code files into a static archive that can be linked to by {url-dub}[DUB] when compiling your project.
== Usage
Please see the example provided in the link:./example[`example/`] directory.
== Requirements
This package requires access to a C compiler when the build script is being run -- it does not provide a C compiler itself. On UNIX platforms this requires `cc` to be a C compiler, which is typically GCC or Clang.
== How Does It Compared to ImportC?
If you're unfamiliar with {url-importc}[ImportC], it is a relatively new feature of D implementations (first released with D 2.098, which was published on October 10, 2021). It allows you to import C code as if it were D code by using the standard `import` statement. For projects only supporting D 2.101 and newer, I'd suggest taking a look at {url-importc}[ImportC] instead of PCC.
PCC is meant to make it easier to distribute C source code files with your D projects and compile them "on-the-fly" for D 2.100 and older.
== Future Improvements
* [ ] Toggling of common C flags (`-Wall`, for example)
* [ ] C++ support.
* [ ] Allow choosing GCC or Clang specifically.
'''
PCC was inspired by the https://docs.rs/cc[`cc`] rust crate.