This commit is contained in:
Piotr Krygier committed 2025-06-20 13:44:33 +02:00
1 parent e80faf80b2
commit 45be08019e
5 files changed
+15 -73

No files matched your search

+1 -3
View File
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.23)
cmake_minimum_required(VERSION 4.0.1)
project("RedScarfEngine"
VERSION 0.0.1
DESCRIPTION "Vulkan based 3D engine"
@@ -7,8 +7,6 @@ project("RedScarfEngine"
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
add_subdirectory(red_scarf_engine)
add_subdirectory(utilities)
add_subdirectory(graphics)
+9
View File
@@ -0,0 +1,9 @@
{
"version": 4,
"vendor": {
"conan": {}
},
"include": [
"build\\CMakePresets.json"
]
}
-29
View File
@@ -1,29 +0,0 @@
[GLFW]
git_url = https://github.com/glfw/glfw.git
tag = 3.3.8
custom_commands = cd GLFW && mkdir build && cd build && cmake .. -D BUILD_SHARED_LIBS=ON && make
[Vulkan-SDK]
dl_url = https://sdk.lunarg.com/sdk/download/1.3.250.1/linux/vulkansdk-linux-x86_64-1.3.250.1.tar.gz
custom_commands = tar -xf Vulkan-SDK && mv 1.3.250.1 vulkan && rm Vulkan-SDK && cd vulkan && ./vulkansdk -j 4 glslang vulkan-headers loader layers tools shaderc vulkan-extensionlayer
[vma]
git_url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
tag = v3.0.1
[Criterion]
git_url = https://github.com/Snaipe/Criterion.git
tag = v2.4.2
custom_commands = cd Criterion && meson build && cd build && ninja
[stb]
git_url = https://github.com/nothings/stb.git
tag = master
[FreeType]
dl_url = https://download.savannah.gnu.org/releases/freetype/freetype-2.10.0.tar.gz
custom_commands = tar -xf FreeType && mv freetype-2.10.0 freetype && rm FreeType && cd freetype && cmake -E make_directory build && cmake -E chdir build cmake -D BUILD_SHARED_LIBS:BOOL=true .. && cmake --build build
[CMock]
git_url = https://github.com/throwtheswitch/cmock.git
custom_commands = cd cmock && bundle install
+5 -40
View File
@@ -1,54 +1,19 @@
find_package(Vulkan REQUIRED)
find_package(VulkanHeaders REQUIRED)
find_package(glfw3 REQUIRED)
find_package(FreeType REQUIRED)
find_package(Vulkan COMPONENTS glslc)
find_program(glslc_executable NAMES glslc HINTS ${Vulkan_GLSLC_EXECUTABLE}/..)
find_package(freetype REQUIRED)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror")
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/shaders)
add_library(graphics SHARED)
cmake_policy(SET CMP0116 NEW)
function(compile_shader)
cmake_parse_arguments(PARSE_ARGV 1 arg "" "ENV;FORMAT" "SOURCES")
foreach(source ${arg_SOURCES})
message(${source}.${arg_FORMAT})
add_custom_command(
OUTPUT ${source}.${arg_FORMAT}
DEPENDS ${source}
COMMAND
${glslc_executable}
-o ${source}.${arg_FORMAT}
${CMAKE_CURRENT_SOURCE_DIR}/${source}
)
endforeach()
endfunction()
compile_shader(graphics
ENV opengl
FORMAT num
SOURCES
shaders/shader.vert
shaders/solid_objects.frag
shaders/on_screen_text.frag
)
add_library(graphics SHARED
shaders/shader.vert.num
shaders/solid_objects.frag.num
shaders/on_screen_text.frag.num
)
target_include_directories(graphics PRIVATE
${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/third_party/include/
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}
${Vulkan_INCLUDE_DIR}
${vma_INCLUDE_DIR}
${glfw3_INCLUDE_DIR}
${stb_INCLUDE_DIR}
${FreeType_INCLUDE_DIR}
)
target_sources(graphics PRIVATE
@@ -71,7 +36,7 @@ src/descriptor_builder.c
target_link_libraries(graphics PUBLIC
utilities
${Vulkan_LIBRARIES}
vulkan-headers::vulkan-headers
glfw
${freetype}
Freetype::Freetype
)
-1
View File
@@ -9,7 +9,6 @@ target_include_directories(utilities PRIVATE
target_sources(utilities PRIVATE
src/file_utils.c
src/logger.c
src/task_linux.c
)
target_link_libraries(utilities PRIVATE