From 9bbbaa6e3996244b90e0bce4656f44ed821dedee Mon Sep 17 00:00:00 2001 From: vyPal <66716025+vyPal@users.noreply.github.com> Date: Thu, 4 Jan 2024 11:39:31 +0100 Subject: [PATCH] Add option to compile to obj file --- example/src/use_externally.cffc | 8 ++++++++ src/build.go | 11 ++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 example/src/use_externally.cffc diff --git a/example/src/use_externally.cffc b/example/src/use_externally.cffc new file mode 100644 index 0000000..e7cdc26 --- /dev/null +++ b/example/src/use_externally.cffc @@ -0,0 +1,8 @@ +package external; + +extern vararg func printf(fmt: *i8): i32; + +export func testing(): i64 { + printf("Hello, World!\n"); + return 0; +} \ No newline at end of file diff --git a/src/build.go b/src/build.go index b717113..faeaeca 100644 --- a/src/build.go +++ b/src/build.go @@ -57,6 +57,10 @@ func init() { Usage: "Save additional build files for debugging. ", Aliases: []string{"d"}, }, + &cli.BoolFlag{ + Name: "obj", + Usage: "Compile to an object file instead of an executable. ", + }, }, Action: build, }, @@ -156,7 +160,12 @@ func build(c *cli.Context) error { var stderr bytes.Buffer - args := append([]string{"clang", llData}, imports...) + extra := "" + if c.Bool("obj") { + extra = "-c" + } + + args := append([]string{"clang", extra, llData}, imports...) args = append(args, "-o", outName) cmd := exec.Command(args[0], args[1:]...)