diff --git a/CMakeLists.txt b/CMakeLists.txt index 572878f1..e324e603 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/CMakeUserPresets.json b/CMakeUserPresets.json new file mode 100644 index 00000000..02793486 --- /dev/null +++ b/CMakeUserPresets.json @@ -0,0 +1,9 @@ +{ + "version": 4, + "vendor": { + "conan": {} + }, + "include": [ + "build\\CMakePresets.json" + ] +} \ No newline at end of file diff --git a/dependencies.dep b/dependencies.dep deleted file mode 100644 index 8dd07816..00000000 --- a/dependencies.dep +++ /dev/null @@ -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 \ No newline at end of file diff --git a/graphics/CMakeLists.txt b/graphics/CMakeLists.txt index 5bdf0821..f8beb55a 100644 --- a/graphics/CMakeLists.txt +++ b/graphics/CMakeLists.txt @@ -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 ) diff --git a/utilities/CMakeLists.txt b/utilities/CMakeLists.txt index d12c4098..f9dcdb4d 100644 --- a/utilities/CMakeLists.txt +++ b/utilities/CMakeLists.txt @@ -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