Compare commits
8 Commits
windows_ic
...
windows_dp
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6312ea9c98 | ||
|
|
feb250a973 | ||
|
|
d049671908 | ||
|
|
0685c491cd | ||
|
|
892cfe943e | ||
|
|
29570ee819 | ||
|
|
cfcbc2ac21 | ||
|
|
2cb4e04209 |
@@ -49,9 +49,11 @@ conf.set('_XOPEN_SOURCE', '700')
|
|||||||
conf.set('_GNU_SOURCE', true)
|
conf.set('_GNU_SOURCE', true)
|
||||||
|
|
||||||
if host_machine.system() == 'windows'
|
if host_machine.system() == 'windows'
|
||||||
|
windows = import('windows')
|
||||||
src += [
|
src += [
|
||||||
'src/sys/win/file.c',
|
'src/sys/win/file.c',
|
||||||
'src/sys/win/process.c',
|
'src/sys/win/process.c',
|
||||||
|
windows.compile_resources('scrcpy-windows.rc'),
|
||||||
]
|
]
|
||||||
conf.set('_WIN32_WINNT', '0x0600')
|
conf.set('_WIN32_WINNT', '0x0600')
|
||||||
conf.set('WINVER', '0x0600')
|
conf.set('WINVER', '0x0600')
|
||||||
@@ -80,7 +82,9 @@ endif
|
|||||||
|
|
||||||
cc = meson.get_compiler('c')
|
cc = meson.get_compiler('c')
|
||||||
|
|
||||||
if not get_option('crossbuild_windows')
|
crossbuild_windows = meson.is_cross_build() and host_machine.system() == 'windows'
|
||||||
|
|
||||||
|
if not crossbuild_windows
|
||||||
|
|
||||||
# native build
|
# native build
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|||||||
9
app/scrcpy-windows.manifest
Normal file
9
app/scrcpy-windows.manifest
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<asmv3:application>
|
||||||
|
<asmv3:windowsSettings>
|
||||||
|
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
||||||
|
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
|
||||||
|
</asmv3:windowsSettings>
|
||||||
|
</asmv3:application>
|
||||||
|
</assembly>
|
||||||
23
app/scrcpy-windows.rc
Normal file
23
app/scrcpy-windows.rc
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#include <winuser.h>
|
||||||
|
|
||||||
|
0 ICON "../data/icon.ico"
|
||||||
|
1 RT_MANIFEST "scrcpy-windows.manifest"
|
||||||
|
2 VERSIONINFO
|
||||||
|
BEGIN
|
||||||
|
BLOCK "StringFileInfo"
|
||||||
|
BEGIN
|
||||||
|
BLOCK "040904E4"
|
||||||
|
BEGIN
|
||||||
|
VALUE "FileDescription", "Display and control your Android device"
|
||||||
|
VALUE "InternalName", "scrcpy"
|
||||||
|
VALUE "LegalCopyright", "Romain Vimont, Genymobile"
|
||||||
|
VALUE "OriginalFilename", "scrcpy.exe"
|
||||||
|
VALUE "ProductName", "scrcpy"
|
||||||
|
VALUE "ProductVersion", "1.21"
|
||||||
|
END
|
||||||
|
END
|
||||||
|
BLOCK "VarFileInfo"
|
||||||
|
BEGIN
|
||||||
|
VALUE "Translation", 0x409, 1252
|
||||||
|
END
|
||||||
|
END
|
||||||
@@ -446,7 +446,7 @@ Copyright \(co 2018 Genymobile
|
|||||||
Genymobile
|
Genymobile
|
||||||
.UE
|
.UE
|
||||||
|
|
||||||
Copyright \(co 2018\-2020
|
Copyright \(co 2018\-2021
|
||||||
.MT rom@rom1v.com
|
.MT rom@rom1v.com
|
||||||
Romain Vimont
|
Romain Vimont
|
||||||
.ME
|
.ME
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ execute_server(struct sc_server *server,
|
|||||||
ADD_PARAM("power_off_on_close=%s", STRBOOL(params->power_off_on_close));
|
ADD_PARAM("power_off_on_close=%s", STRBOOL(params->power_off_on_close));
|
||||||
}
|
}
|
||||||
if (!params->clipboard_autosync) {
|
if (!params->clipboard_autosync) {
|
||||||
// By defaut, clipboard_autosync is true
|
// By default, clipboard_autosync is true
|
||||||
ADD_PARAM("clipboard_autosync=%s", STRBOOL(params->clipboard_autosync));
|
ADD_PARAM("clipboard_autosync=%s", STRBOOL(params->clipboard_autosync));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -119,6 +119,13 @@ sc_process_execute_p(const char *const argv[], sc_pid *pid, unsigned flags,
|
|||||||
|
|
||||||
close(internal[0]);
|
close(internal[0]);
|
||||||
enum sc_process_result err;
|
enum sc_process_result err;
|
||||||
|
|
||||||
|
// Somehow SDL masks many signals - undo them for other processes
|
||||||
|
// https://github.com/libsdl-org/SDL/blob/release-2.0.18/src/thread/pthread/SDL_systhread.c#L167
|
||||||
|
sigset_t mask;
|
||||||
|
sigemptyset(&mask);
|
||||||
|
sigprocmask(SIG_SETMASK, &mask, NULL);
|
||||||
|
|
||||||
if (fcntl(internal[1], F_SETFD, FD_CLOEXEC) == 0) {
|
if (fcntl(internal[1], F_SETFD, FD_CLOEXEC) == 0) {
|
||||||
execvp(argv[0], (char *const *) argv);
|
execvp(argv[0], (char *const *) argv);
|
||||||
perror("exec");
|
perror("exec");
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ sc_str_wrap_lines(const char *input, unsigned columns, unsigned indent) {
|
|||||||
|
|
||||||
APPEND_INDENT();
|
APPEND_INDENT();
|
||||||
|
|
||||||
// The last separator encountered, it must be inserted only conditionnaly,
|
// The last separator encountered, it must be inserted only conditionally,
|
||||||
// depending on the next token
|
// depending on the next token
|
||||||
char pending = 0;
|
char pending = 0;
|
||||||
|
|
||||||
|
|||||||
34
bump_version
Executable file
34
bump_version
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# This script bump scrcpy version by editing all the necessary files.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
#
|
||||||
|
# ./bump_version 1.23.4
|
||||||
|
#
|
||||||
|
# Then check the diff manually to confirm that everything is ok.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [[ $# != 1 ]]
|
||||||
|
then
|
||||||
|
echo "Syntax: $0 <version>" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
VERSION="$1"
|
||||||
|
|
||||||
|
a=( ${VERSION//./ } )
|
||||||
|
MAJOR="${a[0]:-0}"
|
||||||
|
MINOR="${a[1]:-0}"
|
||||||
|
PATCH="${a[2]:-0}"
|
||||||
|
|
||||||
|
# If VERSION is 1.23.4, then VERSION_CODE is 12304
|
||||||
|
VERSION_CODE="$(( $MAJOR * 10000 + $MINOR * 100 + "$PATCH" ))"
|
||||||
|
|
||||||
|
echo "$VERSION: major=$MAJOR minor=$MINOR patch=$PATCH [versionCode=$VERSION_CODE]"
|
||||||
|
sed -i "s/^\(\s*version: \)'[^']*'/\1'$VERSION'/" meson.build
|
||||||
|
sed -i "s/^\(\s*versionCode \).*/\1$VERSION_CODE/;s/^\(\s*versionName \).*/\1\"$VERSION\"/" server/build.gradle
|
||||||
|
sed -i "s/^\(SCRCPY_VERSION_NAME=\).*/\1$VERSION/" server/build_without_gradle.sh
|
||||||
|
sed -i "s/^\(\s*VALUE \"ProductVersion\", \)\"[^\"]*\"/\1\"$VERSION\"/" app/scrcpy-windows.rc
|
||||||
|
echo done
|
||||||
@@ -7,6 +7,7 @@ cpp = 'i686-w64-mingw32-g++'
|
|||||||
ar = 'i686-w64-mingw32-ar'
|
ar = 'i686-w64-mingw32-ar'
|
||||||
strip = 'i686-w64-mingw32-strip'
|
strip = 'i686-w64-mingw32-strip'
|
||||||
pkgconfig = 'i686-w64-mingw32-pkg-config'
|
pkgconfig = 'i686-w64-mingw32-pkg-config'
|
||||||
|
windres = 'i686-w64-mingw32-windres'
|
||||||
|
|
||||||
[host_machine]
|
[host_machine]
|
||||||
system = 'windows'
|
system = 'windows'
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ cpp = 'x86_64-w64-mingw32-g++'
|
|||||||
ar = 'x86_64-w64-mingw32-ar'
|
ar = 'x86_64-w64-mingw32-ar'
|
||||||
strip = 'x86_64-w64-mingw32-strip'
|
strip = 'x86_64-w64-mingw32-strip'
|
||||||
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
|
pkgconfig = 'x86_64-w64-mingw32-pkg-config'
|
||||||
|
windres = 'x86_64-w64-mingw32-windres'
|
||||||
|
|
||||||
[host_machine]
|
[host_machine]
|
||||||
system = 'windows'
|
system = 'windows'
|
||||||
|
|||||||
BIN
data/icon.ico
Normal file
BIN
data/icon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.6 KiB |
@@ -1,6 +1,5 @@
|
|||||||
option('compile_app', type: 'boolean', value: true, description: 'Build the client')
|
option('compile_app', type: 'boolean', value: true, description: 'Build the client')
|
||||||
option('compile_server', type: 'boolean', value: true, description: 'Build the server')
|
option('compile_server', type: 'boolean', value: true, description: 'Build the server')
|
||||||
option('crossbuild_windows', type: 'boolean', value: false, description: 'Build for Windows from Linux')
|
|
||||||
option('prebuilt_server', type: 'string', description: 'Path of the prebuilt server')
|
option('prebuilt_server', type: 'string', description: 'Path of the prebuilt server')
|
||||||
option('portable', type: 'boolean', value: false, description: 'Use scrcpy-server from the same directory as the scrcpy executable')
|
option('portable', type: 'boolean', value: false, description: 'Use scrcpy-server from the same directory as the scrcpy executable')
|
||||||
option('server_debugger', type: 'boolean', value: false, description: 'Run a server debugger and wait for a client to be attached')
|
option('server_debugger', type: 'boolean', value: false, description: 'Run a server debugger and wait for a client to be attached')
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ build-win32: prepare-deps-win32
|
|||||||
meson "$(WIN32_BUILD_DIR)" \
|
meson "$(WIN32_BUILD_DIR)" \
|
||||||
--cross-file cross_win32.txt \
|
--cross-file cross_win32.txt \
|
||||||
--buildtype release --strip -Db_lto=true \
|
--buildtype release --strip -Db_lto=true \
|
||||||
-Dcrossbuild_windows=true \
|
|
||||||
-Dcompile_server=false \
|
-Dcompile_server=false \
|
||||||
-Dportable=true )
|
-Dportable=true )
|
||||||
ninja -C "$(WIN32_BUILD_DIR)"
|
ninja -C "$(WIN32_BUILD_DIR)"
|
||||||
@@ -83,7 +82,6 @@ build-win64: prepare-deps-win64
|
|||||||
meson "$(WIN64_BUILD_DIR)" \
|
meson "$(WIN64_BUILD_DIR)" \
|
||||||
--cross-file cross_win64.txt \
|
--cross-file cross_win64.txt \
|
||||||
--buildtype release --strip -Db_lto=true \
|
--buildtype release --strip -Db_lto=true \
|
||||||
-Dcrossbuild_windows=true \
|
|
||||||
-Dcompile_server=false \
|
-Dcompile_server=false \
|
||||||
-Dportable=true )
|
-Dportable=true )
|
||||||
ninja -C "$(WIN64_BUILD_DIR)"
|
ninja -C "$(WIN64_BUILD_DIR)"
|
||||||
|
|||||||
Reference in New Issue
Block a user