Add a build action
All checks were successful
Test / build (push) Successful in 21s

This commit is contained in:
2025-08-01 21:18:16 +02:00
parent 96817ee672
commit d2dea66ddb
4 changed files with 44 additions and 11 deletions

View File

@@ -0,0 +1,25 @@
name: Test
on:
push:
branches:
- '**'
pull_request:
branches: [master]
jobs:
build:
runs-on: alpine
steps:
- name: Set up environment
shell: ash {0}
run: |
apk -U upgrade
apk add --no-cache git bash cmake build-base ninja-is-really-ninja boost-dev
- uses: actions/checkout@v4
- name: Build
run: |
cmake -B build -G Ninja -DKATJA_BUILD_TUI=Off
ninja -C build
- name: Run tests
run: ninja -C build test

View File

@@ -2,25 +2,29 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
cmake_minimum_required(VERSION 4.0)
project(Katja)
cmake_minimum_required(VERSION 3.30)
project(Katja LANGUAGES CXX)
include(CTest)
include(FetchContent)
option(KATJA_BUILD_TUI "Build text user interface" ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_MODULE_STD 1)
add_library(katja
katja/database.cpp include/katja/database.hpp
katja/sbo.cpp include/katja/sbo.hpp
katja/repository.cpp include/katja/repository.hpp
katja/database.cpp include/katja/database.hpp
katja/sbo.cpp include/katja/sbo.hpp
katja/repository.cpp include/katja/repository.hpp
)
include_directories(include ${Boost_INCLUDE_DIR})
add_subdirectory(cli)
if(KATJA_BUILD_TUI)
add_subdirectory(cli)
endif()
if(BUILD_TESTING)
add_subdirectory(tests)
endif()

View File

@@ -20,6 +20,14 @@ Pass `-DCMAKE_BUILD_TYPE=Debug` or `-DCMAKE_BUILD_TYPE=Release` to
This builds a CLI that can be then found in `./build/bin/katja`.
### Running the tests
To run the tests follow the build instructions first and then do:
```sh
ninja -C build test
```
## Project structure
The library code is in `katja/`. Public headers are under `include/`.

View File

@@ -9,16 +9,12 @@ FetchContent_Declare(ftxui
GIT_SHALLOW TRUE
EXCLUDE_FROM_ALL
)
FetchContent_MakeAvailable(ftxui)
FetchContent_Declare(toml11
GIT_REPOSITORY https://github.com/ToruNiina/toml11.git
GIT_TAG v4.4.0
GIT_PROGRESS TRUE
)
FetchContent_MakeAvailable(toml11)
set(FTXUI_BUILD_MODULES ON)
FetchContent_MakeAvailable(ftxui toml11)
add_executable(katja-cli main.cpp)
target_sources(katja-cli PUBLIC FILE_SET all_my_modules TYPE CXX_MODULES FILES