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