@@ -33,94 +33,21 @@ VideoHppGenerator::VideoHppGenerator( tinyxml2::XMLDocument const & document )
33
33
checkCorrectness ();
34
34
}
35
35
36
- void VideoHppGenerator::generateHppFile () const
36
+ void VideoHppGenerator::generateCppmFile () const
37
37
{
38
- std::string const video_hpp = std::string ( BASE_PATH ) + " /vulkan/" + " vulkan_video.hpp" ;
39
- std::cout << " VideoHppGenerator: Generating " << video_hpp << " ... " << std::endl;
40
-
41
- std::string const videoHppTemplate = R"( ${copyrightMessage}
42
-
43
- #ifndef VULKAN_VIDEO_HPP
44
- #define VULKAN_VIDEO_HPP
45
-
46
- // here, we consider include files to be available when __has_include is not defined
47
- #if !defined( __has_include )
48
- # define __has_include( x ) true
49
- # define has_include_was_not_defined
50
- #endif
51
-
52
- // clang-format off
53
- #include <vulkan/vulkan.hpp>
54
- // clang-format on
55
-
56
- ${includes}
57
-
58
- #if !defined( VULKAN_HPP_VIDEO_NAMESPACE )
59
- # define VULKAN_HPP_VIDEO_NAMESPACE video
60
- #endif
61
-
62
- namespace VULKAN_HPP_NAMESPACE
63
- {
64
- namespace VULKAN_HPP_VIDEO_NAMESPACE
65
- {
66
- ${constants}
67
- ${enums}
68
- ${structs}
69
- } // namespace VULKAN_HPP_VIDEO_NAMESPACE
70
- } // namespace VULKAN_HPP_NAMESPACE
71
-
72
- #if defined( has_include_was_not_defined )
73
- # undef has_include_was_not_defined
74
- # undef __has_include
75
- #endif
76
-
77
- #endif
78
- )" ;
79
-
80
- std::string str = replaceWithMap ( videoHppTemplate,
81
- { { " constants" , generateConstants () },
82
- { " copyrightMessage" , m_copyrightMessage },
83
- { " enums" , generateEnums () },
84
- { " includes" , generateIncludes () },
85
- { " structs" , generateStructs () } } );
86
-
87
- writeToFile ( str, video_hpp );
38
+ generateFileFromTemplate (
39
+ " vulkan_video.cppm" , " VideoCppmTemplate.hpp" , { { " copyrightMessage" , m_copyrightMessage }, { " usings" , generateCppModuleUsings () } } );
88
40
}
89
41
90
- void VideoHppGenerator::generateCppModuleFile () const
91
- {
92
- std::string const vulkan_video_cppm = std::string ( BASE_PATH ) + " /vulkan/vulkan_video.cppm" ;
93
- messager.message ( " VideoHppGenerator: Generating " + vulkan_video_cppm + " ...\n " );
94
-
95
- std::string const videoCppmTemplate = R"( ${copyrightMessage}
96
-
97
- // Note: This module is still in an experimental state.
98
- // Any feedback is welcome on https://github.com/KhronosGroup/Vulkan-Hpp/issues.
99
-
100
- module;
101
-
102
- #include <vulkan/vulkan_hpp_macros.hpp>
103
-
104
- #if defined( __cpp_lib_modules ) && !defined( VULKAN_HPP_ENABLE_STD_MODULE )
105
- #define VULKAN_HPP_ENABLE_STD_MODULE
106
- #endif
107
-
108
- #include <vulkan/vulkan_video.hpp>
109
-
110
- export module vulkan_video_hpp;
111
-
112
- export namespace VULKAN_HPP_NAMESPACE
113
- {
114
- namespace VULKAN_HPP_VIDEO_NAMESPACE
42
+ void VideoHppGenerator::generateHppFile () const
115
43
{
116
- ${usings}
117
- } // namespace VULKAN_HPP_VIDEO_NAMESPACE
118
- } // namespace VULKAN_HPP_NAMESPACE
119
- )" ;
120
-
121
- std::string str = replaceWithMap ( videoCppmTemplate, { { " copyrightMessage" , m_copyrightMessage }, { " usings" , generateCppModuleUsings () } } );
122
-
123
- writeToFile ( str, vulkan_video_cppm );
44
+ generateFileFromTemplate ( " vulkan_video.hpp" ,
45
+ " VideoHppTemplate.hpp" ,
46
+ { { " constants" , generateConstants () },
47
+ { " copyrightMessage" , m_copyrightMessage },
48
+ { " enums" , generateEnums () },
49
+ { " includes" , generateIncludes () },
50
+ { " structs" , generateStructs () } } );
124
51
}
125
52
126
53
void VideoHppGenerator::addImplicitlyRequiredTypes ()
@@ -270,7 +197,8 @@ std::string VideoHppGenerator::generateConstants( ExtensionData const & extensio
270
197
std::string str;
271
198
for ( auto const & constant : extensionData.requireData .constants )
272
199
{
273
- str += " VULKAN_HPP_CONSTEXPR_INLINE " + constant.second .type + " " + toCamelCase ( stripPrefix ( constant.first , " STD_VIDEO_" ), true ) + " = " + constant.second .value + " ;\n " ;
200
+ str += " VULKAN_HPP_CONSTEXPR_INLINE " + constant.second .type + " " + toCamelCase ( stripPrefix ( constant.first , " STD_VIDEO_" ), true ) + " = " +
201
+ constant.second .value + " ;\n " ;
274
202
}
275
203
if ( !str.empty () )
276
204
{
@@ -1281,8 +1209,8 @@ int main( int argc, char ** argv )
1281
1209
std::cout << " VideoHppGenerator: Parsing " << filename << std::endl;
1282
1210
VideoHppGenerator generator ( doc );
1283
1211
1212
+ generator.generateCppmFile ();
1284
1213
generator.generateHppFile ();
1285
- generator.generateCppModuleFile ();
1286
1214
1287
1215
#if !defined( CLANG_FORMAT_EXECUTABLE )
1288
1216
std::cout << " VideoHppGenerator: could not find clang-format. The generated files will not be formatted accordingly.\n " ;
0 commit comments