From cb4881ceceaf2be0376103835114e283581b5e96 Mon Sep 17 00:00:00 2001 From: Steven Tracey Date: Wed, 20 Nov 2024 00:26:05 -0500 Subject: [PATCH] blah --- .gitignore | 3 +- build.sh | 5 +-- c/libs/go_p2fa.h | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ c/src/p2fa.c | 2 ++ go/build-go.sh | 2 ++ 5 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 c/libs/go_p2fa.h create mode 100644 go/build-go.sh diff --git a/.gitignore b/.gitignore index d4ffe2a..e392155 100644 --- a/.gitignore +++ b/.gitignore @@ -114,4 +114,5 @@ CTestTestfile.cmake _deps c/build -!c/Makefile \ No newline at end of file +!c/Makefile +go/go_p2fa.h \ No newline at end of file diff --git a/build.sh b/build.sh index f7fe3a9..7936d85 100644 --- a/build.sh +++ b/build.sh @@ -2,7 +2,8 @@ cd go go build -buildmode c-shared -ldflags="-w -s" -trimpath -v -o "go_p2fa.so" rm -rf ../c/libs/go_p2fa.* -cp go_p2fa.* ../c/libs/ +cp go_p2fa.h ../c/libs/ +cp go_p2fa.so ../c/libs/libgo_p2fa.so cd ../c -LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./libs +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./libs make -j1 diff --git a/c/libs/go_p2fa.h b/c/libs/go_p2fa.h new file mode 100644 index 0000000..cdac00b --- /dev/null +++ b/c/libs/go_p2fa.h @@ -0,0 +1,85 @@ +/* Code generated by cmd/cgo; DO NOT EDIT. */ + +/* package P2FA */ + + +#line 1 "cgo-builtin-export-prolog" + +#include + +#ifndef GO_CGO_EXPORT_PROLOGUE_H +#define GO_CGO_EXPORT_PROLOGUE_H + +#ifndef GO_CGO_GOSTRING_TYPEDEF +typedef struct { const char *p; ptrdiff_t n; } _GoString_; +#endif + +#endif + +/* Start of preamble from import "C" comments. */ + + + + +/* End of preamble from import "C" comments. */ + + +/* Start of boilerplate cgo prologue. */ +#line 1 "cgo-gcc-export-header-prolog" + +#ifndef GO_CGO_PROLOGUE_H +#define GO_CGO_PROLOGUE_H + +typedef signed char GoInt8; +typedef unsigned char GoUint8; +typedef short GoInt16; +typedef unsigned short GoUint16; +typedef int GoInt32; +typedef unsigned int GoUint32; +typedef long long GoInt64; +typedef unsigned long long GoUint64; +typedef GoInt64 GoInt; +typedef GoUint64 GoUint; +typedef size_t GoUintptr; +typedef float GoFloat32; +typedef double GoFloat64; +#ifdef _MSC_VER +#include +typedef _Fcomplex GoComplex64; +typedef _Dcomplex GoComplex128; +#else +typedef float _Complex GoComplex64; +typedef double _Complex GoComplex128; +#endif + +/* + static assertion to make sure the file is being used on architecture + at least with matching size of GoInt. +*/ +typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1]; + +#ifndef GO_CGO_GOSTRING_TYPEDEF +typedef _GoString_ GoString; +#endif +typedef void *GoMap; +typedef void *GoChan; +typedef struct { void *t; void *v; } GoInterface; +typedef struct { void *data; GoInt len; GoInt cap; } GoSlice; + +#endif + +/* End of boilerplate cgo prologue. */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern __declspec(dllexport) void loadConfigs(); +extern __declspec(dllexport) GoSlice getConfigNames(); +extern __declspec(dllexport) GoString getCode(GoString configName); +extern __declspec(dllexport) GoUint64 getTimeRemaining(GoInt n); +extern __declspec(dllexport) GoUint64 getTimeRemainingMS(GoInt n); + +#ifdef __cplusplus +} +#endif diff --git a/c/src/p2fa.c b/c/src/p2fa.c index 4c56070..6fadbf5 100644 --- a/c/src/p2fa.c +++ b/c/src/p2fa.c @@ -187,6 +187,8 @@ int drawOld() { int main() { signal(SIGINT, Handler); + loadConfigs(); + draw(); return 0; diff --git a/go/build-go.sh b/go/build-go.sh new file mode 100644 index 0000000..1ea6905 --- /dev/null +++ b/go/build-go.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +go build -buildmode c-shared -ldflags="-w -s" -trimpath -v -o "go_p2fa.so" \ No newline at end of file