diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml
index e7823c41e..c6400f211 100644
--- a/.github/workflows/ci-macos.yml
+++ b/.github/workflows/ci-macos.yml
@@ -74,6 +74,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_CXX_COMPILER=${{matrix.compiler}} \
-D CMAKE_CXX_STANDARD=20 \
@@ -87,6 +88,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_CXX_COMPILER=${{matrix.compiler}} \
-D CMAKE_CXX_STANDARD=20 \
diff --git a/.github/workflows/ci-ubuntu-22.yml b/.github/workflows/ci-ubuntu-22.yml
index 886c279ac..93cc5be18 100644
--- a/.github/workflows/ci-ubuntu-22.yml
+++ b/.github/workflows/ci-ubuntu-22.yml
@@ -76,6 +76,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_CXX_COMPILER=${{matrix.compiler}} \
-D CMAKE_CXX_STANDARD=20 \
@@ -89,6 +90,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_CXX_COMPILER=${{matrix.compiler}} \
-D CMAKE_CXX_STANDARD=20 \
diff --git a/.github/workflows/ci-ubuntu-24.yml b/.github/workflows/ci-ubuntu-24.yml
index 4ae758f58..3fedce25e 100644
--- a/.github/workflows/ci-ubuntu-24.yml
+++ b/.github/workflows/ci-ubuntu-24.yml
@@ -76,6 +76,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_CXX_COMPILER=${{matrix.compiler}} \
-D CMAKE_CXX_STANDARD=20 \
@@ -89,6 +90,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_CXX_COMPILER=${{matrix.compiler}} \
-D CMAKE_CXX_STANDARD=20 \
diff --git a/.github/workflows/ci-ubuntu-ext.yml b/.github/workflows/ci-ubuntu-ext.yml
index 746009599..f5a878e7d 100644
--- a/.github/workflows/ci-ubuntu-ext.yml
+++ b/.github/workflows/ci-ubuntu-ext.yml
@@ -91,6 +91,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_CXX_COMPILER=clang++-${{matrix.clang_version}} \
-D CMAKE_CXX_STANDARD=20 \
@@ -105,6 +106,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_CXX_COMPILER=clang++-${{matrix.clang_version}} \
-D CMAKE_CXX_STANDARD=20 \
diff --git a/.github/workflows/ci-windows-clang.yml b/.github/workflows/ci-windows-clang.yml
index 9c8d6c26f..52d2d1a55 100644
--- a/.github/workflows/ci-windows-clang.yml
+++ b/.github/workflows/ci-windows-clang.yml
@@ -80,6 +80,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_BUILD_TYPE=Debug \
-D CMAKE_CXX_COMPILER=clang-cl \
@@ -93,6 +94,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_CXX_COMPILER=clang-cl \
diff --git a/.github/workflows/ci-windows-ext.yml b/.github/workflows/ci-windows-ext.yml
index 6d0754099..c1697bef0 100644
--- a/.github/workflows/ci-windows-ext.yml
+++ b/.github/workflows/ci-windows-ext.yml
@@ -76,6 +76,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_BUILD_TYPE=Debug \
-D CMAKE_CXX_STANDARD=20
@@ -88,6 +89,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_CXX_STANDARD=20
diff --git a/.github/workflows/ci-windows-msvc.yml b/.github/workflows/ci-windows-msvc.yml
index eced20241..92b18acce 100644
--- a/.github/workflows/ci-windows-msvc.yml
+++ b/.github/workflows/ci-windows-msvc.yml
@@ -68,6 +68,7 @@ jobs:
-D VULKAN_HPP_TESTS_BUILD=OFF \
-D VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=ON \
-D VULKAN_HPP_BUILD_WITH_LOCAL_VULKAN_HPP=ON \
+ -D VULKAN_HPP_NO_FORMAT=ON \
-D VULKAN_HPP_PRECOMPILE=OFF \
-D CMAKE_CXX_STANDARD=20
cmake --build build --parallel --config Debug
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4ca0277e3..e5796e414 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -52,6 +52,7 @@ option( VULKAN_HPP_HANDLES_MOVE_EXCHANGE "Enable 'm_handle = exchange( rhs.m_han
option( VULKAN_HPP_NO_CONSTRUCTORS "Remove constructors from structs and unions to enable C++20 designated initializers" OFF )
option( VULKAN_HPP_NO_DEFAULT_DISPATCHER "Remove the default dispatcher argument from functions, requiring manually specifying one" OFF )
option( VULKAN_HPP_NO_EXCEPTIONS "Do not throw exceptions when vulkan functions return an error code" OFF )
+option( VULKAN_HPP_NO_FORMAT "No formatting of the generated files, useful to reduce time spent in CI" OFF)
option( VULKAN_HPP_NO_NODISCARD_WARNINGS "Remove C++17 [[nodiscard]] from function signatures that return something" OFF )
option( VULKAN_HPP_NO_SETTERS "Remove setters for structs and unions" OFF )
option( VULKAN_HPP_NO_SMART_HANDLE "Remove the vk::UniqueHandle helper class" OFF )
@@ -320,6 +321,9 @@ function( vulkan_hpp__setup_vulkan_targets )
if( VULKAN_HPP_NO_EXCEPTIONS )
target_compile_definitions(VulkanHpp INTERFACE "VULKAN_HPP_NO_EXCEPTIONS" )
endif()
+ if( VULKAN_HPP_NO_FORMAT )
+ target_compile_definitions(VulkanHpp INTERFACE "VULKAN_HPP_NO_FORMAT" )
+ endif()
if( VULKAN_HPP_NO_CONSTRUCTORS )
target_compile_definitions(VulkanHpp INTERFACE "VULKAN_HPP_NO_CONSTRUCTORS" )
endif()
diff --git a/README.md b/README.md
index 5d8cbbf7b..8ccdfd695 100644
--- a/README.md
+++ b/README.md
@@ -71,6 +71,7 @@ The goal of the Vulkan-Hpp is to provide header only C++ bindings for the Vulkan
- [VULKAN_HPP_NAMESPACE](#namespace)
- [VULKAN_HPP_NO_CONSTRUCTORS](#no_constructors)
- [VULKAN_HPP_NO_EXCEPTIONS](#no_exceptions)
+ - [VULKAN_HPP_NO_FORMAT](#no_format)
- [VULKAN_HPP_NO_NODISCARD_WARNINGS](#no_discard_warnings)
- [VULKAN_HPP_NO_SETTERS](#no_setters)
- [VULKAN_HPP_NO_SMART_HANDLE](#no_smart_handle)
@@ -1048,6 +1049,10 @@ With C++20, designated initializers are available. Their use requires the absenc
When a vulkan function returns an error code that is not specified to be a success code, an exception is thrown unless `VULKAN_HPP_NO_EXCEPTIONS` is defined before including `vulkan.hpp`.
+#### VULKAN_HPP_NO_FORMAT
+
+Skips formatting of generated files. Useful for saving time in CI workflows that do not require nicely formatted files.
+
#### VULKAN_HPP_NO_NODISCARD_WARNINGS
With C++17, all vk-functions returning something are declared with the attribute `[[nodiscard]]`. This can be removed by defining `VULKAN_HPP_NO_NODISCARD_WARNINGS` before including `vulkan.hpp`.
diff --git a/VulkanHppGenerator.cpp b/VulkanHppGenerator.cpp
index 5b6f5abac..202681b63 100644
--- a/VulkanHppGenerator.cpp
+++ b/VulkanHppGenerator.cpp
@@ -18165,6 +18165,8 @@ namespace
int main( int argc, char const ** argv )
{
+ std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now();
+
if ( ( argc % 2 ) == 0 )
{
std::cout << "VulkanHppGenerator usage: VulkanHppGenerator [-f filename][-api [vulkan|vulkanbase|vulkansc]]" << std::endl;
@@ -18199,7 +18201,7 @@ int main( int argc, char const ** argv )
return -1;
}
-#if defined( CLANG_FORMAT_EXECUTABLE )
+#if defined( CLANG_FORMAT_EXECUTABLE ) && !defined( VULKAN_HPP_NO_FORMAT )
std::cout << "VulkanHppGenerator: Found ";
std::string commandString = "\"" CLANG_FORMAT_EXECUTABLE "\" --version ";
const int ret = std::system( commandString.c_str() );
@@ -18243,6 +18245,11 @@ int main( int argc, char const ** argv )
// this modifies the generator data and needs to be done after all the other generations are done
generator.distributeSecondLevelCommands();
generator.generateRAIIHppFile();
+
+ std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();
+ std::cout << "VulkanHppGenerator: successfully generated Vulkan-Hpp in "
+ << std::chrono::duration_cast( end - start ).count()
+ << " seconds" << std::endl;
}
catch ( std::exception const & e )
{
diff --git a/XMLHelper.hpp b/XMLHelper.hpp
index 67eec0119..9602b5772 100644
--- a/XMLHelper.hpp
+++ b/XMLHelper.hpp
@@ -594,7 +594,7 @@ void writeToFile( std::string const & str, std::string const & fileName )
ofs << str;
ofs.close();
-#if defined( CLANG_FORMAT_EXECUTABLE )
+#if defined( CLANG_FORMAT_EXECUTABLE ) && !defined( VULKAN_HPP_NO_FORMAT )
// explicitly flush std::cout, as std::system spawns a sub-process
std::cout.flush();