-
Notifications
You must be signed in to change notification settings - Fork 308
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
Showing
22 changed files
with
286 additions
and
76 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
cmake_minimum_required( VERSION 3.30 ) | ||
|
||
target_compile_features( VulkanHppModule PUBLIC cxx_std_23 ) | ||
target_compile_definitions( VulkanHppModule PUBLIC VULKAN_HPP_ENABLE_STD_MODULE ) | ||
|
||
vulkan_hpp__setup_test( NAME CppStdModule CXX_STANDARD 23 LIBRARIES VulkanHppModule NO_UTILS ) | ||
|
||
target_compile_features( CppStdModule PUBLIC cxx_std_23 ) | ||
|
||
if( NOT VULKAN_HPP_SAMPLES_BUILD_ONLY_DYNAMIC ) | ||
if ( VULKAN_HPP_CPP20_MODULE_DYNAMIC_DISPATCHER ) | ||
target_compile_definitions( CppStdModule PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1 ) | ||
else() | ||
target_compile_definitions( CppStdModule PUBLIC VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=0 ) | ||
endif() | ||
target_link_libraries( CppStdModule PRIVATE Vulkan::Vulkan ) | ||
set_target_properties( CppStdModule PROPERTIES CXX_EXTENSIONS OFF ) | ||
endif() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
import std; | ||
import vulkan_hpp; | ||
|
||
#include <vulkan/vulkan_hpp_macros.hpp> | ||
|
||
static std::string AppName = "CppStdModule"; | ||
static std::string EngineName = "Vulkan.cppm"; | ||
|
||
#if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 | ||
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE | ||
#endif | ||
|
||
int main(int /*argc*/, char** /*argv*/) | ||
{ | ||
/* VULKAN_HPP_KEY_START */ | ||
try | ||
{ | ||
#if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) | ||
// initialize minimal set of function pointers | ||
VULKAN_HPP_DEFAULT_DISPATCHER.init(); | ||
#endif | ||
|
||
// initialize the vk::ApplicationInfo structure | ||
vk::ApplicationInfo applicationInfo(AppName.c_str(), 1, EngineName.c_str(), 1, vk::makeApiVersion(1, 0, 0, 0)); | ||
|
||
// initialize the vk::InstanceCreateInfo | ||
vk::InstanceCreateInfo instanceCreateInfo({}, &applicationInfo); | ||
|
||
// create an Instance | ||
vk::Instance instance = vk::createInstance(instanceCreateInfo); | ||
|
||
#if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) | ||
// initialize function pointers for instance | ||
VULKAN_HPP_DEFAULT_DISPATCHER.init(instance); | ||
#endif | ||
|
||
// destroy it again | ||
instance.destroy(); | ||
} | ||
catch (vk::SystemError& err) | ||
{ | ||
std::cout << "vk::SystemError: " << err.what() << std::endl; | ||
exit(-1); | ||
} | ||
catch (std::exception& err) | ||
{ | ||
std::cout << "std::exception: " << err.what() << std::endl; | ||
exit(-1); | ||
} | ||
catch (...) | ||
{ | ||
std::cout << "unknown error\n"; | ||
exit(-1); | ||
} | ||
|
||
/* VULKAN_HPP_KEY_END */ | ||
|
||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.