This commit is contained in:
parent
1e84b30477
commit
fc23cfc600
26 changed files with 107 additions and 145 deletions
115
.drone.yml
115
.drone.yml
|
@ -2,121 +2,12 @@ kind: pipeline
|
|||
type: docker
|
||||
name: linux_amd64
|
||||
|
||||
environment:
|
||||
CONAN_REVISIONS_ENABLED: "1"
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
volumes:
|
||||
- name: dockersock
|
||||
host:
|
||||
path: /var/run/docker.sock
|
||||
|
||||
- name: py
|
||||
temp: {}
|
||||
|
||||
- name: conan
|
||||
host:
|
||||
path: /root/.conan2/
|
||||
|
||||
|
||||
services:
|
||||
- name: docker
|
||||
image: docker:dind
|
||||
privileged: true
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run/
|
||||
|
||||
steps:
|
||||
- name: build image
|
||||
image: docker:latest
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run/docker.sock
|
||||
commands:
|
||||
- until docker info; do echo "Waiting for Docker daemon..."; sleep 1; done
|
||||
- docker build -t ubuntu_amd64 -f ./tools/docker/linux_amd64 .
|
||||
- docker images
|
||||
|
||||
- name: environment info
|
||||
image: ubuntu_amd64:latest
|
||||
- name: clang format
|
||||
image: alpine_amd64__clang_format
|
||||
pull: if-not-exists
|
||||
volumes:
|
||||
- name: py
|
||||
path: /opt/venv/
|
||||
|
||||
commands:
|
||||
- . /opt/venv/bin/activate
|
||||
- whoami
|
||||
- uname -a
|
||||
- pip --version
|
||||
- python3 --version
|
||||
- conan --version
|
||||
- cmake --version
|
||||
- gcc --version
|
||||
- g++ --version
|
||||
- clang --version
|
||||
- clang++ --version
|
||||
- clang-tidy --version
|
||||
|
||||
- name: build gcc
|
||||
image: ubuntu_amd64:latest
|
||||
pull: if-not-exists
|
||||
volumes:
|
||||
- name: py
|
||||
path: /opt/venv/
|
||||
- name: conan
|
||||
path: /root/.conan2
|
||||
|
||||
commands:
|
||||
- . /opt/venv/bin/activate
|
||||
- rm -rvf ./build
|
||||
- export CC=$(which gcc)
|
||||
- export CXX=$(which g++)
|
||||
|
||||
- conan install . --build=missing --profile:build="$(pwd)/tools/conan/profiles/linux_gcc_amd64" --profile:host="$(pwd)/tools/conan/profiles/linux_gcc_amd64"
|
||||
- conan build . --profile:build="$(pwd)/tools/conan/profiles/linux_gcc_amd64" --profile:host="$(pwd)/tools/conan/profiles/linux_gcc_amd64"
|
||||
|
||||
- ./build/Release/modules/light/light
|
||||
|
||||
- name: build clang
|
||||
image: ubuntu_amd64:latest
|
||||
pull: if-not-exists
|
||||
volumes:
|
||||
- name: py
|
||||
path: /opt/venv/
|
||||
- name: conan
|
||||
path: /root/.conan2
|
||||
|
||||
commands:
|
||||
- . /opt/venv/bin/activate
|
||||
- rm -rvf ./build
|
||||
- export CC=$(which clang)
|
||||
- export CXX=$(which clang++)
|
||||
|
||||
- conan install . --build=missing --profile:build="$(pwd)/tools/conan/profiles/linux_clang_amd64" --profile:host="$(pwd)/tools/conan/profiles/linux_clang_amd64"
|
||||
- conan build . --profile:build="$(pwd)/tools/conan/profiles/linux_clang_amd64" --profile:host="$(pwd)/tools/conan/profiles/linux_clang_amd64"
|
||||
|
||||
- ./build/Release/modules/light/light
|
||||
|
||||
- name: static analysis
|
||||
image: ubuntu_amd64:latest
|
||||
pull: if-not-exists
|
||||
commands:
|
||||
- echo "[TODO] Implement static analysis"
|
||||
|
||||
- name: run tests
|
||||
image: ubuntu_amd64:latest
|
||||
pull: if-not-exists
|
||||
commands:
|
||||
- echo "[TODO] Implement tests"
|
||||
- ./build/Release/modules/light/light
|
||||
|
||||
- name: report coverage
|
||||
image: ubuntu_amd64:latest
|
||||
pull: if-not-exists
|
||||
commands:
|
||||
- echo "[TODO] Implement coverage report"
|
||||
commands: $(git rev-parse --show-toplevel)/tools/ci/alpine_amd64/script.sh
|
||||
|
|
|
@ -2,8 +2,9 @@ cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
|||
project("light" LANGUAGES CXX)
|
||||
|
||||
include(tools/cmake/preliminary.cmake)
|
||||
include(tools/cmake/module_macros.cmake)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 23)
|
||||
set(CMAKE_CXX_STANDARD 26)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
add_option(ENABLE_SANITIZERS "Enables fsan sanitizers")
|
||||
|
|
9
CMakeUserPresets.json
Normal file
9
CMakeUserPresets.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"version": 4,
|
||||
"vendor": {
|
||||
"conan": {}
|
||||
},
|
||||
"include": [
|
||||
"build/Debug/generators/CMakePresets.json"
|
||||
]
|
||||
}
|
|
@ -1,3 +1,4 @@
|
|||
.. toctree::
|
||||
./architecture.rst
|
||||
./philosophy.rst
|
||||
|
||||
|
|
6
docs/philosophy.rst
Normal file
6
docs/philosophy.rst
Normal file
|
@ -0,0 +1,6 @@
|
|||
Philosophy
|
||||
=========================
|
||||
|
||||
|
||||
Code is documentation
|
||||
------------------------
|
|
@ -1,3 +1,3 @@
|
|||
add_subdirectory(universal_pch)
|
||||
add_subdirectory(pch)
|
||||
|
||||
add_subdirectory(light)
|
||||
add_subdirectory(engine)
|
||||
|
|
6
modules/ecs/private/sparse_set.hpp
Normal file
6
modules/ecs/private/sparse_set.hpp
Normal file
|
@ -0,0 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
namespace lt::ecs {
|
||||
|
||||
|
||||
}
|
2
modules/engine/CMakeLists.txt
Normal file
2
modules/engine/CMakeLists.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
add_executable(engine ${CMAKE_CURRENT_SOURCE_DIR}/private/entrypoint.cpp)
|
||||
target_link_libraries(engine PRIVATE pch)
|
|
@ -1,3 +0,0 @@
|
|||
add_executable(light ${CMAKE_CURRENT_SOURCE_DIR}/src/entrypoint.cpp)
|
||||
|
||||
target_link_libraries(light PRIVATE universal_pch errors)
|
|
@ -1,2 +1,2 @@
|
|||
add_library_module(universal_pch)
|
||||
target_precompile_headers(universal_pch INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/src/pch.hpp)
|
||||
target_precompile_headers(universal_pch INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/public/pch/pch.hpp)
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <universal_pch/error_handling/types.hpp>
|
||||
#include <universal_pch/module_configs.hpp>
|
||||
#include <pch/error_handling/types.hpp>
|
||||
#include <pch/module_configs.hpp>
|
||||
|
||||
namespace lt {
|
||||
|
|
@ -19,7 +19,7 @@ public:
|
|||
|
||||
[[nodiscard]] auto what() const noexcept -> const char * override
|
||||
{
|
||||
return "Idk fuck all";
|
||||
return "";
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -28,4 +28,5 @@ private:
|
|||
|
||||
template<typename T>
|
||||
using Expected = std::expected<T, Error>;
|
||||
|
||||
} // namespace lt
|
7
modules/pch/public/pch/pch.hpp
Normal file
7
modules/pch/public/pch/pch.hpp
Normal file
|
@ -0,0 +1,7 @@
|
|||
#pragma once
|
||||
|
||||
#include <pch/std_headers.hpp>
|
||||
|
||||
/* error_handling */
|
||||
#include <pch/error_handling/checks.hpp>
|
||||
#include <pch/error_handling/types.hpp>
|
0
modules/renderer/CMakeLists.txt
Normal file
0
modules/renderer/CMakeLists.txt
Normal file
7
modules/renderer/private/impls/vulkan/context.hpp
Normal file
7
modules/renderer/private/impls/vulkan/context.hpp
Normal file
|
@ -0,0 +1,7 @@
|
|||
namespace lt::render::vk {
|
||||
|
||||
struct Context
|
||||
{
|
||||
};
|
||||
|
||||
} // namespace lt::render::vk
|
|
@ -1,7 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include <universal_pch/std_headers.hpp>
|
||||
|
||||
/* error_handling */
|
||||
#include <universal_pch/error_handling/checks.hpp>
|
||||
#include <universal_pch/error_handling/types.hpp>
|
4
tools/ci/alpine_amd64/clang_format/Dockerfile
Normal file
4
tools/ci/alpine_amd64/clang_format/Dockerfile
Normal file
|
@ -0,0 +1,4 @@
|
|||
FROM alpine:latest
|
||||
|
||||
RUN apk add --no-cache \
|
||||
clang-extra-tools
|
0
tools/ci/alpine_amd64/clang_format/profile_build
Normal file
0
tools/ci/alpine_amd64/clang_format/profile_build
Normal file
0
tools/ci/alpine_amd64/clang_format/profile_host
Normal file
0
tools/ci/alpine_amd64/clang_format/profile_host
Normal file
13
tools/ci/alpine_amd64/clang_format/script.sh
Executable file
13
tools/ci/alpine_amd64/clang_format/script.sh
Executable file
|
@ -0,0 +1,13 @@
|
|||
set -e
|
||||
cd $(git rev-parse --show-toplevel)
|
||||
|
||||
find ./modules -name '*.?pp' | while read -r file; do
|
||||
echo "Checking format for $file"
|
||||
if ! clang-format --dry-run --Werror "$file"; then
|
||||
echo "❌ Formatting issue detected in $file"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
echo "✅ All files are properly formatted"
|
||||
exit 0
|
6
tools/ci/alpine_amd64/install_images.sh
Executable file
6
tools/ci/alpine_amd64/install_images.sh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
ALPINE_AMD64=$(git rev-parse --show-toplevel)/tools/ci/alpine_amd64/
|
||||
|
||||
cd ${ALPINE_AMD64}/clang_format/
|
||||
docker build -t alpine_amd64__clang_format
|
34
tools/cmake/module_macros.cmake
Normal file
34
tools/cmake/module_macros.cmake
Normal file
|
@ -0,0 +1,34 @@
|
|||
macro (add_library_module libname)
|
||||
if ("${ARGN}" STREQUAL "") # Header only library
|
||||
message("Adding INTERFACE library ${libname}")
|
||||
add_library(${libname} INTERFACE)
|
||||
target_include_directories(${libname} INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/public)
|
||||
|
||||
# Do not link universal_pch against universal_pch :D
|
||||
if (NOT ${libname} STREQUAL "universal_pch")
|
||||
target_link_libraries(${libname} INTERFACE universal_pch)
|
||||
endif ()
|
||||
|
||||
else () # Compiled library
|
||||
set(source_files)
|
||||
set(source_directory "${CMAKE_CURRENT_SOURCE_DIR}/private")
|
||||
foreach (source_file ${ARGN})
|
||||
list(APPEND source_files "${source_directory}/${source_file}")
|
||||
endforeach ()
|
||||
|
||||
message("Adding library ${libname} with source files: ${source_files}")
|
||||
add_library(${libname} ${source_files})
|
||||
target_include_directories(${libname} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/public)
|
||||
target_include_directories(${libname} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/private)
|
||||
target_compile_options(${libname} PRIVATE ${WARNING_FLAGS})
|
||||
|
||||
# Do not link universal_pch against universal_pch :D
|
||||
if (NOT ${libname} STREQUAL "universal_pch")
|
||||
target_link_libraries(${libname} PUBLIC universal_pch)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (ENABLE_STATIC_ANALYSIS)
|
||||
set_target_properties(${libname} PROPERTIES CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND}")
|
||||
endif ()
|
||||
endmacro ()
|
|
@ -1,16 +0,0 @@
|
|||
FROM ubuntu:latest
|
||||
|
||||
RUN apt update
|
||||
RUN apt-get install -y \
|
||||
build-essential \
|
||||
cmake \
|
||||
clang \
|
||||
clang-tidy \
|
||||
gcc \
|
||||
g++ \
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3.12-venv
|
||||
|
||||
RUN python3 -m venv /opt/venv
|
||||
RUN . /opt/venv/bin/activate && pip install conan==2.5.0
|
Loading…
Add table
Reference in a new issue