This commit is contained in:
23
.gitea/workflows/ci.yml
Normal file
23
.gitea/workflows/ci.yml
Normal file
@@ -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
|
||||||
27
CMakeLists.txt
Normal file
27
CMakeLists.txt
Normal file
@@ -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
|
||||||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||||
|
$<INSTALL_INTERFACE:include>
|
||||||
|
)
|
||||||
|
|
||||||
|
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)
|
||||||
0
include/curtle/curtle.h
Normal file
0
include/curtle/curtle.h
Normal file
11
include/curtle/linear_algebra.h
Normal file
11
include/curtle/linear_algebra.h
Normal file
@@ -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
|
||||||
5
src/linear_algebra.c
Normal file
5
src/linear_algebra.c
Normal file
@@ -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};
|
||||||
|
}
|
||||||
12
tests/test_linear_algebra.c
Normal file
12
tests/test_linear_algebra.c
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#include <assert.h>
|
||||||
|
#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);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user