distributable: url: https://github.com/libgeos/geos/releases/download/{{version}}/geos-{{version}}.tar.bz2 strip-components: 1 versions: github: libgeos/geos/releases/tags build: dependencies: cmake.org: '*' working-directory: build script: | cmake .. $ARGS make --jobs {{ hw.concurrency }} make install env: ARGS: - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_INSTALL_PREFIX={{prefix}} provides: - bin/geosop - bin/geos-config test: fixture: | #include #include #include static void geos_message_handler(const char* fmt, ...) { va_list ap; va_start(ap, fmt); vprintf (fmt, ap); va_end(ap); } int main() { initGEOS(geos_message_handler, geos_message_handler); const char* wkt_a = "POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))"; const char* wkt_b = "POLYGON((5 5, 15 5, 15 15, 5 15, 5 5))"; GEOSWKTReader* reader = GEOSWKTReader_create(); GEOSGeometry* geom_a = GEOSWKTReader_read(reader, wkt_a); GEOSGeometry* geom_b = GEOSWKTReader_read(reader, wkt_b); GEOSGeometry* inter = GEOSIntersection(geom_a, geom_b); GEOSWKTWriter* writer = GEOSWKTWriter_create(); GEOSWKTWriter_setTrim(writer, 1); char* wkt_inter = GEOSWKTWriter_write(writer, inter); printf("Intersection(A, B): %s\\n", wkt_inter); return 0; } script: | mv $FIXTURE test.c cc test.c -lgeos_c ./a.out