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();