1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-29 05:07:45 +00:00

LibIDL+WrapperGenerator: Move IDL code into a library

IDL function overload resolution requires knowing each IDL function's
parameters and their types at runtime. The simplest way to do that is
just to make the types the generator uses available to the runtime.

Parsing has moved to LibIDL, but code generation has not, since that is
very specific to WrapperGenerator.
This commit is contained in:
Sam Atkins 2022-08-22 14:50:06 +01:00 committed by Andreas Kling
parent 634a52b589
commit c4668053d1
9 changed files with 25 additions and 12 deletions

View file

@ -291,6 +291,13 @@ lagom_lib(TimeZone timezone
)
target_compile_definitions(LibTimeZone PRIVATE ENABLE_TIME_ZONE_DATA=$<BOOL:${ENABLE_TIME_ZONE_DATABASE_DOWNLOAD}>)
# LibIDL
# This is used by the WrapperGenerator so needs to always be built.
file(GLOB LIBIDL_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibIDL/*.cpp")
lagom_lib(IDL idl
SOURCES ${LIBIDL_SOURCES}
)
# Manually install AK headers
install(
DIRECTORY "${SERENITY_PROJECT_ROOT}/AK"
@ -548,7 +555,7 @@ if (BUILD_LAGOM)
lagom_lib(Web web
SOURCES ${LIBWEB_SOURCES} ${LIBWEB_SUBDIR_SOURCES} ${LIBWEB_SUBSUBDIR_SOURCES} ${LIBWEB_SUBSUBSUBDIR_SOURCES} ${LIBWEB_GENERATED_SOURCES}
LIBS LibMarkdown LibGemini LibGfx LibGL LibJS LibTextCodec LibWasm LibXML
LIBS LibMarkdown LibGemini LibGfx LibGL LibIDL LibJS LibTextCodec LibWasm LibXML
)
generate_js_wrappers(LibWeb)
endif()