diff --git a/.gitmodules b/.gitmodules index cf82e7e..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,15 +0,0 @@ -[submodule "external/spdlog"] - path = external/spdlog - url = https://github.com/gabime/spdlog -[submodule "external/glm"] - path = external/glm - url = https://github.com/g-truc/glm -[submodule "external/glfw"] - path = external/glfw - url = https://github.com/glfw/glfw -[submodule "external/fmt"] - path = external/fmt - url = https://github.com/fmtlib/fmt -[submodule "external/assimp"] - path = external/assimp - url = https://github.com/assimp/assimp diff --git a/3rdParty/CMakeLists.txt b/3rdParty/CMakeLists.txt new file mode 100644 index 0000000..ac66568 --- /dev/null +++ b/3rdParty/CMakeLists.txt @@ -0,0 +1,9 @@ +add_subdirectory(zlib) +add_subdirectory(glm) +if (NOT ANDROID AND NOT IOS) +add_subdirectory(glfw) +endif() +add_subdirectory(spdlog) +add_subdirectory(assimp) +add_subdirectory(magic-enum) +add_subdirectory(yaml-cpp) \ No newline at end of file diff --git a/3rdParty/assimp/CMakeLists.txt b/3rdParty/assimp/CMakeLists.txt new file mode 100644 index 0000000..f3ea6a4 --- /dev/null +++ b/3rdParty/assimp/CMakeLists.txt @@ -0,0 +1,12 @@ +include(FetchContent) + +FetchContent_Declare( + assimp + GIT_REPOSITORY https://github.com/assimp/assimp.git + GIT_TAG v5.0.1 + GIT_SHALLOW TRUE +) +set(ASSIMP_BUILD_TESTS OFF) +set(ASSIMP_BUILD_SAMPLES OFF) +set(ASSIMP_INSTALL OFF) +FetchContent_MakeAvailable(assimp) \ No newline at end of file diff --git a/3rdParty/glfw/CMakeLists.txt b/3rdParty/glfw/CMakeLists.txt new file mode 100644 index 0000000..b8c74b8 --- /dev/null +++ b/3rdParty/glfw/CMakeLists.txt @@ -0,0 +1,9 @@ +include(FetchContent) + +FetchContent_Declare( + glfw + GIT_REPOSITORY https://github.com/glfw/glfw.git + GIT_TAG 3.3.2 + GIT_SHALLOW TRUE +) +FetchContent_MakeAvailable(glfw) \ No newline at end of file diff --git a/3rdParty/glm/CMakeLists.txt b/3rdParty/glm/CMakeLists.txt new file mode 100644 index 0000000..3d52548 --- /dev/null +++ b/3rdParty/glm/CMakeLists.txt @@ -0,0 +1,10 @@ +include(FetchContent) + +FetchContent_Declare( + glm + GIT_REPOSITORY https://github.com/g-truc/glm.git + GIT_TAG 0.9.9.8 + GIT_SHALLOW TRUE +) +set(GLM_TEST_ENABLE OFF) +FetchContent_MakeAvailable(glm) diff --git a/3rdParty/magic-enum/CMakeLists.txt b/3rdParty/magic-enum/CMakeLists.txt new file mode 100644 index 0000000..b1effde --- /dev/null +++ b/3rdParty/magic-enum/CMakeLists.txt @@ -0,0 +1,9 @@ +include(FetchContent) + +FetchContent_Declare( + magic_enum + GIT_REPOSITORY https://github.com/Neargye/magic_enum.git + GIT_TAG v0.7.0 + GIT_SHALLOW TRUE +) +FetchContent_MakeAvailable(magic_enum) \ No newline at end of file diff --git a/3rdParty/spdlog/CMakeLists.txt b/3rdParty/spdlog/CMakeLists.txt new file mode 100644 index 0000000..a0459b6 --- /dev/null +++ b/3rdParty/spdlog/CMakeLists.txt @@ -0,0 +1,10 @@ +include(FetchContent) + +FetchContent_Declare( + spdlog + GIT_REPOSITORY https://github.com/gabime/spdlog.git + GIT_TAG v1.8.1 + GIT_SHALLOW TRUE +) +FetchContent_MakeAvailable(spdlog) +#add_definitions(-SPDLOG_FMT_EXTERNAL) \ No newline at end of file diff --git a/3rdParty/yaml-cpp/CMakeLists.txt b/3rdParty/yaml-cpp/CMakeLists.txt new file mode 100644 index 0000000..112733c --- /dev/null +++ b/3rdParty/yaml-cpp/CMakeLists.txt @@ -0,0 +1,11 @@ +include(FetchContent) + +FetchContent_Declare( + yaml-cpp + GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git + GIT_TAG yaml-cpp-0.6.3 + GIT_SHALLOW TRUE +) +set(YAML_CPP_BUILD_TOOLS OFF) +set(YAML_CPP_BUILD_TESTS OFF) +FetchContent_MakeAvailable(yaml-cpp) \ No newline at end of file diff --git a/3rdParty/zlib/CMakeLists.txt b/3rdParty/zlib/CMakeLists.txt new file mode 100644 index 0000000..c3707ad --- /dev/null +++ b/3rdParty/zlib/CMakeLists.txt @@ -0,0 +1,13 @@ +set(CMAKE_POLICY_DEFAULT_CMP0048 NEW) + +include(FetchContent) +FetchContent_Declare( + zlib + GIT_REPOSITORY https://github.com/madler/zlib.git + GIT_TAG v1.2.11 + GIT_SHALLOW TRUE +) +FetchContent_MakeAvailable(zlib) + +add_library(ZLIB::ZLIB ALIAS zlibstatic) +target_include_directories(zlibstatic INTERFACE ${zlib_BINARY_DIR} ${zlib_SOURCE_DIR}) \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 736dd34..94db735 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,8 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wunknown-pragmas") endif() +add_subdirectory(3rdParty) + #set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/bin/release") @@ -22,6 +24,7 @@ file(GLOB_RECURSE sources CONFIGURE_DEPENDS "openVulkanoCpp/*.cpp") target_sources(openVulkanoCpp PRIVATE ${sources}) target_include_directories(openVulkanoCpp PUBLIC openVulkanoCpp) + #Setup Vulkan find_package(Vulkan REQUIRED) set(Vulkan_LIBRARIES Vulkan::Vulkan) @@ -41,34 +44,14 @@ endif() set_property(TARGET openVulkanoCpp PROPERTY CXX_STANDARD 17) target_compile_options(openVulkanoCpp PRIVATE -Wall) -# glfw -if (NOT ANDROID) -add_subdirectory(external/glfw EXCLUDE_FROM_ALL) -add_dependencies(openVulkanoCpp glfw) -target_include_directories(openVulkanoCpp PUBLIC external/glfw/include/GLFW) +if (NOT ANDROID AND NOT IOS) target_link_libraries(openVulkanoCpp PRIVATE glfw) endif() -# glm -include_directories(external/glm) +target_link_libraries(openVulkanoCpp PRIVATE magic_enum yaml-cpp spdlog glm assimp) + add_compile_definitions(GLM_FORCE_INTRINSICS) -# fmt -#add_subdirectory(external/fmt EXCLUDE_FROM_ALL) -#target_link_libraries(openVulkanoCpp PRIVATE fmt) - -# spdlog -include_directories(external/spdlog/include) -#add_definitions(-SPDLOG_FMT_EXTERNAL) - -# assimp -include_directories(external/assimp) -IF(WIN32) - find_library(ASSIMP_LIBRARIES NAMES assimp libassimp.dll.a PATHS ${CMAKE_SOURCE_DIR}/libs/assimp) -ELSE(WIN32) - find_package(assimp REQUIRED) -ENDIF(WIN32) - # copy shaders file(GLOB SHADERS "openVulkanoCpp/Shader/*.spv") file(COPY ${SHADERS} DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}/Shader/) diff --git a/external/assimp b/external/assimp deleted file mode 160000 index 799fd74..0000000 --- a/external/assimp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 799fd74714f9ffac29004c6b5a674b3402524094 diff --git a/external/fmt b/external/fmt deleted file mode 160000 index 91f7619..0000000 --- a/external/fmt +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 91f7619cc9cfd38ca3b73494793570ab93f69e08 diff --git a/external/glfw b/external/glfw deleted file mode 160000 index d252483..0000000 --- a/external/glfw +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d25248343e248337284dfbe5ecd1eddbd37ae66d diff --git a/external/glm b/external/glm deleted file mode 160000 index ea678fa..0000000 --- a/external/glm +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ea678faff9340ae4a79f50f2edd947141405e128 diff --git a/external/spdlog b/external/spdlog deleted file mode 160000 index aa65dd8..0000000 --- a/external/spdlog +++ /dev/null @@ -1 +0,0 @@ -Subproject commit aa65dd89053bea0b7e0ffc8d9be4f152d5c01f44 diff --git a/openVulkanoCpp/Vulkan/Renderer.hpp b/openVulkanoCpp/Vulkan/Renderer.hpp index 6c720f1..b3c459b 100644 --- a/openVulkanoCpp/Vulkan/Renderer.hpp +++ b/openVulkanoCpp/Vulkan/Renderer.hpp @@ -14,6 +14,8 @@ #include "Data/ReadOnlyAtomicArrayQueue.hpp" #include "CommandHelper.hpp" #include "Base/EngineConfiguration.hpp" +#include +#include namespace openVulkanoCpp::Vulkan {