0 purchases
dartle c
DartleC #
A Dartle extension to compile C projects.
It compiles C code into object files incrementally (compileC task),
then generates a binary executable from the object files (linkC task).
DartleC can be used as a command-line utility, dcc, or as a Dartle library (to integrate with other Dartle-based tools).
Using the executable dcc #
DartleC can be used as a command-line utility to compile C code.
To use it in that way, activate it with pub:
dart pub global activate dartle_c
copied to clipboard
After this, running dcc will compile all C files found in a src directory to the out dir,
generating a binary executable named a.out.
Tasks #
compileC - Compiles C source code into object files.
linkC - Links object files, creating a binary executable.
cleanC - Deletes the outputs of all other tasks.
linkC depends on compileC and is the default task. Hence, simply running dcc
will run both tasks as necessary.
To only compile the C source files without generating an executable,
and using a specific cstd version:
dcc compileC :-cstd=c99
copied to clipboard
The : before the argument to the compileC task is necessary because otherwise
Dartle uses the argument instead of passing it on to the task.
Notice that Dartle allows calling tasks by typing only their partial names, so for example,
the compileC task can be run by typing dcc comp or dcc coC. To run linkC, if no
extra tasks are added, requires only dcc l (as no other tasks start with an l).
Useful options:
# show usage and available options
dcc -h
# show all tasks
dcc -s
# enable verbose (`debug`) output
dcc -l debug
copied to clipboard
Configuring dcc #
To configure dcc, create a dcc.yaml file at the project root directory with contents as shown
below (all properties are optional):
compiler: gcc
compiler-args: ["-std=c2x", "-Wall", "-Werror", "-ansi", "-pedantic"]
linker-args: ["-shared"]
objects-dir: out
source-dirs: [src]
# instead of source-dirs, you can also list files explicitly:
# source-files: [foo.c, bar.c]
output: my-binary
copied to clipboard
The compiler is chosen depending on the platform if not provided.
You can also set the CC environment variable to choose one.
Task options are added to the compiler-args provided in the YAML configuration file.
Using DartleC as a library. #
To include DartleC in your existing Dartle build, or to write your own build system based on
DartleC, add it as a dependency of your Dart project:
dart pub add dartle_c
copied to clipboard
Check this project's example for how to use its API.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.