Always invoke gradle except as root
The custom target used to invoke Gradle from Meson should always be built, otherwise, the server would not be rebuilt on source changes. However, when enabling "build_always", gradle is invoked as root on "sudo ninja install" after "ninja", so it downloads the whole Gradle world into /root/.gradle. To avoid the problem, just do not call gradle if the effective user id is 0.
This commit is contained in:
parent
c2127d0819
commit
4c49b27e9f
2 changed files with 11 additions and 5 deletions
|
@ -1,9 +1,5 @@
|
|||
project('scrcpy-server', 'c') # not really c, but meson expects something
|
||||
|
||||
# does not track dependencies, so meson does not guarantees that server is up to date
|
||||
# call "touch server" or "ninja -t clean server/scrcpy-server.jar" before to rebuild
|
||||
custom_target('scrcpy-server',
|
||||
build_always: false, # do not enable, otherwise "sudo ninja install" will execute gradle!
|
||||
build_always: true, # gradle is responsible for tracking source changes
|
||||
input: '.',
|
||||
output: 'scrcpy-server.jar',
|
||||
command: [find_program('./scripts/build-wrapper.sh'), '@INPUT@', '@OUTPUT@', get_option('buildtype')],
|
||||
|
|
|
@ -2,6 +2,16 @@
|
|||
# Wrapper script to invoke gradle from meson
|
||||
set -e
|
||||
|
||||
# Do not execute gradle when ninja is called as root (it would download the
|
||||
# whole gradle world in /root/.gradle).
|
||||
# This is typically useful for calling "sudo ninja install" after a "ninja
|
||||
# install"
|
||||
if [[ "$EUID" == 0 ]]
|
||||
then
|
||||
echo "(not invoking gradle, since we are root)" >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
PROJECT_ROOT="$1"
|
||||
OUTPUT="$2"
|
||||
BUILDTYPE="$3"
|
||||
|
|
Loading…
Reference in a new issue