Skip to content

Instantly share code, notes, and snippets.

@cleverca22
Last active August 26, 2019 06:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cleverca22/9d60fe304a07a29648a3d8970e6d1336 to your computer and use it in GitHub Desktop.
Save cleverca22/9d60fe304a07a29648a3d8970e6d1336 to your computer and use it in GitHub Desktop.
with import <nixpkgs> { };
lib.fix (self: {
simple = stdenv.mkDerivation {
name = "simple";
src = lib.cleanSource ./.;
buildInputs = [ cairo ];
nativeBuildInputs = [ pkgconfig ];
installPhase = ''
mkdir -p $out/bin
cp simple $out/bin
'';
};
output = runCommand "result" { buildInputs = [ self.simple ]; } ''
mkdir $out
cd $out
simple
'';
})
#include <cairo.h>
int main (int argc, char *argv[])
{
cairo_surface_t *surface =
cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 240, 80);
cairo_t *cr =
cairo_create (surface);
cairo_select_font_face (cr, "serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size (cr, 32.0);
cairo_set_source_rgb (cr, 0.0, 0.0, 1.0);
cairo_move_to (cr, 10.0, 50.0);
cairo_show_text (cr, "Hello, world");
cairo_destroy (cr);
cairo_surface_write_to_png (surface, "hello.png");
cairo_surface_destroy (surface);
return 0;
}
CFLAGS=$(shell pkg-config --cflags cairo)
LDFLAGS=$(shell pkg-config --libs cairo)
simple: main.o
gcc $^ -o $@ $(LDFLAGS)
*.o: *.c
gcc $< -c -o $@ $(CFLAGS)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment