From 7f722fb6d11e32f0d7cea551e9f7cb81676cef9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Wed, 20 Sep 2023 21:15:40 +0200 Subject: [PATCH] lsteamclient: Use a dict for SDK sources / class mapping. CW-Bug-Id: #22729 --- lsteamclient/gen_wrapper.py | 71 +++++++++++++++++++------------------ vrclient_x64/gen_wrapper.py | 3 ++ 2 files changed, 40 insertions(+), 34 deletions(-) diff --git a/lsteamclient/gen_wrapper.py b/lsteamclient/gen_wrapper.py index 6f13a713..fc0c8ef2 100755 --- a/lsteamclient/gen_wrapper.py +++ b/lsteamclient/gen_wrapper.py @@ -98,8 +98,8 @@ SDK_VERSIONS = [ "099u", ] -SDK_SOURCES = [ - ("steam_api.h", [ +SDK_SOURCES = { + "steam_api.h": [ "ISteamApps", "ISteamAppList", "ISteamClient", @@ -125,44 +125,47 @@ SDK_SOURCES = [ "ISteamUserStats", "ISteamUtils", "ISteamVideo" - ]), - ("isteamappticket.h", [ + ], + "isteamappticket.h": [ "ISteamAppTicket" - ]), - ("isteamgameserver.h", [ + ], + "isteamgameserver.h": [ "ISteamGameServer" - ]), - ("isteamgameserverstats.h", [ + ], + "isteamgameserverstats.h": [ "ISteamGameServerStats" - ]), - ("isteamgamestats.h", [ + ], + "isteamgamestats.h": [ "ISteamGameStats" - ]), - ("isteammasterserverupdater.h", [ + ], + "isteammasterserverupdater.h": [ "ISteamMasterServerUpdater" - ]), - ("isteamgamecoordinator.h", [ + ], + "isteamgamecoordinator.h": [ "ISteamGameCoordinator" - ]), - ("isteamparentalsettings.h", [ + ], + "isteamparentalsettings.h": [ "ISteamParentalSettings" - ]), - ("isteamnetworkingmessages.h", [ + ], + "isteamnetworkingmessages.h": [ "ISteamNetworkingMessages" - ]), - ("isteamnetworkingsockets.h", [ + ], + "isteamnetworkingsockets.h": [ "ISteamNetworkingSockets" - ]), - ("isteamnetworkingsocketsserialized.h", [ + ], + "isteamnetworkingsocketsserialized.h": [ "ISteamNetworkingSocketsSerialized" - ]), - ("isteamnetworkingutils.h", [ + ], + "isteamnetworkingutils.h": [ "ISteamNetworkingUtils" - ]), - ("steamnetworkingfakeip.h", [ + ], + "steamnetworkingfakeip.h": [ "ISteamNetworkingFakeUDPPort" - ]), -] + ], +} + +SDK_CLASSES = {klass: source for source, klasses in SDK_SOURCES.items() + for klass in klasses} VERSION_ALIASES = { #these interfaces are undocumented and binary compatible @@ -1281,9 +1284,10 @@ for sdkver in SDK_VERSIONS: iface, version = result.group(1, 2) iface_versions[iface] = version - source = [f"""#if __has_include("{sdkdir}/{file}") - #include "{sdkdir}/{file}" - #endif""" for file, _ in SDK_SOURCES] + source = [f'#if __has_include("{sdkdir}/{file}")\n' + f'#include "{sdkdir}/{file}"\n' + f'#endif\n' + for file in SDK_SOURCES.keys()] sources["source.cpp"] = "\n".join(source) windows_args = ["-D_WIN32", "-fms-extensions", "-Wno-ignored-attributes", "-mms-bitfields", "-U__linux__", "-Wno-incompatible-ms-struct"] @@ -1320,10 +1324,9 @@ for sdkver in SDK_VERSIONS: windows_structs64 = dict(reversed([(child.spelling, child.type) for child in windows_build64.cursor.get_children()])) - classes = dict([(klass, file) for file, classes in SDK_SOURCES for klass in classes]) for child in linux_build32.cursor.get_children(): - if child.kind == CursorKind.CLASS_DECL and child.displayname in classes: - handle_class(sdkver, child, classes[child.displayname]) + if child.kind == CursorKind.CLASS_DECL and child.displayname in SDK_CLASSES: + handle_class(sdkver, child, SDK_CLASSES[child.displayname]) if child.kind in [CursorKind.STRUCT_DECL, CursorKind.CLASS_DECL]: handle_struct(sdkver, child) diff --git a/vrclient_x64/gen_wrapper.py b/vrclient_x64/gen_wrapper.py index e4b23895..76712bc3 100755 --- a/vrclient_x64/gen_wrapper.py +++ b/vrclient_x64/gen_wrapper.py @@ -100,6 +100,9 @@ SDK_SOURCES = [ ), ] +SDK_CLASSES = {klass: source for source, klasses in SDK_SOURCES.items() + for klass in klasses} + STRUCTS_NEXT_IS_SIZE = [ "VREvent_t", "VRControllerState001_t",