123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- #!/usr/bin/env python
- Import("env")
- # TODO: Add warning to headers and code about their autogenerated status.
- if env["use_sowrap"]:
- # We have to implement separate builders for so wrappers as the
- # autogenerated Wayland protocol wrapper must include them instead of the
- # native libraries.
- WAYLAND_BUILDERS_SOWRAP = {
- "WAYLAND_API_HEADER": Builder(
- action=Action(
- "wayland-scanner -c client-header < ${SOURCE} | sed 's:wayland-client-core\.h:../dynwrappers/wayland-client-core-so_wrap\.h:' > ${TARGET}",
- 'Generating Wayland client header: "${TARGET}"',
- ),
- single_source=True,
- ),
- "WAYLAND_API_CODE": Builder(
- action=Action(
- "wayland-scanner -c private-code < ${SOURCE} | sed 's:wayland-util\.h:../dynwrappers/wayland-client-core-so_wrap\.h:' > ${TARGET}",
- 'Generating Wayland protocol marshalling code: "${TARGET}"',
- ),
- single_source=True,
- ),
- }
- env.Append(BUILDERS=WAYLAND_BUILDERS_SOWRAP)
- else:
- WAYLAND_BUILDERS = {
- "WAYLAND_API_HEADER": Builder(
- action=Action(
- "wayland-scanner -c client-header < ${SOURCE} > ${TARGET}",
- 'Generating Wayland client header: "${TARGET}"',
- ),
- single_source=True,
- ),
- "WAYLAND_API_CODE": Builder(
- action=Action(
- "wayland-scanner -c private-code < ${SOURCE} > ${TARGET}",
- 'Generating Wayland protocol marshalling code: "${TARGET}"',
- ),
- single_source=True,
- ),
- }
- env.Append(BUILDERS=WAYLAND_BUILDERS)
- env.WAYLAND_API_HEADER(target="protocol/wayland.gen.h", source="#thirdparty/wayland/protocol/wayland.xml")
- env.WAYLAND_API_CODE(target="protocol/wayland.gen.c", source="#thirdparty/wayland/protocol/wayland.xml")
- env.WAYLAND_API_HEADER(
- target="protocol/viewporter.gen.h", source="#thirdparty/wayland-protocols/stable/viewporter/viewporter.xml"
- )
- env.WAYLAND_API_CODE(
- target="protocol/viewporter.gen.c", source="#thirdparty/wayland-protocols/stable/viewporter/viewporter.xml"
- )
- env.WAYLAND_API_HEADER(
- target="protocol/fractional_scale.gen.h",
- source="#thirdparty/wayland-protocols/staging/fractional-scale/fractional-scale-v1.xml",
- )
- env.WAYLAND_API_CODE(
- target="protocol/fractional_scale.gen.c",
- source="#thirdparty/wayland-protocols/staging/fractional-scale/fractional-scale-v1.xml",
- )
- env.WAYLAND_API_HEADER(
- target="protocol/xdg_shell.gen.h", source="#thirdparty/wayland-protocols/stable/xdg-shell/xdg-shell.xml"
- )
- env.WAYLAND_API_CODE(
- target="protocol/xdg_shell.gen.c", source="#thirdparty/wayland-protocols/stable/xdg-shell/xdg-shell.xml"
- )
- env.WAYLAND_API_HEADER(
- target="protocol/xdg_decoration.gen.h",
- source="#thirdparty/wayland-protocols/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml",
- )
- env.WAYLAND_API_CODE(
- target="protocol/xdg_decoration.gen.c",
- source="#thirdparty/wayland-protocols/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml",
- )
- env.WAYLAND_API_HEADER(
- target="protocol/xdg_activation.gen.h",
- source="#thirdparty/wayland-protocols/staging/xdg-activation/xdg-activation-v1.xml",
- )
- env.WAYLAND_API_CODE(
- target="protocol/xdg_activation.gen.c",
- source="#thirdparty/wayland-protocols/staging/xdg-activation/xdg-activation-v1.xml",
- )
- env.WAYLAND_API_HEADER(
- target="protocol/relative_pointer.gen.h",
- source="#thirdparty/wayland-protocols/unstable/relative-pointer/relative-pointer-unstable-v1.xml",
- )
- env.WAYLAND_API_CODE(
- target="protocol/relative_pointer.gen.c",
- source="#thirdparty/wayland-protocols/unstable/relative-pointer/relative-pointer-unstable-v1.xml",
- )
- env.WAYLAND_API_HEADER(
- target="protocol/pointer_constraints.gen.h",
- source="#thirdparty/wayland-protocols/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml",
- )
- env.WAYLAND_API_CODE(
- target="protocol/pointer_constraints.gen.c",
- source="#thirdparty/wayland-protocols/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml",
- )
- env.WAYLAND_API_HEADER(
- target="protocol/pointer_gestures.gen.h",
- source="#thirdparty/wayland-protocols/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml",
- )
- env.WAYLAND_API_CODE(
- target="protocol/pointer_gestures.gen.c",
- source="#thirdparty/wayland-protocols/unstable/pointer-gestures/pointer-gestures-unstable-v1.xml",
- )
- env.WAYLAND_API_HEADER(
- target="protocol/primary_selection.gen.h",
- source="#thirdparty/wayland-protocols/unstable/primary-selection/primary-selection-unstable-v1.xml",
- )
- env.WAYLAND_API_CODE(
- target="protocol/primary_selection.gen.c",
- source="#thirdparty/wayland-protocols/unstable/primary-selection/primary-selection-unstable-v1.xml",
- )
- env.WAYLAND_API_HEADER(
- target="protocol/idle_inhibit.gen.h",
- source="#thirdparty/wayland-protocols/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml",
- )
- env.WAYLAND_API_CODE(
- target="protocol/idle_inhibit.gen.c",
- source="#thirdparty/wayland-protocols/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml",
- )
- env.WAYLAND_API_HEADER(
- target="protocol/tablet.gen.h",
- source="#thirdparty/wayland-protocols/unstable/tablet/tablet-unstable-v2.xml",
- )
- env.WAYLAND_API_CODE(
- target="protocol/tablet.gen.c",
- source="#thirdparty/wayland-protocols/unstable/tablet/tablet-unstable-v2.xml",
- )
- source_files = [
- "protocol/wayland.gen.c",
- "protocol/viewporter.gen.c",
- "protocol/fractional_scale.gen.c",
- "protocol/xdg_shell.gen.c",
- "protocol/xdg_decoration.gen.c",
- "protocol/xdg_activation.gen.c",
- "protocol/relative_pointer.gen.c",
- "protocol/pointer_constraints.gen.c",
- "protocol/pointer_gestures.gen.c",
- "protocol/primary_selection.gen.c",
- "protocol/idle_inhibit.gen.c",
- "protocol/tablet.gen.c",
- "display_server_wayland.cpp",
- "wayland_thread.cpp",
- "key_mapping_xkb.cpp",
- "detect_prime_egl.cpp",
- ]
- if env["use_sowrap"]:
- source_files.append(
- [
- "dynwrappers/wayland-cursor-so_wrap.c",
- "dynwrappers/wayland-client-core-so_wrap.c",
- "dynwrappers/wayland-egl-core-so_wrap.c",
- ]
- )
- if env["libdecor"]:
- source_files.append("dynwrappers/libdecor-so_wrap.c")
- if env["vulkan"]:
- source_files.append("vulkan_context_wayland.cpp")
- if env["opengl3"]:
- source_files.append("egl_manager_wayland.cpp")
- objects = []
- for source_file in source_files:
- objects.append(env.Object(source_file))
- Return("objects")
|