Skip to content

Commit

Permalink
Try #135:
Browse files Browse the repository at this point in the history
  • Loading branch information
bors[bot] committed Jan 24, 2018
2 parents 8aaaea0 + b50de25 commit 64cb0a0
Show file tree
Hide file tree
Showing 9 changed files with 2,992 additions and 17 deletions.
28 changes: 25 additions & 3 deletions src/protocol/CMakeLists.txt
Expand Up @@ -13,16 +13,38 @@ target_link_libraries(wrapper-generator
)

get_filename_component(
GENERATED_HEADER src/server/frontend/wayland/core_generated_interfaces.h
CORE_GENERATED_HEADER src/server/frontend/wayland/core_generated_interfaces.h
ABSOLUTE
BASE_DIR ${PROJECT_SOURCE_DIR}
)

get_filename_component(
XDG_SHELL_GENERATED_HEADER src/server/frontend/wayland/xdg_shell_generated_interfaces.h
ABSOLUTE
BASE_DIR ${PROJECT_SOURCE_DIR}
)

get_filename_component(
XDG_SHELL_HEADER src/server/frontend/wayland/xdg-shell-unstable-v6.h
ABSOLUTE
BASE_DIR ${PROJECT_SOURCE_DIR}
)

get_filename_component(
XDG_SHELL_CODE src/server/frontend/wayland/xdg-shell-unstable-v6.c
ABSOLUTE
BASE_DIR ${PROJECT_SOURCE_DIR}
)

add_custom_target(refresh-wayland-wrapper
COMMAND "sh" "-c" "${CMAKE_BINARY_DIR}/bin/wrapper-generator wl_ /usr/share/wayland/wayland.xml >${GENERATED_HEADER}"
COMMAND "sh" "-c" "${CMAKE_BINARY_DIR}/bin/wrapper-generator wl_ wayland-server.h /usr/share/wayland/wayland.xml >${CORE_GENERATED_HEADER}"
COMMAND "sh" "-c" "${CMAKE_BINARY_DIR}/bin/wrapper-generator z xdg-shell-unstable-v6.h /usr/share/wayland-protocols/unstable/xdg-shell/xdg-shell-unstable-v6.xml >${XDG_SHELL_GENERATED_HEADER}"
COMMAND "wayland-scanner" "--include-core-only" "server-header" "/usr/share/wayland-protocols/unstable/xdg-shell/xdg-shell-unstable-v6.xml" "${XDG_SHELL_HEADER}"
COMMAND "wayland-scanner" "--include-core-only" "code" "/usr/share/wayland-protocols/unstable/xdg-shell/xdg-shell-unstable-v6.xml" "${XDG_SHELL_CODE}"
VERBATIM
DEPENDS wrapper-generator
DEPENDS /usr/share/wayland/wayland.xml
SOURCES ${GENERATED_HEADER}
DEPENDS /usr/share/wayland-protocols/unstable/xdg-shell/xdg-shell-unstable-v6.xml
SOURCES ${CORE_GENERATED_HEADER} ${XDG_SHELL_GENERATED_HEADER}
)

22 changes: 11 additions & 11 deletions src/protocol/wrapper_generator.cpp
Expand Up @@ -37,24 +37,18 @@ void emit_comment_header(std::ostream& out)
out << " */" << std::endl;
}

void emit_required_headers()
void emit_required_headers(std::string const& custom_header)
{
std::cout << "#include <experimental/optional>" << std::endl;
std::cout << "#include <boost/throw_exception.hpp>" << std::endl;
std::cout << "#include <boost/exception/diagnostic_information.hpp>" << std::endl;
std::cout << std::endl;
std::cout << "#include <wayland-server.h>" << std::endl;
std::cout << "#include <wayland-server-protocol.h>" << std::endl;
std::cout << "#include \"" << custom_header << "\"" << std::endl;
std::cout << std::endl;
std::cout << "#include \"mir/fd.h\"" << std::endl;
std::cout << "#include \"mir/log.h\"" << std::endl;
}

std::string strip_wl_prefix(std::string const& name)
{
return name.substr(3);
}

std::string camel_case_string(std::string const& name)
{
std::string camel_cased_name;
Expand Down Expand Up @@ -478,9 +472,14 @@ class Interface
std::vector<Method> methods;
};

// arguments are:
// 0: binary
// 1: name prefix (such as wl_)
// 2: header to include (such as wayland-server.h)
// 3: input file path
int main(int argc, char** argv)
{
if (argc != 3)
if (argc != 4)
{
exit(1);
}
Expand All @@ -497,7 +496,7 @@ int main(int argc, char** argv)
return camel_case_string(transformed_name);
};

xmlpp::DomParser parser(argv[2]);
xmlpp::DomParser parser(argv[3]);

auto document = parser.get_document();

Expand All @@ -515,7 +514,8 @@ int main(int argc, char** argv)

std::cout << std::endl;

emit_required_headers();
std::string const custom_header{argv[2]};
emit_required_headers(custom_header);

std::cout << std::endl;

Expand Down
3 changes: 3 additions & 0 deletions src/server/frontend/wayland/CMakeLists.txt
Expand Up @@ -2,6 +2,9 @@ set(
WAYLAND_SOURCES

core_generated_interfaces.h
xdg_shell_generated_interfaces.h
xdg-shell-unstable-v6.h
xdg-shell-unstable-v6.c
wayland_default_configuration.cpp
wayland_connector.cpp wayland_connector.h
wlshmbuffer.cpp wlshmbuffer.h)
Expand Down
3 changes: 1 addition & 2 deletions src/server/frontend/wayland/core_generated_interfaces.h
Expand Up @@ -9,8 +9,7 @@
#include <boost/throw_exception.hpp>
#include <boost/exception/diagnostic_information.hpp>

#include <wayland-server.h>
#include <wayland-server-protocol.h>
#include "wayland-server.h"

#include "mir/fd.h"
#include "mir/log.h"
Expand Down

0 comments on commit 64cb0a0

Please sign in to comment.