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 20, 2018
2 parents 52616ab + 2d9f3f0 commit 7194c99
Show file tree
Hide file tree
Showing 13 changed files with 3,403 additions and 330 deletions.
3 changes: 1 addition & 2 deletions examples/miral-shell/miral-desktop.sh
Expand Up @@ -40,9 +40,8 @@ if [ -e "${XDG_RUNTIME_DIR}/${wayland_display}" ]; then echo "Error: wayland end
vt_login_session=$(who -u | grep tty${vt} | grep ${USER} | wc -l)
if [ "${vt_login_session}" == "0" ]; then echo "Error: please log into tty${vt} first"; exit 1 ;fi

sudo ls >> /dev/null
oldvt=$(sudo fgconsole)
sudo sh -c "LD_LIBRARY_PATH=${LD_LIBRARY_PATH} XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR} ${bindir}${miral_server} --wayland-socket-name ${wayland_display} --vt ${vt} --arw-file --file ${socket} $*; chvt ${oldvt}"&
sudo --background --preserve-env sh -c "${bindir}${miral_server} --wayland-socket-name ${wayland_display} --vt ${vt} --arw-file --file ${socket} $*; chvt ${oldvt}"&

while [ ! -e "${socket}" ]; do echo "waiting for ${socket}"; sleep 1 ;done

Expand Down
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
7 changes: 5 additions & 2 deletions src/server/frontend/wayland/CMakeLists.txt
Expand Up @@ -2,9 +2,12 @@ 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.cpp wayland_connector.h
wlshmbuffer.cpp wlshmbuffer.h)

add_library(
mirfrontend-wayland OBJECT
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 7194c99

Please sign in to comment.