Compare commits

...

12 Commits

8 changed files with 63 additions and 258137 deletions

10
.dockerignore Normal file
View File

@ -0,0 +1,10 @@
README.md
LICENSE
.pre-commit-config.yaml
.gitignore
.clang-format
examples
Dockerfile
build
builddir
out

3
.gitignore vendored
View File

@ -4,3 +4,6 @@ builddir
*.kb
*.obk
!examples/*.obk
sqlite/*.c
sqlite/*.h
out

26
Dockerfile Normal file
View File

@ -0,0 +1,26 @@
FROM ubuntu:22.04 AS build-prep
RUN apt update && apt upgrade -y
RUN apt install -y llvm clangd meson ninja-build pkg-config libsqlite3-dev doxygen graphviz wget unzip
WORKDIR /obelisk
COPY . .
RUN ./sqlite.sh
FROM build-prep AS build-machine
RUN meson --prefix=/usr build
RUN cd build && ninja -v
FROM build-machine AS build-machine-intermediate
RUN cd /obelisk/build/src/lib && rm -rf *.h *.p models
FROM scratch AS obelisk
COPY --from=build-machine-intermediate /obelisk/build/src /bin/
COPY --from=build-machine-intermediate /obelisk/build/src/lib /lib/
COPY --from=build-machine-intermediate /obelisk/build/doc/man /man/
COPY --from=build-machine-intermediate /obelisk/build/doc/html /doc/
ENTRYPOINT [ "/bin/obelisk" ]
FROM scratch AS binaries
COPY --from=obelisk /bin/obelisk /bin/
COPY --from=obelisk /lib /lib/
COPY --from=obelisk /man /man/
COPY --from=obelisk /doc /doc/

View File

@ -7,13 +7,16 @@ The Obelisk project is a declarative language designed to help with the implemen
- Meson
- Ninja
- LLVM 14
- sqlite 3
- sqlite 3 library and headers(in debian libsqlite3-dev)
- C++ 17
- C 17
## Build
### Normal build
```
./sqlite.sh
meson builddir
cd buildir
ninja
@ -23,6 +26,14 @@ This process will generate the binary "obelisk", a shared library "libobelisk.so
The binary is used to compile and create obelisk knowledge bases and the the libraries can be linked against to consult the Obelisk knowledge base from any software that can link with the libraries.
### Build in docker image
```
docker build ./ --output=out
```
This will create a directory called out which will contain the binaries, libraries, and generated documentation.
## Install
```

View File

@ -1,7 +1,7 @@
project('obelisk',
'c',
'cpp',
version : '1.0.3',
version : '1.0.4',
license : 'BSD-3-Clause',
default_options : [
'warning_level=3',

11
sqlite.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/bash
VERSION=sqlite-amalgamation-3410000
pushd sqlite
wget https://sqlite.org/2023/${VERSION}.zip
unzip ${VERSION}.zip
cp ${VERSION}/sqlite3.c .
cp ${VERSION}/sqlite3.h .
rm -rf ${VERSION} ${VERSION}.zip
popd

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff