diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4d19401..2b4d222 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -90,6 +90,7 @@ jobs: ) echo Building with minimal Vulkan... + FLAGS+=('-DVMA_HPP_VULKAN_REVISION=${{matrix.env.modules && 'min-modules' || 'min-headers'}}') cmake "${FLAGS[@]}" -DCMAKE_CXX_FLAGS="$CXX_FLAGS" cmake --build build --clean-first @@ -98,6 +99,7 @@ jobs: cmake --build build --clean-first echo Building with latest Vulkan... + unset 'FLAGS[${#FLAGS[@]}-1]' FLAGS+=('-DVMA_HPP_VULKAN_REVISION=main') cmake "${FLAGS[@]}" -DCMAKE_CXX_FLAGS="$CXX_FLAGS" diff --git a/CMakeLists.txt b/CMakeLists.txt index aa59125..7a8e52c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,9 @@ cmake_minimum_required(VERSION 3.8...3.30 FATAL_ERROR) project(VulkanMemoryAllocator-Hpp-Generator VERSION 3.3.0 LANGUAGES CXX) +set(VMA_HPP_VULKAN_MIN_HEADERS "1.4.327" CACHE INTERNAL "Minimal Vulkan-Headers revision (headers)") +set(VMA_HPP_VULKAN_MIN_MODULES "1.4.336" CACHE INTERNAL "Minimal Vulkan-Headers revision (modules)") + if (CMAKE_VERSION VERSION_LESS "3.21") # https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html string(COMPARE EQUAL ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR} PROJECT_IS_TOP_LEVEL) @@ -12,9 +15,8 @@ option(VMA_HPP_RUN_GENERATOR "Run the HPP generator" ${PROJECT_IS_TOP_LEVE option(VMA_HPP_SAMPLES_BUILD "Build samples" ${PROJECT_IS_TOP_LEVEL}) option(VMA_HPP_DO_UPDATE "Update VMA submodule" OFF) set(VMA_HPP_INPUT_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/VulkanMemoryAllocator/include/vk_mem_alloc.h" CACHE FILEPATH "Input vk_mem_alloc.h file") -set(VMA_HPP_VULKAN_MIN_VERSION "1.4.336" CACHE INTERNAL "Minimal Vulkan-Headers revision") -set(VMA_HPP_VULKAN_REVISION "v${VMA_HPP_VULKAN_MIN_VERSION}" CACHE STRING "Vulkan-Headers revision") -set(VMA_HPP_VMA_REVISION "v${PROJECT_VERSION}" CACHE STRING "VulkanMemoryAllocator revision" FORCE) +set(VMA_HPP_VULKAN_REVISION "main" CACHE STRING "Vulkan-Headers revision") +set(VMA_HPP_VMA_REVISION "v${PROJECT_VERSION}" CACHE STRING "VulkanMemoryAllocator revision" FORCE) if (VMA_HPP_DO_UPDATE) # Find Git. @@ -41,6 +43,11 @@ if (${VMA_HPP_VULKAN_REVISION} STREQUAL "system") find_package(Vulkan REQUIRED) endif () else () + if (${VMA_HPP_VULKAN_REVISION} STREQUAL "min-headers") + set(VMA_HPP_VULKAN_REVISION "v${VMA_HPP_VULKAN_MIN_HEADERS}" CACHE STRING "Vulkan-Headers revision" FORCE) + elseif (${VMA_HPP_VULKAN_REVISION} STREQUAL "min-modules") + set(VMA_HPP_VULKAN_REVISION "v${VMA_HPP_VULKAN_MIN_MODULES}" CACHE STRING "Vulkan-Headers revision" FORCE) + endif () include(FetchContent) FetchContent_Declare( vulkan @@ -65,11 +72,12 @@ if (VMA_HPP_DO_UPDATE) string(STRIP ${CMAKE_MATCH_1} VMA_HPP_VMA_VERSION) # Update versions in the README. - message(STATUS "Updating README with VMA ${VMA_HPP_VMA_VERSION} and Vulkan ${VMA_HPP_VULKAN_MIN_VERSION}") + message(STATUS "Updating README with VMA ${VMA_HPP_VMA_VERSION} and Vulkan ${VMA_HPP_VULKAN_MIN_HEADERS} / ${VMA_HPP_VULKAN_MIN_MODULES}") file(READ "${CMAKE_CURRENT_SOURCE_DIR}/README.md" VMA_HPP_README) string(REPLACE ";" "\\;" VMA_HPP_README "${VMA_HPP_README}") # Do not mess up semicolons in the README string(REGEX REPLACE "[^<]*" "${VMA_HPP_VMA_VERSION}" VMA_HPP_README "${VMA_HPP_README}") - string(REGEX REPLACE "[^<]*" "${VMA_HPP_VULKAN_MIN_VERSION}" VMA_HPP_README "${VMA_HPP_README}") + string(REGEX REPLACE "[^<]*" "${VMA_HPP_VULKAN_MIN_HEADERS}" VMA_HPP_README "${VMA_HPP_README}") + string(REGEX REPLACE "[^<]*" "${VMA_HPP_VULKAN_MIN_MODULES}" VMA_HPP_README "${VMA_HPP_README}") file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/README.md" ${VMA_HPP_README}) # Generate "imported" utility header. diff --git a/README.md b/README.md index fc13e95..44a6c64 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ consistent and compatible with Vulkan C++ bindings ([Vulkan-Hpp](https://github. #### Requirements - C++11 or newer -- [Vulkan headers](https://github.com/KhronosGroup/Vulkan-Headers) **1.4.336** or newer +- [Vulkan](https://github.com/KhronosGroup/Vulkan-Headers) **1.4.327** (headers) / **1.4.336** (module) or newer - [VulkanMemoryAllocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator) - *[GitHub releases](https://github.com/YaaZ/VulkanMemoryAllocator-Hpp/releases) is the recommended way to get VMA-Hpp, they already include a compatible `vk_mem_alloc.h` header*