Commit Graph

21 Commits

Author SHA1 Message Date
Andreas Süßenbach 15f4b3024f
Fix default values of function arguments when VULKAN_HPP_NO_DEFAULT_DISPATCHER is defined. (#2356) 2025-11-12 10:08:57 +01:00
Sharadh Rajaraman e511715fce
Do not `export import std` as a macro (#2340)
Set Version Tag / set-version-tag (push) Has been cancelled Details
* Do not export-import `std` as a macro

* Move warning expansion to macros file, and create a macro for it
- Also remove macro for `std.compat` and hardcode it
2025-11-06 10:59:34 +01:00
Andreas Süßenbach 4bc2057ad8
Cleanup on default assignment macros. (#2335) 2025-10-30 15:37:07 +01:00
Sharadh Rajaraman ed449ac36f
Simplify named module handling and macros (#2303)
* Remove `VULKAN_HPP_ENABLE_STD_MODULE` macro; unconditionally use `import std;`

* Emit compile-time warning about experimental state for module

* Refactor `#include` guard to use `VULKAN_HPP_CXX_MODULE` for all headers

* Group global namespace exports into block

* Simplify CMake setup for modules

- Raise minimum version to 3.22 (this is what we have in CI)
- Remove duplicated options
- Set up a single option that depends on magic `__CMAKE::CXX23` target; defaults to OFF unless magic UUID set (or future CMake version supports)

* Rebase changes

* Guard C++ module warning with compile-time flag

* Fix macro guard for experimental warning

* Force `<vulkan/vulkan_hpp_macros.hpp>` at the top of includes list
2025-10-09 21:04:11 +02:00
Ilya Doroshenko 4ff98ef7a8
#1894 Added macro guard for optional default deleter constructors assignments. (#2296) 2025-09-29 17:22:14 +02:00
Jan Kuhlmann f522d73454
C++Module: Fixing import std on enum header and using `export import std` when appropriate (#2283)
* fix std import on enum header

* remove duplicate contents in cppm

* moved dynamic enabling of std module into macro header

* do not automatically enable import std

* automatic opt-out approach for export import std

* added opt-out option VULKAN_HPP_NO_STD_MODULE

* add VULKAN_HPP_NO_STD_MODULE to CI workflows

* added VULKAN_HPP_NO_STD_MODULE flag to the readme

* set VULKAN_HPP_NO_STD_MODULE to OFF by default

* added import_std exclusion to ubuntu-ext CI
2025-09-25 09:02:03 +02:00
Andreas Süßenbach 6bd3b4652c
Introduce defines VULKAN_HPP_DISPATCH_LOADER_[DYNAMIC|STATIC]_TYPE (#2244) 2025-08-11 13:36:46 +02:00
Andreas Süßenbach d16c62670b
Mark deprecated struct members as deprecated. (#2230) 2025-07-30 09:36:58 +02:00
Andreas Süßenbach 7dfe7d3ad9
Extend support of VULKAN_HPP_NO_EXCEPTIONS in the raii-namespace (#2226) 2025-07-22 13:48:50 +02:00
Andreas Süßenbach a428958b7f
Check language feature macro for existence before using it (#2133) 2025-04-10 10:49:25 +02:00
Andreas Süßenbach 3f2fe22281
Add support for clang_format options version 16. (#2062) 2025-02-05 13:44:36 +01:00
Andreas Süßenbach 6578bfcc88
Update Vulkan-Headers to v1.4.305 (#2049) 2025-01-21 10:53:23 +01:00
Andreas Süßenbach ed3cf7ac51
Move all the dispatcher related classes into namespace detail (#1983) 2024-10-29 08:13:51 +01:00
Sharadh Rajaraman 6abd3f42a8
Use `import std;` guarded by macro (#1932)
* Initial build and tests setup

* Enable the `CppStdModule` test

* Snippets and generator changes

* Generated files changes

* Enable std module with macro

* Unconditionally use `import std` with C++23

* Add support for external `import std` control with `VULKAN_HPP_ENABLE_STD_MODULE`

- Rewrite `includes.hpp` and `macros.hpp`
- Unconditionally set `VULKAN_HPP_ENABLE_STD_MODULE` for `vulkan.cppm` to bug-fix
- Generated necessary files again

* Top-level CMake changes

* Reorganise logic, and propagate external macro correctly

* RAII: vulkan_hpp before ifdef

* Define `VK_USE_64_BIT_PTR_DEFINES` in `vulkan_hpp_macros.hpp`

* Generate the `VK_USE_64_BIT_PTR_DEFINES` clause from the XML instead of hardcoding it

* Refactored handling for `VK_USE_64_BIT_PTR_DEFINES`

- Updated condition to positive test for `#ifndef VK_USE_64_BIT_PTR_DEFINES` in `completeMacro`

* Added `#include <string.h>` to resolve `strnlen` missing in the module

* Use only `std.compat`

* FIx after rebase
2024-09-05 08:48:19 +02:00
Andreas Süßenbach fbb62163a0
Mark deprecated enum values as deprecated (#1955) 2024-09-03 08:53:36 +02:00
David Ryskalczyk 17226363e7
Fix for VULKAN_HPP_TYPESAFE_CONVERSION defined to 0 (#1806)
* Fix for VULKAN_HPP_TYPESAFE_CONVERSION defined to 0

* Remove the check if VULKAN_HPP_TYPESAFE_CONVERSION actually is defined, just check if it's 1.

---------

Co-authored-by: asuessenbach <asuessenbach@nvidia.com>
2024-03-11 09:39:39 +01:00
github-actions[bot] 1a24b01583
Update Vulkan-Headers to v1.3.275 (#1768)
Co-authored-by: GitHub <noreply@github.com>
2024-01-08 10:21:39 +01:00
Andreas Süßenbach 197017ef20
Add support of noexcept-path for vk::raii classes (#1742) 2024-01-02 13:47:01 +01:00
Andreas Süßenbach e86419f738
Include headers holding feature-test macros in vulkan_hpp_macros.hpp. (#1727) 2023-11-14 16:50:21 +01:00
Andreas Süßenbach 2e5e845bb9
Add C++23 to the workflow. (#1713) 2023-11-02 08:54:14 +01:00
Andreas Süßenbach d4704cce01
Make C++20 modules work with the defaultDispatchLoaderDynamic. (#1651)
* Make C++20 modules work with the defaultDispatchLoaderDynamic.

* Add vulkan_hpp_macros.hpp to list of installed files.

* Adjust the text on module in the readme.

* Rename module from vulkan to vulkan_hpp

* Adjust some comments.

* Add a little disclaimer to vulkan.cppm.
2023-09-07 15:20:10 +02:00