Refactor build system

The client was built with Meson, the server with Gradle, and were run by
a Makefile.

Add a Meson script for the server (which delegates to Gradle), and a
parent script to build and install both the client and the server to the
system, typically with:

    meson --buildtype release build
    cd build
    ninja
    sudo ninja install

In addition, use a separate Makefile to build a "portable" version of
the application (where the client expects the server to be in the
current directory). Typically:

    make release-portable
    cd dist/scrcpy
    ./scrcpy

This is especially useful for Windows builds, which are not "installed".
This commit is contained in:
Romain Vimont
2018-02-13 11:55:12 +01:00
parent 396df8a9d8
commit ff94462d8a
9 changed files with 109 additions and 42 deletions

View File

@@ -4,17 +4,28 @@
#include <errno.h>
#include <stdint.h>
#include "config.h"
#include "log.h"
#include "netutil.h"
#define SOCKET_NAME "scrcpy"
static SDL_bool push_server(const char *serial) {
#ifdef OVERRIDE_SERVER_JAR
# define DEFAULT_SERVER_JAR OVERRIDE_SERVER_JAR
#else
# define DEFAULT_SERVER_JAR PREFIX PREFIXED_SERVER_JAR
#endif
static const char *get_server_path(void) {
const char *server_path = getenv("SCRCPY_SERVER_JAR");
if (!server_path) {
server_path = "scrcpy-server.jar";
server_path = DEFAULT_SERVER_JAR;
}
process_t process = adb_push(serial, server_path, "/data/local/tmp/scrcpy-server.jar");
return server_path;
}
static SDL_bool push_server(const char *serial) {
process_t process = adb_push(serial, get_server_path(), "/data/local/tmp/scrcpy-server.jar");
return process_check_success(process, "adb push");
}