Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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 \
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci-ubuntu-22.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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 \
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci-ubuntu-24.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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 \
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci-ubuntu-ext.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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 \
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci-windows-clang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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 \
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci-windows-ext.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ci-windows-msvc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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 )
Expand Down Expand Up @@ -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()
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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 <a id='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 <a id='no_discard_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`.
Expand Down
9 changes: 8 additions & 1 deletion VulkanHppGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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() );
Expand Down Expand Up @@ -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<std::chrono::seconds>( end - start ).count()
<< " seconds" << std::endl;
}
catch ( std::exception const & e )
{
Expand Down
2 changes: 1 addition & 1 deletion XMLHelper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down