Compare commits

...

6 Commits

5 changed files with 43 additions and 14 deletions

View File

@ -14,22 +14,49 @@ on:
jobs:
ubuntu-build:
runs-on: ubuntu-latest
name: ${{ matrix.name }}
runs-on: ubuntu-20.04
env:
CTEST_OUTPUT_ON_FAILURE: ON
CTEST_PARALLEL_LEVEL: 2
strategy:
fail-fast: false
matrix:
include:
- name: Default
cmake-args: ""
- name: Debug
cmake-args: "-DCMAKE_BUILD_TYPE=Debug"
- name: Debug-Persistence-Obfuscate
cmake-args: "-DCMAKE_BUILD_TYPE=Debug -DLAIKA_PERSISTENCE=On -DLAIKA_OBFUSCATE=On"
- name: Release
cmake-args: "-DCMAKE_BUILD_TYPE=MinSizeRel"
- name: Release-Persistence-Obfuscate
cmake-args: "-DCMAKE_BUILD_TYPE=MinSizeRel -DLAIKA_PERSISTENCE=On -DLAIKA_OBFUSCATE=On"
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Install dependencies
run: sudo apt install clang cmake -y
- name: Create CMake build files
run: cmake -B build
- name: Check compilation
- uses: actions/setup-python@v2
with:
python-version: "3.10"
- name: Install
run: pip install cmake==3.21.4 --upgrade
- name: CMake
run: cmake -S . -B build ${{ matrix.cmake-args }}
- name: Build
run: cmake --build build
- name: Upload build artifact
uses: actions/upload-artifact@v2
with:
name: laika-demo-binaries-ubuntu
name: Laika-Ubuntu-${{ matrix.name }}
path: bin
- name: Cleanup
run: rm -rf bin build
windows-build:
runs-on: windows-latest
@ -38,11 +65,11 @@ jobs:
with:
submodules: recursive
- name: Create CMake build files
run: cmake -B build
run: cmake -B build -DCMAKE_BUILD_TYPE=MinSizeRel -DLAIKA_PERSISTENCE=On -DLAIKA_OBFUSCATE=On
- name: Check compilation
run: cmake --build build
run: cmake --build build --config MinSizeRel
- name: Upload build artifact
uses: actions/upload-artifact@v2
with:
name: laika-demo-binaries-windows
name: Laika-Windows-Release-Persistence-Obfuscate
path: winbin

View File

@ -14,8 +14,9 @@ Looking for some simple tasks that need to get done for that sweet 'contributor'
- Change `lib/lin/linshell.c` to use openpty() instead of forkpty() for BSD support
- Fix address sanitizer for CMake DEBUG builds
- Change laikaT_getTime in `lib/src/ltask.c` to not use C11 features.
- Change laikaT_getTime in `lib/src/ltask.c` to not use C11 features
- Implement more LAIKA_BOX_* VMs in `lib/include/lbox.h`
- Follow GNU GPL license guidelines (read 'How to Apply These Terms to Your New Programs')
## Lib: Error Handling
Error handling in Laika is done via the 'lerror.h' header library. It's a small and simple error handling solution written for laika, however can be stripped and used as a simple error handling library. Error handling in Laika is used similarly to other languages, implementing a try & catch block and is achieved using setjmp(). The LAIKA_ERROR(...) is used to throw errors.

View File

@ -1,3 +0,0 @@
# Laika Build Process
Laika has a specific setup process that need some explanation. Before

View File

@ -13,6 +13,9 @@ file(GLOB_RECURSE LIBHEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/**.h)
add_library(LaikaLib STATIC ${LIBSOURCE} ${LIBHEADERS})
target_link_libraries(LaikaLib PUBLIC sodium)
# make sure we're compiled *AFTER* lboxconfig.h has been generated
add_dependencies(LaikaLib VMBoxGen)
# add the version definitions and the 'DEBUG' preprocessor definition if we're compiling as Debug
target_compile_definitions(LaikaLib PUBLIC "$<$<CONFIG:Debug>:DEBUG>")

View File

@ -0,0 +1 @@
../../../lib/include/lconfig.h