diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..d89e6d7 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,23 @@ +name: CI + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: install deps + run: sudo apt install cmake + + - name: build + run: | + cmake -B build + cmake --build build + + - name: test + run: | + cd build + ctest \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..58f442b --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 4.1) +project(curtle VERSION 0.1.0 LANGUAGES C) + +add_library(curtle + src/linear_algebra.c +) + +target_include_directories(curtle + PUBLIC + $ + $ +) + +install(TARGETS curtle + EXPORT curtleTargets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +install(DIRECTORY include/ DESTINATION include) + +enable_testing() + +add_executable(test_linear_algebra tests/test_linear_algebra.c) +target_link_libraries(test_linear_algebra curtle) + +add_test(NAME linear_algebra_test COMMAND test_linear_algebra) \ No newline at end of file diff --git a/include/curtle/curtle.h b/include/curtle/curtle.h new file mode 100644 index 0000000..e69de29 diff --git a/include/curtle/linear_algebra.h b/include/curtle/linear_algebra.h new file mode 100644 index 0000000..0c33aad --- /dev/null +++ b/include/curtle/linear_algebra.h @@ -0,0 +1,11 @@ +#ifndef CURTLE_VECTOR_H +#define CURTLE_VECTOR_H + +typedef struct { + double x; + double y; +} vec2; + +vec2 vec2_add(vec2 a, vec2 b); + +#endif \ No newline at end of file diff --git a/src/linear_algebra.c b/src/linear_algebra.c new file mode 100644 index 0000000..8afa077 --- /dev/null +++ b/src/linear_algebra.c @@ -0,0 +1,5 @@ +#include "curtle/linear_algebra.h" + +vec2 vec2_add(vec2 a, vec2 b) { + return (vec2){a.x + b.x, a.y + b.y}; +} \ No newline at end of file diff --git a/tests/test_linear_algebra.c b/tests/test_linear_algebra.c new file mode 100644 index 0000000..3e6ba3e --- /dev/null +++ b/tests/test_linear_algebra.c @@ -0,0 +1,12 @@ +#include +#include "curtle/linear_algebra.h" + +int main() { + vec2 a = {1,2}; + vec2 b = {3,4}; + + vec2 r = vec2_add(a,b); + + assert(r.x == 4); + assert(r.y == 6); +} \ No newline at end of file