mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-01-11 23:49:38 -05:00
Merge remote-tracking branch 'RetroShare/master' into pr_rsconfig
This commit is contained in:
commit
26fdd79b50
53
.gitlab-ci.yml
Normal file
53
.gitlab-ci.yml
Normal file
@ -0,0 +1,53 @@
|
||||
image: docker:stable
|
||||
|
||||
services:
|
||||
- docker:stable-dind
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
- if: $CI_MERGE_REQUEST_ID
|
||||
- if: $CI_COMMIT_BRANCH
|
||||
|
||||
build-and-test:
|
||||
script:
|
||||
- >
|
||||
if [ -n "$CI_MERGE_REQUEST_ID" ]; then
|
||||
REPO_ARGS="--build-arg REPO_URL=$CI_MERGE_REQUEST_SOURCE_PROJECT_URL" ;
|
||||
REPO_ARGS="$REPO_ARGS --build-arg REPO_BRANCH=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ;
|
||||
else
|
||||
REPO_ARGS="--build-arg REPO_URL=$CI_REPOSITORY_URL" ;
|
||||
REPO_ARGS="$REPO_ARGS --build-arg REPO_BRANCH=$CI_COMMIT_BRANCH" ;
|
||||
fi ;
|
||||
export REPO_ARGS ;
|
||||
echo REPO_ARGS=$REPO_ARGS ;
|
||||
- mkdir Dockercontext
|
||||
- >
|
||||
docker build -t retroshare:testing $REPO_ARGS
|
||||
--file $CI_PROJECT_DIR/build_scripts/GitlabCI/gitlabCI.Dockerfile
|
||||
Dockercontext
|
||||
- >
|
||||
docker run --name retroshare --detach --tty retroshare:testing
|
||||
retroshare-service --jsonApiPort 9092
|
||||
- apk add jq
|
||||
- >
|
||||
docker exec retroshare
|
||||
curl --verbose http://127.0.0.1:9092/rsJsonApi/version | jq
|
||||
- >
|
||||
docker exec retroshare
|
||||
curl --verbose http://127.0.0.1:9092/rsLoginHelper/getLocations | jq
|
||||
- >
|
||||
docker exec retroshare
|
||||
curl --verbose --data
|
||||
'{ "location":{ "mLocationName":"Test 1", "mPgpName":"Test2" },
|
||||
"password":"Test 3", "caller_data":"Test 5" }'
|
||||
http://127.0.0.1:9092/rsLoginHelper/createLocation | jq
|
||||
- >
|
||||
docker exec retroshare
|
||||
curl --verbose http://127.0.0.1:9092/rsLoginHelper/getLocations | jq
|
||||
- >
|
||||
docker exec retroshare
|
||||
curl --verbose http://127.0.0.1:9092/rsLoginHelper/isLoggedIn | jq
|
||||
- >
|
||||
docker exec retroshare
|
||||
curl --verbose http://127.0.0.1:9092/rsMsgs/getChatLobbyList | jq
|
||||
- docker container stop retroshare
|
@ -57,7 +57,7 @@ before_script:
|
||||
- if [ $TRAVIS_OS_NAME == linux ]; then qmake; fi
|
||||
- >
|
||||
if [ $TRAVIS_OS_NAME == osx ]; then
|
||||
qmake CONFIG+=rs_macos10.14
|
||||
qmake CONFIG+=rs_macos10.14 CONFIG+=c++14
|
||||
INCLUDEPATH+=$(find /usr/local/Cellar/miniupnpc/*/include | head -n 1)
|
||||
QMAKE_LIBDIR+=$(find /usr/local/Cellar/miniupnpc/*/lib/ | head -n 1)
|
||||
INCLUDEPATH+=$(find /usr/local/Cellar/openssl*/*/include/ | head -n 1)
|
||||
|
@ -5,51 +5,52 @@
|
||||
|
||||
RetroShare is a decentralized, private, secure, cross-platform, communication
|
||||
toolkit.
|
||||
RetroShare provides filesharing, chat, messages, forums, channels and more.
|
||||
RetroShare provides file sharing, chat, messages, forums, channels and more.
|
||||
|
||||
.Build Status
|
||||
|===============================================================================
|
||||
|GNU/Linux, MacOS, (via travis-ci) | image:https://travis-ci.org/RetroShare/RetroShare.svg?branch=master[link="https://travis-ci.org/RetroShare/RetroShare"]
|
||||
|Windows (via appveyor) | image:https://ci.appveyor.com/api/projects/status/github/RetroShare/RetroShare?svg=true[link="https://ci.appveyor.com/project/RetroShare58622/retroshare"]
|
||||
|GNU/Linux (via Gitlab CI) | image:https://gitlab.com/RetroShare/RetroShare/badges/master/pipeline.svg[link="https://gitlab.com/RetroShare/RetroShare/-/commits/master",title="pipeline status"]
|
||||
|GNU/Linux, macOS, (via Travis CI) | image:https://travis-ci.org/RetroShare/RetroShare.svg?branch=master[link="https://travis-ci.org/RetroShare/RetroShare"]
|
||||
|Windows (via AppVeyor) | image:https://ci.appveyor.com/api/projects/status/github/RetroShare/RetroShare?svg=true[link="https://ci.appveyor.com/project/RetroShare58622/retroshare"]
|
||||
|===============================================================================
|
||||
|
||||
|
||||
== Compilation
|
||||
|
||||
It is very difficult to keep a comprehensive (we support many platforms) and
|
||||
updated documentation on how to build RetroShare, instead we provide scripts and
|
||||
recipes that are used to create the packages for the supported platforms and
|
||||
more in the `build_scripts` directory of this repository.
|
||||
Short of comprehensive and updated documentation on how to build RetroShare
|
||||
(for the many supported platforms it runs on), scripts and recipes are provided
|
||||
in the aim of creating packages for the supported platforms (and more)
|
||||
in the `build_scripts` directory of this repository.
|
||||
|
||||
Those packaging receipts together with the continuous integration files
|
||||
`.travis.yml` and `appveyor.yml` are a good source of knowledge on how to
|
||||
compile RetroShare on different platforms.
|
||||
|
||||
|
||||
== Using RetroShare on a headless computer with WebUI
|
||||
== Using RetroShare on a headless computer with web UI
|
||||
|
||||
WARNING: This section is outdated need to be adapted to new WebUI
|
||||
WARNING: This section is outdated need to be adapted to the new web UI
|
||||
|
||||
The webUI needs to be enabled as a parameter option in retroshare-service:
|
||||
The web UI needs to be enabled as a parameter option to the retroshare-service:
|
||||
|
||||
[source,bash]
|
||||
--------
|
||||
./retroshare-nogui --webinterface 9090 --docroot /usr/share/retroshare/webui/
|
||||
--------
|
||||
|
||||
The webUI is only accessible on localhost:9090. It is advised to keep it that way so that your RS
|
||||
The web UI is only accessible on localhost:9090. It is advised to keep it that way so that your RS
|
||||
cannot be controlled using an untrusted connection.
|
||||
|
||||
To access your web UI from a distance, just open a SSH tunnel on it:
|
||||
To access your web UI from a distance, just open a SSH tunnel to it:
|
||||
|
||||
[source,bash]
|
||||
--------
|
||||
distant_machine:~/ > ssh rs_host -L 9090:localhost:9090 -N
|
||||
--------
|
||||
|
||||
"rs_host" is the machine running retroshare-nogui. Then on the distant machine, access your webUI on
|
||||
"rs_host" is the machine running `retroshare-nogui`. Then on the distant machine, access your web UI on
|
||||
|
||||
|
||||
http://localhost:9090
|
||||
|
||||
That also works with a retroshare GUI of course.
|
||||
(This can also be done from the RetroShare GUI.)
|
||||
|
@ -19,7 +19,7 @@
|
||||
# SPDX-FileCopyrightText: Retroshare Team <contact@retroshare.cc>
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-later
|
||||
|
||||
CONFIG += c++11
|
||||
CONFIG += c++14
|
||||
|
||||
!include("retroshare.pri"): error("Could not include file retroshare.pri")
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
= RetroShare development on Android
|
||||
|
||||
// SPDX-FileCopyrightText: RetroShare Team <contact@retroshare.cc>
|
||||
// SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
Compile Retroshare for Android
|
||||
==============================
|
||||
|
||||
Compiling an application for Android is not as easy as one would imagine,
|
||||
expecially one like RetroShare that has a big codebase and is not well
|
||||
@ -179,7 +179,130 @@ Opening RetroShare android app now should show your old profile.
|
||||
|
||||
== Debugging with GDB
|
||||
|
||||
QtCreator actually support debugging only for the foreground activity, so to
|
||||
If building RetroShare Android package seems tricky, setting up a functional
|
||||
debugging environement for it feels like black magic. This section is meant to
|
||||
help you doing it with less headache and hopefully in a reproducible way.
|
||||
|
||||
Unfortunately at the time of the last update to this guide, Qt build system
|
||||
strips debugging symbols from the package and from the buildroot also if you
|
||||
compile with debugging enabled. Fiddling with `qmake` configurations and
|
||||
variables like `CONFIG+=debug`, `CONFIG+=force_debug_info` or `QMAKE_STRIP`
|
||||
either as commandline arguments or inside retroshare `.pro` and `.pri` files is
|
||||
uneffective. IMHO Qt should handle this on itself so it is probably worth
|
||||
reporting a bug to them. So to workaround this problem you need to fiddle a bit
|
||||
with the Android NDK. In my case I always keep +Debug+ or +Release+ suffix in
|
||||
my build directory name depending on what kind of build it is, so I use this
|
||||
information and modify `llvm-strip` in a way that it will strip only if stripped
|
||||
file path doesn't contain +Debug+.
|
||||
|
||||
.Modify llvm-strip inside Android NDK
|
||||
--------------------------------------------------------------------------------
|
||||
## Set ANDROID_NDK_PATH to your Android NDK installation path
|
||||
export ANDROID_NDK_PATH="/opt/android-ndk/"
|
||||
|
||||
## Define a convenience variable with llvm-strip path
|
||||
export ANDROID_NDK_LLVM_STRIP="${ANDROID_NDK_PATH}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip"
|
||||
|
||||
## If not existing yer create a backup of the original llvm-strip
|
||||
[ -f "${ANDROID_NDK_LLVM_STRIP}.back" ] ||
|
||||
cp "${ANDROID_NDK_LLVM_STRIP}" "${ANDROID_NDK_LLVM_STRIP}.back"
|
||||
|
||||
## Create a new llvm-strip that does nothing if the argument path contains Debug
|
||||
cat > "${ANDROID_NDK_LLVM_STRIP}" << LLVMSTRIPTRICK
|
||||
#!/bin/bash
|
||||
|
||||
echo "\${2}" | grep -q Debug ||
|
||||
"${ANDROID_NDK_LLVM_STRIP}.back" --strip-all "\${2}"
|
||||
|
||||
LLVMSTRIPTRICK
|
||||
|
||||
## Eventually you can revert back simply by running
|
||||
# `mv "${ANDROID_NDK_LLVM_STRIP}.back" "${ANDROID_NDK_LLVM_STRIP}"`
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
To attach to the `retroshare-service` running on Android you need also to pull a
|
||||
debugging sysroot out of your device first, RetroShare sources provides an
|
||||
helper script to do that.
|
||||
|
||||
.Prepare debugging sysroot with helper script
|
||||
[source,bash]
|
||||
--------------------------------------------------------------------------------
|
||||
## Set RetroShare source path
|
||||
export RS_SOURCE_DIR="${HOME}/Development/rs-develop"
|
||||
|
||||
## Optionally set your device ID first available will be used, you can run
|
||||
## `adb devices` to list available devices.
|
||||
#export ANDROID_SERIAL="YT013PSPGK"
|
||||
|
||||
## Optionally set a path where to save the debugging sysroot otherwise default
|
||||
## is used.
|
||||
#export DEBUG_SYSROOT="${HOME}/Builds/debug_sysroot/${ANDROID_SERIAL}/"
|
||||
|
||||
## Run the helper script
|
||||
${RS_SOURCE_DIR}/build_scripts/Android/pull_sysroot.sh
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
.Prepare Android NDK GDB configurations
|
||||
[source,bash]
|
||||
--------------------------------------------------------------------------------
|
||||
## Optionally set Qt version variable consistently with your installation
|
||||
export QT_VERSION="5.12.7"
|
||||
|
||||
## Optionally set Qt architecture variable consistently with Android device
|
||||
export QT_ARCH="arm64_v8a"
|
||||
|
||||
## Optionally set Qt path variable consistently with your installation
|
||||
export QT_DIR="/opt/Qt-${QT_VERSION}/${QT_VERSION}/"
|
||||
|
||||
## Optionally set RetroShare buildroot path
|
||||
export RS_BUILD_DIR="${HOME}/Builds/RetroShare-Android_for_${QT_ARCH}_Clang_Qt_${QT_VERSION//./_}_android_${QT_ARCH}-Debug/"
|
||||
|
||||
## Optionally set gdb config file path
|
||||
export GDB_CONFIGS_FILE="${HOME}/Builds/gdb_configs_${QT_ARCH}"
|
||||
|
||||
## Generate Android NDK GDB configuration
|
||||
${RS_SOURCE_DIR}/build_scripts/Android/generate_gdb_init_commands.sh
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
You will need to run the following steps everytime you want to debug
|
||||
`retroshare-service` on Android.
|
||||
|
||||
Make sure `retroshare-service` is running on your connected Android device.
|
||||
|
||||
.Run GDB server on your Android device from your host console
|
||||
[source,bash]
|
||||
--------------------------------------------------------------------------------
|
||||
${RS_SOURCE_DIR}/build_scripts/Android/start_gdbserver.sh
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
.Run Android NDK GDB on your workstation and attach
|
||||
[source,bash]
|
||||
--------------------------------------------------------------------------------
|
||||
## Start NDK gdb
|
||||
${ANDROID_NDK_PATH}/prebuilt/linux-x86_64/bin/gdb
|
||||
|
||||
## Instruct GDB how and where to find debugging symbols
|
||||
(gdb) source $GDB_CONFIGS_FILE
|
||||
|
||||
## Connect to the gdbserver running on the phone
|
||||
(gdb) target remote 127.0.01:5039
|
||||
|
||||
## Have fun debugging
|
||||
(gdb)
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
|
||||
== Debugging with Qt Creator
|
||||
|
||||
WARNING: As of the last update to this guide, debugging retroshare-service
|
||||
running on Android via Qt creator doesn't wrok even with all the trickery
|
||||
explained in this section, you better learn how to debug with GDB reading
|
||||
carefully previous section.
|
||||
|
||||
Qt Creator actually support debugging only for the foreground activity, so to
|
||||
debug what's happening in the core extra trickery is needed.
|
||||
|
||||
- Run the App in Debug mode from QtCreator "Start Debugging" button
|
||||
@ -239,6 +362,17 @@ TIP: Some time WiFi power saving on Android mess with the GDB connection,
|
||||
to prevent that from appening open another +adb shell+ and live +ping+ toward
|
||||
your work-station running
|
||||
|
||||
== Embedding into other Android packages
|
||||
|
||||
As showed by https://elrepo.io/[elRepo.io] developers it is possible and quite
|
||||
easy to embed `retroshare-service` into other Android packages see description
|
||||
|
||||
https://gitlab.com/elRepo.io/elRepo.io-android/-/blob/master/README.adoc
|
||||
|
||||
And implementation details
|
||||
|
||||
https://gitlab.com/elRepo.io/elRepo.io-android/-/blob/master/android/app/build.gradle
|
||||
|
||||
|
||||
== Furter Readings
|
||||
|
||||
@ -254,3 +388,12 @@ your work-station running
|
||||
- link:https://fw4spl-org.github.io/fw4spl-blog/2015/07/27/Native-debugging-on-Android-with-QtCreator.html[]
|
||||
- link:https://fragglet.livejournal.com/19646.html[]
|
||||
- link:https://github.com/android-ndk/ndk/issues/773[How to build without using standalone toolchain?]
|
||||
|
||||
== License
|
||||
|
||||
Copyright (C) 2016-2020 Gioacchino Mazzurco <gio@eigenlab.org> +
|
||||
Copyright (C) 2020 Asociación Civil Altermundi <info@altermundi.net> +
|
||||
|
||||
This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.
|
||||
|
||||
image::https://i.creativecommons.org/l/by-sa/4.0/88x31.png[Creative Commons License, link=http://creativecommons.org/licenses/by-sa/4.0/]
|
||||
|
85
build_scripts/Android/generate_gdb_init_commands.sh
Executable file
85
build_scripts/Android/generate_gdb_init_commands.sh
Executable file
@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script to prepare Android NDK GDB configurations to debug retroshare-service
|
||||
#
|
||||
# Copyright (C) 2020 Gioacchino Mazzurco <gio@eigenlab.org>
|
||||
# Copyright (C) 2020 Asociación Civil Altermundi <info@altermundi.net>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it under
|
||||
# the terms of the GNU Affero General Public License as published by the
|
||||
# Free Software Foundation, version 3.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License along
|
||||
# with this program. If not, see <https://www.gnu.org/licenses/>
|
||||
|
||||
|
||||
## Define default value for variable, take two arguments, $1 variable name,
|
||||
## $2 default variable value, if the variable is not already define define it
|
||||
## with default value.
|
||||
function define_default_value()
|
||||
{
|
||||
VAR_NAME="${1}"
|
||||
DEFAULT_VALUE="${2}"
|
||||
|
||||
[ -z "${!VAR_NAME}" ] && export ${VAR_NAME}="${DEFAULT_VALUE}"
|
||||
}
|
||||
|
||||
define_default_value QT_VERSION "5.12.4"
|
||||
define_default_value QT_ARCH "arm64_v8a"
|
||||
define_default_value QT_DIR "/opt/Qt-${QT_VERSION}/${QT_VERSION}/"
|
||||
define_default_value ANDROID_SERIAL "$(adb devices | head -n 2 | tail -n 1 | awk '{print $1}')"
|
||||
define_default_value RS_BUILD_DIR "${HOME}/Builds/RetroShare-Android_for_${QT_ARCH}_Clang_Qt_${QT_VERSION//./_}_android_${QT_ARCH}-Debug/"
|
||||
define_default_value RS_SOURCE_DIR "${HOME}/Development/rs-develop/"
|
||||
define_default_value DEBUG_SYSROOT "${HOME}/Builds/debug_sysroot/${ANDROID_SERIAL}/"
|
||||
define_default_value GDB_CONFIGS_FILE "${HOME}/Builds/gdb_configs_${QT_ARCH}"
|
||||
|
||||
scanDir()
|
||||
{
|
||||
find "$1" -type d -not -path '*/\.git/*' | tr '\n' ':' >> $GDB_CONFIGS_FILE
|
||||
}
|
||||
|
||||
putSeparator()
|
||||
{
|
||||
echo >> $GDB_CONFIGS_FILE
|
||||
echo >> $GDB_CONFIGS_FILE
|
||||
}
|
||||
|
||||
echo "set sysroot ${DEBUG_SYSROOT}" > $GDB_CONFIGS_FILE
|
||||
putSeparator
|
||||
|
||||
echo "set auto-solib-add on" >> $GDB_CONFIGS_FILE
|
||||
echo -n "set solib-search-path " >> $GDB_CONFIGS_FILE
|
||||
scanDir "${RS_BUILD_DIR}"
|
||||
scanDir "${DEBUG_SYSROOT}"
|
||||
scanDir "${QT_DIR}/android_${QT_ARCH}/lib/"
|
||||
scanDir "${QT_DIR}/android_${QT_ARCH}/plugins/"
|
||||
scanDir "${QT_DIR}/android_${QT_ARCH}/qml/"
|
||||
putSeparator
|
||||
|
||||
echo -n "directory " >> $GDB_CONFIGS_FILE
|
||||
scanDir ${RS_SOURCE_DIR}/jsonapi-generator/src
|
||||
scanDir ${RS_SOURCE_DIR}/libbitdht/src
|
||||
scanDir ${RS_SOURCE_DIR}/openpgpsdk/src
|
||||
scanDir ${RS_SOURCE_DIR}/libretroshare/src
|
||||
scanDir ${RS_SOURCE_DIR}/retroshare-service/src
|
||||
scanDir ${RS_SOURCE_DIR}/supportlibs/rapidjson/include/
|
||||
scanDir ${RS_SOURCE_DIR}/supportlibs/restbed/source/
|
||||
scanDir ${RS_SOURCE_DIR}/supportlibs/udp-discovery-cpp/
|
||||
scanDir ${RS_SOURCE_DIR}/supportlibs/restbed/dependency/asio/asio/include/
|
||||
scanDir ${RS_SOURCE_DIR}/supportlibs/restbed/dependency/catch/include/
|
||||
putSeparator
|
||||
|
||||
## see https://stackoverflow.com/questions/28972367/gdb-backtrace-without-stopping
|
||||
echo "catch signal SIGSEGV" >> $GDB_CONFIGS_FILE
|
||||
echo "commands
|
||||
bt
|
||||
continue
|
||||
end" >> $GDB_CONFIGS_FILE
|
||||
putSeparator
|
||||
|
||||
echo GDB_CONFIGS_FILE=$GDB_CONFIGS_FILE
|
@ -2,7 +2,7 @@
|
||||
|
||||
# Script to prepare RetroShare Android package building toolchain
|
||||
#
|
||||
# Copyright (C) 2016-2019 Gioacchino Mazzurco <gio@eigenlab.org>
|
||||
# Copyright (C) 2016-2020 Gioacchino Mazzurco <gio@eigenlab.org>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it under
|
||||
# the terms of the GNU Affero General Public License as published by the
|
||||
|
90
build_scripts/Android/pull_sysroot.sh
Executable file
90
build_scripts/Android/pull_sysroot.sh
Executable file
@ -0,0 +1,90 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script to pull debugging sysroot from Android devices
|
||||
#
|
||||
# Copyright (C) 2020 Gioacchino Mazzurco <gio@eigenlab.org>
|
||||
# Copyright (C) 2020 Asociación Civil Altermundi <info@altermundi.net>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it under
|
||||
# the terms of the GNU Affero General Public License as published by the
|
||||
# Free Software Foundation, version 3.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License along
|
||||
# with this program. If not, see <https://www.gnu.org/licenses/>
|
||||
|
||||
<<"ASCIIDOC"
|
||||
|
||||
Pull files from Android device to prepare a debugging sysroot
|
||||
Inspired by:
|
||||
https://fw4spl-org.github.io/fw4spl-blog/2015/07/27/Native-debugging-on-Android-with-QtCreator.html
|
||||
|
||||
The goal is to have a local copy of the sysroot of the connected device.
|
||||
For that we use the command `adb pull <remote_dir_or_file> <local_dir_or_file>`
|
||||
|
||||
We will get a copy of:
|
||||
|
||||
- `/system/lib/`
|
||||
- `/vendor/lib/`
|
||||
- `libc.so`
|
||||
- `libcutils.so`
|
||||
|
||||
As well as the binaries `linker` and `app_process`
|
||||
|
||||
IMPORTANT:
|
||||
from one device to another, the remote file `app_process` can be a binary file
|
||||
or a symlink to a binary file - which is NOT ok for us.
|
||||
That's so we will try to pull every known possible variants of `app_process`,
|
||||
e.g. `app_process32` or `app_process_init`
|
||||
|
||||
ASCIIDOC
|
||||
|
||||
|
||||
## Define default value for variable, take two arguments, $1 variable name,
|
||||
## $2 default variable value, if the variable is not already define define it
|
||||
## with default value.
|
||||
function define_default_value()
|
||||
{
|
||||
VAR_NAME="${1}"
|
||||
DEFAULT_VALUE="${2}"
|
||||
|
||||
[ -z "${!VAR_NAME}" ] && export ${VAR_NAME}="${DEFAULT_VALUE}"
|
||||
}
|
||||
|
||||
define_default_value ANDROID_SERIAL "$(adb devices | head -n 2 | tail -n 1 | awk '{print $1}')"
|
||||
define_default_value DEBUG_SYSROOT "${HOME}/Builds/debug_sysroot/${ANDROID_SERIAL}/"
|
||||
|
||||
rm -rf "${DEBUG_SYSROOT}"
|
||||
|
||||
for mDir in "/system/lib/" "/vendor/lib/"; do
|
||||
mkdir -p "${DEBUG_SYSROOT}/${mDir}"
|
||||
# adb pull doesn't behave like rsync dirA/ dirB/ so avoid nesting the
|
||||
# directory by deleting last one before copying
|
||||
rmdir "${DEBUG_SYSROOT}/${mDir}"
|
||||
adb pull "${mDir}" "${DEBUG_SYSROOT}/${mDir}"
|
||||
done
|
||||
|
||||
# Retrieve the specific binaries - some of these adb commands will fail, since
|
||||
# some files may not exist, but that's ok.
|
||||
|
||||
mkdir -p "${DEBUG_SYSROOT}/system/bin/"
|
||||
for mBin in "/system/bin/linker" "/system/bin/app_process" \
|
||||
"/system/bin/app_process_init" "/system/bin/app_process32" \
|
||||
"/system/bin/app_process64" ; do
|
||||
adb pull "${mBin}" "${DEBUG_SYSROOT}/${mBin}"
|
||||
done
|
||||
|
||||
# Verify which variants of the specific binaries could be pulled
|
||||
echo
|
||||
echo "Found the following specific binaries:"
|
||||
echo
|
||||
ls -1 "${DEBUG_SYSROOT}/system/bin/"*
|
||||
ls -1 "${DEBUG_SYSROOT}/system/lib/libc.so"*
|
||||
ls -1 "${DEBUG_SYSROOT}/system/lib/libcutils.so"*
|
||||
echo
|
||||
|
||||
echo DEBUG_SYSROOT="${DEBUG_SYSROOT}"
|
116
build_scripts/Android/start_gdbserver.sh
Executable file
116
build_scripts/Android/start_gdbserver.sh
Executable file
@ -0,0 +1,116 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script to start gdbserver on Android device and attach to retroshare-service
|
||||
#
|
||||
# Copyright (C) 2020 Gioacchino Mazzurco <gio@eigenlab.org>
|
||||
# Copyright (C) 2020 Asociación Civil Altermundi <info@altermundi.net>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it under
|
||||
# the terms of the GNU Affero General Public License as published by the
|
||||
# Free Software Foundation, version 3.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License along
|
||||
# with this program. If not, see <https://www.gnu.org/licenses/>
|
||||
|
||||
<<"ASCIIDOC"
|
||||
|
||||
Start gdbserver on Android device and attach it to the retroshare service
|
||||
process
|
||||
|
||||
Inspired by:
|
||||
https://fw4spl-org.github.io/fw4spl-blog/2015/07/27/Native-debugging-on-Android-with-QtCreator.html
|
||||
|
||||
ASCIIDOC
|
||||
|
||||
|
||||
## Define default value for variable, take two arguments, $1 variable name,
|
||||
## $2 default variable value, if the variable is not already define define it
|
||||
## with default value.
|
||||
function define_default_value()
|
||||
{
|
||||
VAR_NAME="${1}"
|
||||
DEFAULT_VALUE="${2}"
|
||||
|
||||
[ -z "${!VAR_NAME}" ] && export ${VAR_NAME}="${DEFAULT_VALUE}"
|
||||
}
|
||||
|
||||
define_default_value ANDROID_APK_PACKAGE "org.retroshare.service"
|
||||
define_default_value ANDROID_PROCESS_NAME "org.retroshare.service:rs"
|
||||
define_default_value ANDROID_INSTALL_PATH ""
|
||||
define_default_value LIB_GDB_SERVER_PATH ""
|
||||
define_default_value ANDROID_SERIAL "$(adb devices | head -n 2 | tail -n 1 | awk '{print $1}')"
|
||||
define_default_value GDB_SERVER_PORT 5039
|
||||
|
||||
adb_ushell()
|
||||
{
|
||||
adb shell run-as ${ANDROID_APK_PACKAGE} $@
|
||||
}
|
||||
|
||||
[ -z "${ANDROID_INSTALL_PATH}" ] &&
|
||||
{
|
||||
ANDROID_INSTALL_PATH="$(adb_ushell pm path "${ANDROID_APK_PACKAGE}")"
|
||||
ANDROID_INSTALL_PATH="$(dirname ${ANDROID_INSTALL_PATH#"package:"})"
|
||||
[ -z "${ANDROID_INSTALL_PATH}" ] &&
|
||||
cat <<EOF
|
||||
Cannot find install path for ${ANDROID_APK_PACKAGE} make sure it is installed,
|
||||
or manually specify ANDROID_INSTALL_PATH
|
||||
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
## If not passed as environement variable try to determine gdbserver path
|
||||
## shipped withing APK
|
||||
[ -z "${LIB_GDB_SERVER_PATH}" ] &&
|
||||
{
|
||||
|
||||
for mUsualPath in \
|
||||
"${ANDROID_INSTALL_PATH}/lib/libgdbserver.so" \
|
||||
"${ANDROID_INSTALL_PATH}/lib/arm64/libgdbserver.so"
|
||||
do
|
||||
adb_ushell ls "${mUsualPath}" &&
|
||||
export LIB_GDB_SERVER_PATH="${mUsualPath}" && break
|
||||
done
|
||||
}
|
||||
|
||||
[ -z "${LIB_GDB_SERVER_PATH}" ] &&
|
||||
{
|
||||
cat <<EOF
|
||||
libgdbserver.so not found in any of the usual path attempting to look for it
|
||||
with find, it will take a little more time. Take note of the discovered path and
|
||||
define LIB_GDB_SERVER_PATH on your commandline at next run to avoid waiting
|
||||
again.
|
||||
|
||||
|
||||
EOF
|
||||
tFile="$(mktemp)"
|
||||
adb_ushell find ${ANDROID_INSTALL_PATH} -type f -name 'libgdbserver.so' | \
|
||||
tee "${tFile}"
|
||||
|
||||
LIB_GDB_SERVER_PATH="$(head -n 1 "${tFile}")"
|
||||
rm "${tFile}"
|
||||
}
|
||||
|
||||
[ -z "${LIB_GDB_SERVER_PATH}" ] &&
|
||||
{
|
||||
echo "Cannot find libgdbserver.so, are you sure your package ships it?"
|
||||
exit -1
|
||||
}
|
||||
|
||||
mPid="$(adb_ushell ps | grep ${ANDROID_PROCESS_NAME} | awk '{print $2}')"
|
||||
[ -z "${mPid}" ] &&
|
||||
{
|
||||
echo "Failed ${ANDROID_PROCESS_NAME} PID retrival are you sure it is running?"
|
||||
exit -2
|
||||
}
|
||||
|
||||
|
||||
## Establish port forwarding so we can connect to gdbserver with gdb
|
||||
adb forward tcp:${GDB_SERVER_PORT} tcp:${GDB_SERVER_PORT}
|
||||
|
||||
((adb_ushell ${LIB_GDB_SERVER_PATH} 127.0.0.1:${GDB_SERVER_PORT} --attach ${mPid})&)
|
43
build_scripts/GitlabCI/base.Dockerfile
Normal file
43
build_scripts/GitlabCI/base.Dockerfile
Normal file
@ -0,0 +1,43 @@
|
||||
## Add +--build-arg FRESHCLONE=$(date +%s)+ to docker build commandline to
|
||||
## force cloning a new
|
||||
|
||||
## To prepare an image suitable as base for Gitlab CI use
|
||||
# docker build -t "${CI_REGISTRY_IMAGE}:base" --build-arg KEEP_SOURCE=true --build-arg REPO_DEPTH="" -f base.Dockerfile .
|
||||
|
||||
## Now you need to tag it so you can later push it
|
||||
# docker tag ${ID_OF_THE_CREATED_IMAGE} registry.gitlab.com/retroshare/${CI_REGISTRY_IMAGE}:base
|
||||
|
||||
## To push it to gitlab CI registry you need first to login and the to push
|
||||
# docker login registry.gitlab.com
|
||||
# docker push registry.gitlab.com/retroshare/${CI_REGISTRY_IMAGE}:base
|
||||
|
||||
|
||||
## To run the container
|
||||
# docker run -it -p 127.0.0.1:9092:9092 "${CI_REGISTRY_IMAGE}:base" retroshare-service --jsonApiPort 9092 --jsonApiBindAddress 0.0.0.0
|
||||
|
||||
FROM ubuntu
|
||||
|
||||
ARG CACHEBUST=0
|
||||
RUN \
|
||||
apt-get update -y && apt-get upgrade -y && \
|
||||
apt-get install -y build-essential libssl-dev libbz2-dev libsqlite3-dev \
|
||||
libsqlcipher-dev libupnp-dev pkg-config libz-dev \
|
||||
qt5-default libxapian-dev qttools5-dev doxygen rapidjson-dev \
|
||||
git cmake curl
|
||||
|
||||
ARG FRESHCLONE=0
|
||||
ARG REPO_URL=https://gitlab.com/RetroShare/RetroShare.git
|
||||
ARG REPO_BRANCH=master
|
||||
ARG REPO_DEPTH="--depth 2000"
|
||||
ARG KEEP_SOURCE=false
|
||||
RUN apt-get update -y && apt-get upgrade -y
|
||||
RUN git clone $REPO_DEPTH $REPO_URL -b $REPO_BRANCH && cd RetroShare && \
|
||||
git fetch --tags && cd ..
|
||||
RUN \
|
||||
mkdir RetroShare-build && cd RetroShare-build && \
|
||||
qmake ../RetroShare \
|
||||
CONFIG+=no_retroshare_plugins CONFIG+=ipv6 \
|
||||
CONFIG+=retroshare_service CONFIG+=no_retroshare_gui \
|
||||
CONFIG+=rs_jsonapi CONFIG+=rs_deep_search && \
|
||||
(make -j$(nproc) || make -j$(nproc) || make) && make install && \
|
||||
cd .. && rm -rf RetroShare-build && ($KEEP_SOURCE || rm -rf RetroShare)
|
18
build_scripts/GitlabCI/gitlabCI.Dockerfile
Normal file
18
build_scripts/GitlabCI/gitlabCI.Dockerfile
Normal file
@ -0,0 +1,18 @@
|
||||
FROM registry.gitlab.com/retroshare/retroshare:base
|
||||
|
||||
RUN apt-get update -y && apt-get upgrade -y
|
||||
|
||||
ARG REPO_URL=https://gitlab.com/RetroShare/RetroShare.git
|
||||
ARG REPO_BRANCH=master
|
||||
RUN \
|
||||
cd RetroShare && git remote add testing $REPO_URL && \
|
||||
git fetch --tags testing $REPO_BRANCH && \
|
||||
git reset --hard testing/$REPO_BRANCH && \
|
||||
git --no-pager log --max-count 1
|
||||
RUN \
|
||||
mkdir RetroShare-build && cd RetroShare-build && \
|
||||
qmake ../RetroShare CONFIG+=no_retroshare_gui \
|
||||
CONFIG+=retroshare_service \
|
||||
CONFIG+=rs_jsonapi CONFIG+=rs_deep_search && \
|
||||
(make -j$(nproc) || make -j$(nproc) || make) && make install && \
|
||||
cd .. && rm -rf RetroShare-build
|
@ -1 +1 @@
|
||||
Subproject commit 879d5dfe8dcd8995be753120cf1b8bab4dd2ec82
|
||||
Subproject commit b0d7ae39fe9d9192848bbf7b8902d2188da895c9
|
1
build_scripts/Windows-msys2/.gitignore
vendored
Normal file
1
build_scripts/Windows-msys2/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/build/env-mod.bat
|
@ -8,7 +8,15 @@ Requirements: about 12 GB of free space
|
||||
The resulting binary is a 32-bit build of Retroshare which will also work
|
||||
fine on a 64-bit system.
|
||||
|
||||
### MSYS2 INSTALLATION
|
||||
**If you want to make complet solution without debugging it, prefer to use \build_scripts\Windows-msys2\build.bat**
|
||||
|
||||
This batch will install and build all for you.
|
||||
|
||||
You only have to clone this repository (with [git for windows](https://gitforwindows.org/)) to a local folder, then start it in a terminal.
|
||||
|
||||
At the end, you'll get at ..\\*-msys2\deploy\ the Portable 7zip file.
|
||||
|
||||
### MSYS2 INSTALLATION (for editing or debugging)
|
||||
|
||||
Download MSYS2 from [MSYS2](http://www.msys2.org/). Get the i686 version
|
||||
if you run a 32-bit Windows or the x86_64 if you run a 64-bit Windows.
|
||||
@ -49,6 +57,12 @@ Install all needed dependencies:
|
||||
pacman -S mingw32/mingw-w64-i686-cmake
|
||||
pacman -S mingw-w64-i686-rapidjson
|
||||
|
||||
If you want to use QtCreator as IDE, prefer using this one publish by MSYS2 as all build Kit are already setted.
|
||||
|
||||
pacman -S mingw-w64-i686-qt-creator
|
||||
*You can start it from MSYS2 terminal.*
|
||||
|
||||
|
||||
We're done installing MSYS2, close the shell terminal.
|
||||
|
||||
### BUILDING RETROSHARE
|
||||
|
@ -9,11 +9,11 @@ call "%EnvPath%\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
%cecho% info "Build %SourceName%"
|
||||
call "%~dp0build\build.bat" 32 release tor autologin plugins
|
||||
call "%~dp0build\build.bat" 64 release tor autologin "CONFIG+=rs_use_native_dialogs"
|
||||
if errorlevel 1 %cecho% error "Failed to build %SourceName%." & exit /B %ERRORLEVEL%
|
||||
|
||||
%cecho% info "Pack %SourceName%"
|
||||
call "%~dp0build\pack.bat" 32 release tor
|
||||
call "%~dp0build\pack.bat" 64 release tor autologin "CONFIG+=rs_use_native_dialogs"
|
||||
if errorlevel 1 %cecho% error "Failed to pack %SourceName%." & exit /B %ERRORLEVEL%
|
||||
|
||||
exit /B 0
|
||||
|
@ -9,11 +9,11 @@ call "%EnvPath%\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
%cecho% info "Build %SourceName%"
|
||||
call "%~dp0build\build.bat" 32 release autologin plugins
|
||||
call "%~dp0build\build.bat" 64 release autologin "CONFIG+=rs_use_native_dialogs"
|
||||
if errorlevel 1 %cecho% error "Failed to build %SourceName%." & exit /B %ERRORLEVEL%
|
||||
|
||||
%cecho% info "Pack %SourceName%"
|
||||
call "%~dp0build\pack.bat" 32 release
|
||||
call "%~dp0build\pack.bat" 64 release autologin "CONFIG+=rs_use_native_dialogs"
|
||||
if errorlevel 1 %cecho% error "Failed to pack %SourceName%." & exit /B %ERRORLEVEL%
|
||||
|
||||
exit /B 0
|
||||
|
67
build_scripts/Windows-msys2/build/build-installer.bat
Normal file
67
build_scripts/Windows-msys2/build/build-installer.bat
Normal file
@ -0,0 +1,67 @@
|
||||
@echo off
|
||||
|
||||
setlocal
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0..\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env-msys2.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0env.bat" %*
|
||||
if errorlevel 2 exit /B 2
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
if not "%ParamNoupdate%"=="1" (
|
||||
:: Install NSIS
|
||||
%EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-nsis"
|
||||
)
|
||||
|
||||
:: Check deployment
|
||||
if not exist "%RsDeployPath%\retroshare.exe" echo Project is not deployed. Run pack.bat first! & goto error
|
||||
|
||||
:: Get compiled revision
|
||||
set GetRsVersion=%SourcePath%\build_scripts\Windows-msys2\tools\get-rs-version.bat
|
||||
if not exist "%GetRsVersion%" (
|
||||
%cecho% error "File not found"
|
||||
echo %GetRsVersion%
|
||||
goto error
|
||||
)
|
||||
|
||||
:: Get compiled version
|
||||
call "%GetRsVersion%" "%RsDeployPath%\retroshare.exe" RsVersion
|
||||
if errorlevel 1 %cecho% error "Revision not found."& goto error
|
||||
if "%RsVersion.Extra%"=="" %cecho% error "Extra number not found".& goto error
|
||||
|
||||
:: Build defines for script
|
||||
set NSIS_PARAM=
|
||||
|
||||
set NSIS_PARAM=%NSIS_PARAM% /DDEPLOYDIR="%RsDeployPath%"
|
||||
set NSIS_PARAM=%NSIS_PARAM% /DOUTDIR="%RsPackPath%"
|
||||
set NSIS_PARAM=%NSIS_PARAM% /DINSTALLERADD="%RsArchiveAdd%"
|
||||
set NSIS_PARAM=%NSIS_PARAM% /DARCHITECTURE="%RsArchitecture%"
|
||||
set NSIS_PARAM=%NSIS_PARAM% /DREVISION=%RsVersion.Extra%
|
||||
|
||||
set QtMainVersion=%QtVersion:~0,1%
|
||||
|
||||
:: Create installer
|
||||
echo %path%
|
||||
rem makensis %NSIS_PARAM% "%SourcePath%\build_scripts\Windows-msys2\installer\retroshare-Qt%QtMainVersion%.nsi"
|
||||
rem pushd "%SourcePath%\build_scripts\Windows-msys2\installer"
|
||||
rem %EnvMSYS2Cmd% "makensis $0 retroshare-Qt%QtMainVersion%.nsi" "%NSIS_PARAM%"
|
||||
rem popd
|
||||
"%RsMinGWPath%\bin\makensis" %NSIS_PARAM% "%SourcePath%\build_scripts\Windows-msys2\installer\retroshare-Qt%QtMainVersion%.nsi"
|
||||
|
||||
exit /B %ERRORLEVEL%
|
||||
|
||||
:error
|
||||
endlocal
|
||||
exit /B 1
|
||||
|
||||
:error_env
|
||||
echo Failed to initialize environment.
|
||||
endlocal
|
||||
exit /B 1
|
35
build_scripts/Windows-msys2/build/build-webui.bat
Normal file
35
build_scripts/Windows-msys2/build/build-webui.bat
Normal file
@ -0,0 +1,35 @@
|
||||
@echo off
|
||||
|
||||
setlocal
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0..\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env-msys2.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
:: Initialize base environment
|
||||
call "%~dp0env-base.bat" %*
|
||||
if errorlevel 2 exit /B 2
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0env.bat" %*
|
||||
if errorlevel 2 exit /B 2
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
call "%~dp0..\tools\webui.bat"
|
||||
|
||||
:error
|
||||
|
||||
title %COMSPEC%
|
||||
|
||||
if errorlevel 1 echo.& echo Webui generation failed& echo.
|
||||
exit /B %ERRORLEVEL%
|
||||
|
||||
:error_env
|
||||
echo Failed to initialize environment.
|
||||
endlocal
|
||||
exit /B 1
|
@ -7,8 +7,6 @@ call "%~dp0..\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env-msys2.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
@ -17,11 +15,22 @@ call "%~dp0env-base.bat" %*
|
||||
if errorlevel 2 exit /B 2
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
:: Install needed things
|
||||
%EnvMSYS2Cmd% "pacman --noconfirm --needed -S make git mingw-w64-%RsMSYS2Architecture%-toolchain mingw-w64-%RsMSYS2Architecture%-qt5 mingw-w64-%RsMSYS2Architecture%-miniupnpc mingw-w64-%RsMSYS2Architecture%-sqlcipher mingw-w64-%RsMSYS2Architecture%-libmicrohttpd mingw-w64-%RsMSYS2Architecture%-xapian-core mingw-w64-%RsMSYS2Architecture%-cmake mingw-w64-%RsMSYS2Architecture%-rapidjson"
|
||||
if not "%ParamNoupdate%"=="1" (
|
||||
:: Install needed things
|
||||
%EnvMSYS2Cmd% "pacman --noconfirm --needed -S make git mingw-w64-%RsMSYS2Architecture%-toolchain mingw-w64-%RsMSYS2Architecture%-qt5 mingw-w64-%RsMSYS2Architecture%-miniupnpc mingw-w64-%RsMSYS2Architecture%-sqlcipher mingw-w64-%RsMSYS2Architecture%-cmake mingw-w64-%RsMSYS2Architecture%-rapidjson"
|
||||
|
||||
:: Plugins
|
||||
if "%ParamPlugins%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-speex mingw-w64-%RsMSYS2Architecture%-speexdsp mingw-w64-%RsMSYS2Architecture%-curl mingw-w64-%RsMSYS2Architecture%-libxslt mingw-w64-%RsMSYS2Architecture%-opencv mingw-w64-%RsMSYS2Architecture%-ffmpeg"
|
||||
:: Webui
|
||||
if "%ParamWebui%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-doxygen"
|
||||
|
||||
:: Plugins
|
||||
if "%ParamPlugins%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-speex mingw-w64-%RsMSYS2Architecture%-speexdsp mingw-w64-%RsMSYS2Architecture%-curl mingw-w64-%RsMSYS2Architecture%-libxslt mingw-w64-%RsMSYS2Architecture%-opencv mingw-w64-%RsMSYS2Architecture%-ffmpeg"
|
||||
|
||||
:: Clang
|
||||
if "%ParamClang%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-clang"
|
||||
|
||||
:: Indexing
|
||||
if "%ParamIndexing%"=="1" %EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-xapian-core mingw-w64-%RsMSYS2Architecture%-libvorbis mingw-w64-%RsMSYS2Architecture%-flac mingw-w64-%RsMSYS2Architecture%-taglib"
|
||||
)
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0env.bat" %*
|
||||
@ -52,9 +61,20 @@ set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% "CONFIG+=%RsBuildConfig%"
|
||||
if "%ParamAutologin%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% "CONFIG+=rs_autologin"
|
||||
if "%ParamPlugins%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% "CONFIG+=retroshare_plugins"
|
||||
|
||||
:: Dump the active build config into a file
|
||||
echo %RS_QMAKE_CONFIG% > buildinfo.txt
|
||||
echo %RsBuildConfig% >> buildinfo.txt
|
||||
echo %RsArchitecture% >> buildinfo.txt
|
||||
echo Qt %QtVersion% >> buildinfo.txt
|
||||
echo %RsCompiler% >> buildinfo.txt
|
||||
|
||||
call "%ToolsPath%\msys2-path.bat" "%SourcePath%" MSYS2SourcePath
|
||||
call "%ToolsPath%\msys2-path.bat" "%EnvMSYS2Path%" MSYS2EnvMSYS2Path
|
||||
%EnvMSYS2Cmd% "qmake "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-g++ %RS_QMAKE_CONFIG%"
|
||||
if "%ParamClang%"=="1" (
|
||||
%EnvMSYS2Cmd% "qmake "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-clang-g++ %RS_QMAKE_CONFIG%"
|
||||
) else (
|
||||
%EnvMSYS2Cmd% "qmake "%MSYS2SourcePath%/RetroShare.pro" -r -spec win32-g++ %RS_QMAKE_CONFIG%"
|
||||
)
|
||||
if errorlevel 1 goto error
|
||||
|
||||
echo.
|
||||
@ -63,7 +83,13 @@ echo.
|
||||
|
||||
title Build - %SourceName%-%RsBuildConfig% [make]
|
||||
|
||||
%EnvMSYS2Cmd% "make -j %NUMBER_OF_PROCESSORS%"
|
||||
%EnvMSYS2Cmd% "make -j %CoreCount%"
|
||||
if errorlevel 1 goto error
|
||||
|
||||
:: Webui
|
||||
if "%ParamWebui%"=="1" (
|
||||
call "%~dp0..\tools\webui.bat"
|
||||
)
|
||||
|
||||
:error
|
||||
popd
|
||||
|
@ -6,6 +6,11 @@ set ParamDebug=0
|
||||
set ParamAutologin=0
|
||||
set ParamPlugins=0
|
||||
set ParamTor=0
|
||||
set ParamWebui=0
|
||||
set ParamClang=0
|
||||
set ParamIndexing=0
|
||||
set ParamNoupdate=0
|
||||
set CoreCount=%NUMBER_OF_PROCESSORS%
|
||||
set RS_QMAKE_CONFIG=
|
||||
|
||||
:parameter_loop
|
||||
@ -25,6 +30,16 @@ if "%~1" NEQ "" (
|
||||
set ParamPlugins=1
|
||||
) else if "%%~a"=="tor" (
|
||||
set ParamTor=1
|
||||
) else if "%%~a"=="webui" (
|
||||
set ParamWebui=1
|
||||
) else if "%%~a"=="singlethread" (
|
||||
set CoreCount=1
|
||||
) else if "%%~a"=="clang" (
|
||||
set ParamClang=1
|
||||
) else if "%%~a"=="indexing" (
|
||||
set ParamIndexing=1
|
||||
) else if "%%~a"=="noupdate" (
|
||||
set ParamNoupdate=1
|
||||
) else if "%%~a"=="CONFIG+" (
|
||||
set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% %1
|
||||
) else (
|
||||
@ -55,6 +70,12 @@ if "%Param64%"=="1" (
|
||||
set RsMSYS2Architecture=x86_64
|
||||
)
|
||||
|
||||
if "%ParamClang%"=="1" (
|
||||
set RsCompiler=Clang
|
||||
) else (
|
||||
set RsCompiler=GCC
|
||||
)
|
||||
|
||||
if "%RsBit%"=="" goto :usage
|
||||
|
||||
if "%ParamRelease%"=="1" (
|
||||
@ -75,12 +96,19 @@ if "%ParamTor%"=="1" (
|
||||
set RsType=
|
||||
)
|
||||
|
||||
if "%ParamWebui%"=="1" (
|
||||
set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% "CONFIG+=rs_jsonapi" "CONFIG+=rs_webui"
|
||||
)
|
||||
|
||||
if "%ParamIndexing%"=="1" (
|
||||
set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% "CONFIG+=rs_deep_channels_index" "CONFIG+=rs_deep_files_index" "CONFIG+=rs_deep_files_index_ogg" "CONFIG+=rs_deep_files_index_flac" "CONFIG+=rs_deep_files_index_taglib"
|
||||
)
|
||||
|
||||
exit /B 0
|
||||
|
||||
:usage
|
||||
echo.
|
||||
echo Usage: 32^|64 release^|debug [version autologin plugins]
|
||||
echo Usage: 32^|64 release^|debug [autologin plugins webui singlethread clang indexing noupdate] ["CONFIG+=..."]
|
||||
echo.
|
||||
echo Mandatory parameter
|
||||
echo 32^|64 32-bit or 64-bit Version
|
||||
@ -89,6 +117,12 @@ echo.
|
||||
echo Optional parameter (need clean when changed)
|
||||
echo autologin Build with autologin
|
||||
echo plugins Build plugins
|
||||
echo webui Enable JsonAPI and pack webui files
|
||||
echo singlethread Use only 1 thread for building
|
||||
echo clang Use clang compiler instead of GCC
|
||||
echo indexing Build with deep channel and file indexing support
|
||||
echo noupdate Skip updating the libraries
|
||||
echo "CONFIG+=..." Enable some extra features, you can find the almost complete list in retroshare.pri
|
||||
echo.
|
||||
echo Parameter for pack
|
||||
echo tor Pack tor version
|
||||
|
@ -16,10 +16,11 @@ if "%QtVersion%"=="" %cecho% error "Cannot get Qt version." & exit /B 1
|
||||
|
||||
set RsMinGWPath=%EnvMSYS2BasePath%\mingw%RsBit%
|
||||
|
||||
set RsBuildPath=%BuildPath%\Qt-%QtVersion%-%RsArchitecture%-%RsBuildConfig%
|
||||
set RsDeployPath=%DeployPath%\Qt-%QtVersion%%RsType%-%RsArchitecture%-%RsBuildConfig%
|
||||
set RsBuildPath=%BuildPath%\Qt-%QtVersion%-%RsArchitecture%-%RsCompiler%-%RsBuildConfig%
|
||||
set RsDeployPath=%DeployPath%\Qt-%QtVersion%%RsType%-%RsArchitecture%-%RsCompiler%-%RsBuildConfig%
|
||||
set RsPackPath=%DeployPath%
|
||||
set RsArchiveAdd=
|
||||
set RsWebuiPath=%RootPath%\%SourceName%-webui
|
||||
|
||||
if not exist "%~dp0env-mod.bat" goto no_mod
|
||||
call "%~dp0env-mod.bat"
|
||||
|
@ -1,118 +1,43 @@
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
setlocal
|
||||
|
||||
set NoAsk=
|
||||
if "%~2"=="no-ask" set NoAsk=1
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0..\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env-msys2.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
call "%~dp0env.bat" %*
|
||||
if errorlevel 2 exit /B 2
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
:: Check git executable
|
||||
set GitPath=
|
||||
call "%ToolsPath%\find-in-path.bat" GitPath git.exe
|
||||
if "%GitPath%"=="" echo Git executable not found in PATH.& exit /B 1
|
||||
|
||||
:: Get compiled revision
|
||||
set GetRsVersion=%SourcePath%\build_scripts\Windows\tools\get-rs-version.bat
|
||||
if not exist "%GetRsVersion%" (
|
||||
echo File not found
|
||||
echo %GetRsVersion%
|
||||
if "%~2"=="" (
|
||||
echo.
|
||||
echo Parameter error.
|
||||
echo Usage git-log sourcepath outputfile
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
call "%GetRsVersion%" RS_REVISION_STRING RsRevision
|
||||
if "%RsRevision%"=="" echo Revision not found.& exit /B 1
|
||||
set logfile=%~2
|
||||
copy nul %logfile% > nul
|
||||
|
||||
:: Get compiled version
|
||||
call "%GetRsVersion%" RS_REVISION_STRING RsRevision
|
||||
if "%RsRevision%"=="" echo Revision not found.& exit /B 1
|
||||
pushd %~1
|
||||
|
||||
call "%GetRsVersion%" RS_MAJOR_VERSION RsMajorVersion
|
||||
if "%RsMajorVersion%"=="" echo Major version not found.& exit /B 1
|
||||
|
||||
call "%GetRsVersion%" RS_MINOR_VERSION RsMinorVersion
|
||||
if "%RsMinorVersion%"=="" echo Minor version not found.& exit /B 1
|
||||
|
||||
call "%GetRsVersion%" RS_BUILD_NUMBER RsBuildNumber
|
||||
if "%RsBuildNumber%"=="" echo Build number not found.& exit /B 1
|
||||
|
||||
call "%GetRsVersion%" RS_BUILD_NUMBER_ADD RsBuildNumberAdd
|
||||
|
||||
set RsVersion=%RsMajorVersion%.%RsMinorVersion%.%RsBuildNumber%%RsBuildNumberAdd%
|
||||
|
||||
:: Check WMIC is available
|
||||
wmic.exe alias /? >nul 2>&1 || echo WMIC is not available.&& exit /B 1
|
||||
|
||||
:: Use WMIC to retrieve date in format YYYYMMDD
|
||||
set RsDate=
|
||||
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set RsDate=%%I
|
||||
set RsDate=%RsDate:~0,4%%RsDate:~4,2%%RsDate:~6,2%
|
||||
|
||||
:: Get last revision
|
||||
set RsLastRefFile=%BuildPath%\Qt-%QtVersion%%RsType%-%RsBuildConfig%-LastRef.txt
|
||||
set RsLastRef=
|
||||
if exist "%RsLastRefFile%" set /P RsLastRef=<"%RsLastRefFile%"
|
||||
|
||||
if "%NoAsk%"=="1" goto no_ask_for_last_revision
|
||||
if not "%RsLastRef%"=="" echo Last Revision was %RsLastRef%
|
||||
set /P RsLastRefInput=Last Revision:
|
||||
if "%RsLastRefInput%" NEQ "" set RsLastRef=%RsLastRefInput%
|
||||
:no_ask_for_last_revision
|
||||
|
||||
:: Get current revision
|
||||
pushd "%SourcePath%"
|
||||
call "%ToolsPath%\get-git-ref.bat" RsRef
|
||||
popd
|
||||
|
||||
if errorlevel 1 exit /B 1
|
||||
if "%RsRef%"=="" echo Cannot get git revision.& exit /B 1
|
||||
|
||||
echo.
|
||||
echo Creating log from %RsLastRef%
|
||||
echo to %RsRef%
|
||||
|
||||
if "%NoAsk%"=="1" goto no_confirm
|
||||
choice /M "Do you want to proceed?"
|
||||
if %errorlevel%==2 exit /B 1
|
||||
:no_confirm
|
||||
|
||||
if "%RsBuildConfig%" NEQ "release" (
|
||||
set RsGitLog=%DeployPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsRevision%-Qt-%QtVersion%%RsType%-msys2%RsArchiveAdd%-%RsBuildConfig%.txt
|
||||
) else (
|
||||
set RsGitLog=%DeployPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsRevision%-Qt-%QtVersion%%RsType%-msys2%RsArchiveAdd%.txt
|
||||
)
|
||||
|
||||
title %SourceName%-%RsBuildConfig% [git log]
|
||||
|
||||
pushd "%SourcePath%"
|
||||
if "%RsLastRef%"=="" (
|
||||
git log %RsRef% >"%RsGitLog%"
|
||||
) else (
|
||||
if "%RsLastRef%"=="%RsRef%" (
|
||||
git log %RsRef% --max-count=1 >"%RsGitLog%"
|
||||
set last=HEAD
|
||||
for /f %%t in ('git tag --sort=-taggerdate --merged ^| findstr v') do (
|
||||
echo generating changelog for !last!..%%t
|
||||
echo ----------------------------------------------- >> %logfile%
|
||||
if !last! neq HEAD (
|
||||
git tag -n !last! >> %logfile%
|
||||
) else (
|
||||
git log %RsLastRef%..%RsRef% >"%RsGitLog%"
|
||||
echo HEAD >> %logfile%
|
||||
)
|
||||
rem echo !last! ---^> %%t >> %logfile%
|
||||
echo ----------------------------------------------- >> %logfile%
|
||||
echo. >> %logfile%
|
||||
git log %%t..!last! --no-merges "--pretty=format:%%h %%ai %%<(10,trunc)%%an %%s" >> %logfile%
|
||||
echo. >> %logfile%
|
||||
echo. >> %logfile%
|
||||
set last=%%t
|
||||
)
|
||||
|
||||
echo generating changelog for %last%
|
||||
echo ----------------------------------------------- >> %logfile%
|
||||
git tag -n %last% >> %logfile%
|
||||
echo ----------------------------------------------- >> %logfile%
|
||||
echo. >> %logfile%
|
||||
git log %last% --no-merges "--pretty=format:%%h %%ai %%<(10,trunc)%%an %%s" >> %logfile%
|
||||
|
||||
popd
|
||||
|
||||
title %COMSPEC%
|
||||
|
||||
echo %RsRef%>"%RsLastRefFile%"
|
||||
|
||||
exit /B %ERRORLEVEL%
|
||||
|
||||
:error_env
|
||||
echo Failed to initialize environment.
|
||||
endlocal
|
||||
exit /B 1
|
||||
endlocal enabledelayedexpansion
|
@ -17,6 +17,16 @@ call "%~dp0env.bat" %*
|
||||
if errorlevel 2 exit /B 2
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
if not "%ParamNoupdate%"=="1" (
|
||||
:: Install ntldd
|
||||
%EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-ntldd-git"
|
||||
|
||||
:: Install tor
|
||||
if "%ParamTor%"=="1" (
|
||||
%EnvMSYS2Cmd% "pacman --noconfirm --needed -S mingw-w64-%RsMSYS2Architecture%-tor"
|
||||
)
|
||||
)
|
||||
|
||||
:: Remove deploy path
|
||||
if exist "%RsDeployPath%" rmdir /S /Q "%RsDeployPath%"
|
||||
|
||||
@ -24,7 +34,7 @@ if exist "%RsDeployPath%" rmdir /S /Q "%RsDeployPath%"
|
||||
if not exist "%RsBuildPath%\Makefile" echo Project is not compiled.& goto error
|
||||
|
||||
:: Get compiled revision
|
||||
set GetRsVersion=%SourcePath%\build_scripts\Windows\tools\get-rs-version.bat
|
||||
set GetRsVersion=%SourcePath%\build_scripts\Windows-msys2\tools\get-rs-version.bat
|
||||
if not exist "%GetRsVersion%" (
|
||||
%cecho% error "File not found"
|
||||
echo %GetRsVersion%
|
||||
@ -50,14 +60,6 @@ set RsDate=
|
||||
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set RsDate=%%I
|
||||
set RsDate=%RsDate:~0,4%%RsDate:~4,2%%RsDate:~6,2%
|
||||
|
||||
if "%ParamTor%"=="1" (
|
||||
:: Check for tor executable
|
||||
if not exist "%EnvDownloadPath%\tor\Tor\tor.exe" (
|
||||
%cecho% error "Tor binary not found. Please download Tor Expert Bundle from\nhttps://www.torproject.org/download/download.html.en\nand unpack to\n%EnvDownloadPath:\=\\%\\tor"
|
||||
goto error
|
||||
)
|
||||
)
|
||||
|
||||
set QtMainVersion=%QtVersion:~0,1%
|
||||
set QtSharePath=%RsMinGWPath%\share\qt%QtMainVersion%\
|
||||
|
||||
@ -69,9 +71,9 @@ if "%QtMainVersion%"=="4" set QtMainVersion2=4
|
||||
if "%QtMainVersion%"=="5" set QtMainVersion1=5
|
||||
|
||||
if "%RsBuildConfig%" NEQ "release" (
|
||||
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-Qt-%QtVersion%-msys2%RsType%%RsArchiveAdd%-%RsBuildConfig%.7z
|
||||
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-%RsArchitecture%-msys2%RsType%%RsArchiveAdd%-%RsBuildConfig%.7z
|
||||
) else (
|
||||
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-Qt-%QtVersion%-msys2%RsType%%RsArchiveAdd%.7z
|
||||
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-%RsArchitecture%-msys2%RsType%%RsArchiveAdd%.7z
|
||||
)
|
||||
|
||||
if exist "%Archive%" del /Q "%Archive%"
|
||||
@ -93,6 +95,7 @@ mkdir "%RsDeployPath%\qss"
|
||||
mkdir "%RsDeployPath%\stylesheets"
|
||||
mkdir "%RsDeployPath%\sounds"
|
||||
mkdir "%RsDeployPath%\translations"
|
||||
mkdir "%RsDeployPath%\license"
|
||||
|
||||
copy nul "%RsDeployPath%\portable" %Quite%
|
||||
|
||||
@ -100,16 +103,13 @@ echo copy binaries
|
||||
copy "%RsBuildPath%\retroshare-gui\src\%RsBuildConfig%\RetroShare*.exe" "%RsDeployPath%" %Quite%
|
||||
copy "%RsBuildPath%\retroshare-nogui\src\%RsBuildConfig%\retroshare*-nogui.exe" "%RsDeployPath%" %Quite%
|
||||
copy "%RsBuildPath%\retroshare-service\src\%RsBuildConfig%\retroshare*-service.exe" "%RsDeployPath%" %Quite%
|
||||
copy "%RsBuildPath%\supportlibs\cmark\build\src\libcmark.dll" "%RsDeployPath%" %Quite%
|
||||
|
||||
echo copy extensions
|
||||
for /D %%D in ("%RsBuildPath%\plugins\*") do (
|
||||
call :copy_extension "%%D" "%RsDeployPath%\Data\%Extensions%"
|
||||
call :copy_dependencies "%RsDeployPath%\Data\%Extensions%\%%~nxD.dll" "%RsDeployPath%"
|
||||
)
|
||||
|
||||
echo copy dependencies
|
||||
call :copy_dependencies "%RsDeployPath%\retroshare.exe" "%RsDeployPath%"
|
||||
|
||||
echo copy Qt DLL's
|
||||
copy "%RsMinGWPath%\bin\Qt%QtMainVersion1%Svg%QtMainVersion2%.dll" "%RsDeployPath%" %Quite%
|
||||
|
||||
@ -121,14 +121,22 @@ if "%QtMainVersion%"=="5" (
|
||||
)
|
||||
|
||||
if exist "%QtSharePath%\plugins\styles\qwindowsvistastyle.dll" (
|
||||
echo Copy styles
|
||||
echo copy styles
|
||||
mkdir "%RsDeployPath%\styles" %Quite%
|
||||
copy "%QtSharePath%\plugins\styles\qwindowsvistastyle.dll" "%RsDeployPath%\styles" %Quite%
|
||||
)
|
||||
|
||||
copy "%QtSharePath%\plugins\imageformats\*.dll" "%RsDeployPath%\imageformats" %Quite%
|
||||
del /Q "%RsDeployPath%\imageformats\*d?.dll" %Quite%
|
||||
for %%D in ("%RsDeployPath%\imageformats\*.dll") do (
|
||||
|
||||
if "%ParamTor%"=="1" (
|
||||
echo copy tor
|
||||
copy "%RsMinGWPath%\bin\tor.exe" "%RsDeployPath%" %Quite%
|
||||
copy "%RsMinGWPath%\bin\tor-gencert.exe" "%RsDeployPath%" %Quite%
|
||||
)
|
||||
|
||||
echo copy dependencies
|
||||
for /R "%RsDeployPath%" %%D in (*.dll, *.exe) do (
|
||||
call :copy_dependencies "%%D" "%RsDeployPath%"
|
||||
)
|
||||
|
||||
@ -144,6 +152,9 @@ rmdir /S /Q "%RsDeployPath%\stylesheets\__MACOSX__Bubble" %Quite%
|
||||
echo copy sounds
|
||||
xcopy /S "%SourcePath%\retroshare-gui\src\sounds" "%RsDeployPath%\sounds" %Quite%
|
||||
|
||||
echo copy license
|
||||
xcopy /S "%SourcePath%\retroshare-gui\src\license" "%RsDeployPath%\license" %Quite%
|
||||
|
||||
echo copy translation
|
||||
copy "%SourcePath%\retroshare-gui\src\translations\qt_tr.qm" "%RsDeployPath%\translations" %Quite%
|
||||
copy "%QtSharePath%\translations\qt_*.qm" "%RsDeployPath%\translations" %Quite%
|
||||
@ -158,18 +169,21 @@ if "%QtMainVersion%"=="5" (
|
||||
echo copy bdboot.txt
|
||||
copy "%SourcePath%\libbitdht\src\bitdht\bdboot.txt" "%RsDeployPath%" %Quite%
|
||||
|
||||
echo copy changelog.txt
|
||||
copy "%SourcePath%\retroshare-gui\src\changelog.txt" "%RsDeployPath%" %Quite%
|
||||
echo generate changelog.txt
|
||||
call call "%~dp0\git-log.bat" "%SourcePath%" "%RsDeployPath%\changelog.txt"
|
||||
|
||||
if exist "%SourcePath%\libresapi\src\webui" (
|
||||
echo copy webui
|
||||
mkdir "%RsDeployPath%\webui"
|
||||
xcopy /S "%SourcePath%\libresapi\src\webui" "%RsDeployPath%\webui" %Quite%
|
||||
)
|
||||
echo copy buildinfo.txt
|
||||
copy "%RsBuildPath%\buildinfo.txt" "%RsDeployPath%" %Quite%
|
||||
|
||||
if "%ParamTor%"=="1" (
|
||||
echo copy tor
|
||||
echo n | copy /-y "%EnvDownloadPath%\tor\Tor\*.*" "%RsDeployPath%" %Quite%
|
||||
if "%ParamWebui%"=="1" (
|
||||
if exist "%RsWebuiPath%\webui" (
|
||||
echo copy webui
|
||||
mkdir "%RsDeployPath%\webui"
|
||||
xcopy /S "%RsWebuiPath%\webui" "%RsDeployPath%\webui" %Quite%
|
||||
) else (
|
||||
%cecho% error "Webui is enabled, but no webui data found at %RsWebuiPath%\webui"
|
||||
goto error
|
||||
)
|
||||
)
|
||||
|
||||
rem pack files
|
||||
@ -204,14 +218,11 @@ if exist "%~1\%RsBuildConfig%\%~n1.dll" (
|
||||
goto :EOF
|
||||
|
||||
:copy_dependencies
|
||||
set CopyDependenciesCopiedSomething=0
|
||||
for /F "usebackq" %%A in (`%ToolsPath%\depends.bat list %1`) do (
|
||||
for /F "usebackq" %%A in (`%ToolsPath%\depends.bat %1`) do (
|
||||
if not exist "%~2\%%A" (
|
||||
if exist "%RsMinGWPath%\bin\%%A" (
|
||||
set CopyDependenciesCopiedSomething=1
|
||||
copy "%RsMinGWPath%\bin\%%A" %2 %Quite%
|
||||
)
|
||||
)
|
||||
)
|
||||
if "%CopyDependenciesCopiedSomething%"=="1" goto copy_dependencies
|
||||
goto :EOF
|
||||
|
2
build_scripts/Windows-msys2/env/env.bat
vendored
2
build_scripts/Windows-msys2/env/env.bat
vendored
@ -7,9 +7,7 @@ set EnvToolsPath=%EnvRootPath%\tools
|
||||
set EnvTempPath=%EnvRootPath%\tmp
|
||||
set EnvDownloadPath=%EnvRootPath%\download
|
||||
|
||||
set EnvWgetExe=%EnvToolsPath%\wget.exe
|
||||
set EnvSevenZipExe=%EnvToolsPath%\7z.exe
|
||||
set EnvDependsExe=%EnvToolsPath%\depends.exe
|
||||
set EnvCEchoExe=%EnvToolsPath%\cecho.exe
|
||||
set cecho=call "%ToolsPath%\cecho.bat"
|
||||
|
||||
|
@ -25,7 +25,7 @@ if exist "%EnvMSYS2Path%\msys%MSYS2Base%\usr\bin\pacman.exe" (
|
||||
)
|
||||
)
|
||||
|
||||
set MSYS2Install=msys2-base-%MSYS2Architecture%-20180531.tar.xz
|
||||
set MSYS2Install=msys2-base-%MSYS2Architecture%-20200720.tar.xz
|
||||
set MSYS2Url=http://sourceforge.net/projects/msys2/files/Base/%MSYS2Architecture%/%MSYS2Install%/download
|
||||
|
||||
%cecho% info "Remove previous MSYS2 version"
|
||||
|
@ -6,22 +6,6 @@ set CEchoUrl=https://github.com/lordmulder/cecho/releases/download/2015-10-10/ce
|
||||
set CEchoInstall=cecho.2015-10-10.zip
|
||||
set SevenZipUrl=https://sourceforge.net/projects/sevenzip/files/7-Zip/18.05/7z1805.msi/download
|
||||
set SevenZipInstall=7z1805.msi
|
||||
set WgetUrl=https://eternallybored.org/misc/wget/1.19.4/32/wget.exe
|
||||
set WgetInstall=wget.exe
|
||||
set DependsUrl=http://www.dependencywalker.com/depends22_x86.zip
|
||||
set DependsInstall=depends22_x86.zip
|
||||
set SigcheckInstall=Sigcheck.zip
|
||||
set SigcheckUrl=https://download.sysinternals.com/files/%SigcheckInstall%
|
||||
|
||||
if not exist "%EnvToolsPath%\wget.exe" (
|
||||
echo Download Wget installation
|
||||
|
||||
if not exist "%EnvDownloadPath%\%WgetInstall%" call "%ToolsPath%\winhttpjs.bat" %WgetUrl% -saveTo "%EnvDownloadPath%\%WgetInstall%"
|
||||
if not exist "%EnvDownloadPath%\%WgetInstall%" %cecho% error "Cannot download Wget installation" & goto error
|
||||
|
||||
echo Copy Wget
|
||||
copy "%EnvDownloadPath%\wget.exe" "%EnvToolsPath%"
|
||||
)
|
||||
|
||||
if not exist "%EnvToolsPath%\7z.exe" (
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
@ -56,32 +40,6 @@ if not exist "%EnvToolsPath%\cecho.exe" (
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
)
|
||||
|
||||
if not exist "%EnvToolsPath%\depends.exe" (
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
mkdir "%EnvTempPath%"
|
||||
|
||||
%cecho% info "Download Dependency Walker installation"
|
||||
|
||||
if not exist "%EnvDownloadPath%\%DependsInstall%" call "%ToolsPath%\winhttpjs.bat" %DependsUrl% -saveTo "%EnvDownloadPath%\%DependsInstall%"
|
||||
if not exist "%EnvDownloadPath%\%DependsInstall%" %cecho% error "Cannot download Dependendy Walker installation" & goto error
|
||||
|
||||
%cecho% info "Unpack Dependency Walker"
|
||||
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%DependsInstall%"
|
||||
copy "%EnvTempPath%\*" "%EnvToolsPath%"
|
||||
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
)
|
||||
|
||||
if not exist "%EnvToolsPath%\sigcheck.exe" (
|
||||
%cecho% info "Download Sigcheck installation"
|
||||
|
||||
if not exist "%EnvDownloadPath%\%SigcheckInstall%" call "%ToolsPath%\download-file.bat" "%SigcheckUrl%" "%EnvDownloadPath%\%SigcheckInstall%"
|
||||
if not exist "%EnvDownloadPath%\%SigcheckInstall%" %cecho% error "Cannot download Sigcheck installation" & goto error
|
||||
|
||||
%cecho% info "Unpack Sigcheck"
|
||||
"%EnvSevenZipExe%" x -o"%EnvToolsPath%" "%EnvDownloadPath%\%SigcheckInstall%" sigcheck.exe
|
||||
)
|
||||
|
||||
:exit
|
||||
endlocal
|
||||
exit /B 0
|
||||
|
BIN
build_scripts/Windows-msys2/installer/HeaderImage.bmp
Normal file
BIN
build_scripts/Windows-msys2/installer/HeaderImage.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
BIN
build_scripts/Windows-msys2/installer/HeaderImageEmpty.bmp
Normal file
BIN
build_scripts/Windows-msys2/installer/HeaderImageEmpty.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
15
build_scripts/Windows-msys2/installer/ifexist.nsh
Normal file
15
build_scripts/Windows-msys2/installer/ifexist.nsh
Normal file
@ -0,0 +1,15 @@
|
||||
; See http://nsis.sourceforge.net/Check_if_a_file_exists_at_compile_time for documentation
|
||||
!macro !defineifexist _VAR_NAME _FILE_NAME
|
||||
!tempfile _TEMPFILE
|
||||
!ifdef NSIS_WIN32_MAKENSIS
|
||||
; Windows - cmd.exe
|
||||
!system 'if exist "${_FILE_NAME}" echo !define ${_VAR_NAME} > "${_TEMPFILE}"'
|
||||
!else
|
||||
; Posix - sh
|
||||
!system 'if [ -e "${_FILE_NAME}" ]; then echo "!define ${_VAR_NAME}" > "${_TEMPFILE}"; fi'
|
||||
!endif
|
||||
!include '${_TEMPFILE}'
|
||||
!delfile '${_TEMPFILE}'
|
||||
!undef _TEMPFILE
|
||||
!macroend
|
||||
!define !defineifexist "!insertmacro !defineifexist"
|
29
build_scripts/Windows-msys2/installer/lang/ca_ES.nsh
Normal file
29
build_scripts/Windows-msys2/installer/lang/ca_ES.nsh
Normal file
@ -0,0 +1,29 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Instal·la ${APPNAME} i els components necessaris."
|
||||
!insertmacro LANG_STRING Section_Data "Pells"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Instal·la pells."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Icones d'accés directe"
|
||||
!insertmacro LANG_STRING Section_Shortcuts_Desc "Afegir icones d'accés directe."
|
||||
!insertmacro LANG_STRING Section_StartMenu "Icona del menú d'inici"
|
||||
!insertmacro LANG_STRING Section_StartMenu_Desc "Afegir icona en el menú d'inici"
|
||||
!insertmacro LANG_STRING Section_Desktop "Icona d'escriptori"
|
||||
!insertmacro LANG_STRING Section_Desktop_Desc "Afegir icona a l'escriptori"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch "Icona de la barra ràpida d'accés"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch_Desc "Afegir icona a la barra ràpida d'accés"
|
||||
!insertmacro LANG_STRING Section_Plugins "Complements opcionals"
|
||||
!insertmacro LANG_STRING Section_Plugins_Desc "Components opcionals per afegir funcionalitat."
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader "LectorFonts"
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader_Desc "Instal·lar complement LectorFonts."
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud "NúvolEnllaços"
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud_Desc "Instal·lar complement NúvolEnllaços."
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP "VeuIP"
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP_Desc "Instal·lar complement VeuIP."
|
||||
!insertmacro LANG_STRING Section_AutoStart "Posada en marxa automàtica"
|
||||
!insertmacro LANG_STRING Section_AutoStart_Desc "Autoengegar al arrencar."
|
||||
!insertmacro LANG_STRING Page_InstallMode "Mode instal·lació"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Desc "Escull com vols instal·lar ${APPNAME}."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard "Instal·lació e&stàndard"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard_Desc "Instal·la ${APPNAME} per la sessió d'usuari actual."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable "Instal·lació &portable."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable_Desc "En mode portable les dades de configuració s'emmagatzemen a la carpeta d'aplicació i no s'escriu informació al registre del sistema."
|
||||
!insertmacro LANG_STRING Link_Uninstall "Desinstal·lar."
|
29
build_scripts/Windows-msys2/installer/lang/de.nsh
Normal file
29
build_scripts/Windows-msys2/installer/lang/de.nsh
Normal file
@ -0,0 +1,29 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Installiert ${APPNAME} und die benötigten Komponenten."
|
||||
!insertmacro LANG_STRING Section_Data "Skins"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Skins installieren."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Verknüpfungssymbole"
|
||||
!insertmacro LANG_STRING Section_Shortcuts_Desc "Verküpfungssymbole hinzufügen."
|
||||
!insertmacro LANG_STRING Section_StartMenu "Startmenüsymbol"
|
||||
!insertmacro LANG_STRING Section_StartMenu_Desc "Fügt Symbol zum Startmenü hinzu."
|
||||
!insertmacro LANG_STRING Section_Desktop "Desktopsymbol"
|
||||
!insertmacro LANG_STRING Section_Desktop_Desc "Fügt Symbol zum Desktop hinzu."
|
||||
!insertmacro LANG_STRING Section_QuickLaunch "Schnellstartsymbol"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch_Desc "Fügt Symbol zur Schnellstartleiste hinzu."
|
||||
!insertmacro LANG_STRING Section_Plugins "Optionale Plug-ins"
|
||||
!insertmacro LANG_STRING Section_Plugins_Desc "Optionale Plug-ins zum Erweitern der Funktionalität."
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader "FeedReader"
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader_Desc "Installiert das Plug-in Feedreader."
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud "Verknüpfungswolke"
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud_Desc "Installiert das Plug-in Verknüpfungswolke."
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP "VOIP"
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP_Desc "Installiert das Plug-in VOIP"
|
||||
!insertmacro LANG_STRING Section_AutoStart "Automatischer Programmstart"
|
||||
!insertmacro LANG_STRING Section_AutoStart_Desc "Beim Start automatisch ausführen."
|
||||
!insertmacro LANG_STRING Page_InstallMode "Installationsmodus"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Desc "Wähle wie du ${APPNAME} installieren willst."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard "&Standardinstallation"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard_Desc "Installiere ${APPNAME} für den derzeitigen Benutzer dieses Geräts."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable "&Portable Installation"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable_Desc "Im portablen Modus werden alle Konfigurationsdaten im Verzeichnis der Anwendung gespeichert und keine Informationen in der Registry abgelegt."
|
||||
!insertmacro LANG_STRING Link_Uninstall "Deinstallieren"
|
29
build_scripts/Windows-msys2/installer/lang/en.nsh
Normal file
29
build_scripts/Windows-msys2/installer/lang/en.nsh
Normal file
@ -0,0 +1,29 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Installs ${APPNAME} and required components."
|
||||
!insertmacro LANG_STRING Section_Data "Skins"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Installs skins."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Shortcut icons"
|
||||
!insertmacro LANG_STRING Section_Shortcuts_Desc "Adds shortcut icons."
|
||||
!insertmacro LANG_STRING Section_StartMenu "Start Menu icon"
|
||||
!insertmacro LANG_STRING Section_StartMenu_Desc "Adds icon to start menu."
|
||||
!insertmacro LANG_STRING Section_Desktop "Desktop icon"
|
||||
!insertmacro LANG_STRING Section_Desktop_Desc "Adds icon to desktop."
|
||||
!insertmacro LANG_STRING Section_QuickLaunch "Quick Launch icon"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch_Desc "Adds icon to Quick Launch toolbar."
|
||||
!insertmacro LANG_STRING Section_Plugins "Optional plugins"
|
||||
!insertmacro LANG_STRING Section_Plugins_Desc "Optional plugins to extend functionality."
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader "FeedReader"
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader_Desc "Installs plugin FeedReader."
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP "VOIP"
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP_Desc "Installs plugin VOIP."
|
||||
;!insertmacro LANG_STRING Section_Link "File Association"
|
||||
;!insertmacro LANG_STRING Section_Link_Desc "Associate ${APPNAME} with .pqi file extension."
|
||||
!insertmacro LANG_STRING Section_AutoStart "Auto Startup"
|
||||
!insertmacro LANG_STRING Section_AutoStart_Desc "Auto-Run at startup."
|
||||
!insertmacro LANG_STRING Page_InstallMode "Installation Mode"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Desc "Choose how you want to install ${APPNAME}."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard "&Standard installation"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard_Desc "Install ${APPNAME} for the current user of this machine."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable "&Portable installation"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable_Desc "In portable mode all configuration data is stored in the application folder and no information is written to the registry."
|
||||
!insertmacro LANG_STRING Link_Uninstall "Uninstall"
|
29
build_scripts/Windows-msys2/installer/lang/es.nsh
Normal file
29
build_scripts/Windows-msys2/installer/lang/es.nsh
Normal file
@ -0,0 +1,29 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Instala ${APPNAME} y los componentes requeridos."
|
||||
!insertmacro LANG_STRING Section_Data "Coberturas (skins)"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Instalar coberturas"
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Iconos de accesos directos"
|
||||
!insertmacro LANG_STRING Section_Shortcuts_Desc "Añade iconos de accesos directos."
|
||||
!insertmacro LANG_STRING Section_StartMenu "Icono de menú de inicio"
|
||||
!insertmacro LANG_STRING Section_StartMenu_Desc "Añade icono al menú de inicio."
|
||||
!insertmacro LANG_STRING Section_Desktop "Icono del escritorio"
|
||||
!insertmacro LANG_STRING Section_Desktop_Desc "Añade icono al escritorio"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch "Icono de inicio rápido"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch_Desc "Añade icono a la Barra de Inicio Rápido"
|
||||
!insertmacro LANG_STRING Section_Plugins "Complementos opcionales"
|
||||
!insertmacro LANG_STRING Section_Plugins_Desc "Complementos opcionales para expandir la funcionalidad."
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader "FeedReader"
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader_Desc "Instala el complemento FeedReader."
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud "LinksCloud"
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud_Desc "Instala el complemento LinksCloud."
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP "VOIP"
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP_Desc "Instala el complemento VOIP"
|
||||
!insertmacro LANG_STRING Section_AutoStart "Auto iniciar"
|
||||
!insertmacro LANG_STRING Section_AutoStart_Desc "Auto-ejecutar al incio."
|
||||
!insertmacro LANG_STRING Page_InstallMode "Modo de instalación"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Desc "Elija cómo quiere instalar ${APPNAME}."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard "Instalación &Estándar"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard_Desc "Instalar ${APPNAME} para el usuario actual de esta máquina."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable "Instalación &Portable"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable_Desc "En modo portable, todos los datos de configuración se almacenan en la carpeta de la aplicación y no se escribe ninguna información en el registro."
|
||||
!insertmacro LANG_STRING Link_Uninstall "Desinstalar"
|
29
build_scripts/Windows-msys2/installer/lang/fr.nsh
Normal file
29
build_scripts/Windows-msys2/installer/lang/fr.nsh
Normal file
@ -0,0 +1,29 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Installe ${APPNAME} et les composants requis."
|
||||
!insertmacro LANG_STRING Section_Data "Habillages"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Installe des habillages."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Icônes de raccourci"
|
||||
!insertmacro LANG_STRING Section_Shortcuts_Desc "Ajoute les icônes de raccourci."
|
||||
!insertmacro LANG_STRING Section_StartMenu "Icône de menu démarrage"
|
||||
!insertmacro LANG_STRING Section_StartMenu_Desc "Ajoute l'icône au menu démarrer."
|
||||
!insertmacro LANG_STRING Section_Desktop "Icônes de bureau"
|
||||
!insertmacro LANG_STRING Section_Desktop_Desc "Ajoute l'icône sur le bureau."
|
||||
!insertmacro LANG_STRING Section_QuickLaunch "Icône de lancement rapide"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch_Desc "Ajoute une icône à la barre d'outils de lancement rapide."
|
||||
!insertmacro LANG_STRING Section_Plugins "Plug-ins optionnels"
|
||||
!insertmacro LANG_STRING Section_Plugins_Desc "Plug-ins optionnels destinés à étendre les fonctionnalités."
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader "FeedReader"
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader_Desc "Installe le plug-in FeedReader."
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud "LinksCloud"
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud_Desc "Installe le plug-in LinksCloud."
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP "VOIP"
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP_Desc "Installe le plug-in VOIP."
|
||||
!insertmacro LANG_STRING Section_AutoStart "Démarrage automatique"
|
||||
!insertmacro LANG_STRING Section_AutoStart_Desc "Démarrage automatique au démarrage."
|
||||
!insertmacro LANG_STRING Page_InstallMode "Mode d'installation"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Desc "Choisissez comment vous voulez installer ${APPNAME}."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard "&Installation standard"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard_Desc "Installer ${APPNAME} pour l'utilisateur actuel de cette machine."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable "&Installation portable"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable_Desc "En mode portable toutes les données de configuration sont stockées dans le dossier de l'application et aucune information n'est écrite dans la base de registre."
|
||||
!insertmacro LANG_STRING Link_Uninstall "Désinstaller"
|
29
build_scripts/Windows-msys2/installer/lang/pl.nsh
Normal file
29
build_scripts/Windows-msys2/installer/lang/pl.nsh
Normal file
@ -0,0 +1,29 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Instaluje ${APPNAME} oraz wymagane komponenty."
|
||||
!insertmacro LANG_STRING Section_Data "Skórki"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Instaluje skórki."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Ikony skrótów"
|
||||
!insertmacro LANG_STRING Section_Shortcuts_Desc "Dodaje skróty ikon."
|
||||
!insertmacro LANG_STRING Section_StartMenu "Start Menu icon"
|
||||
!insertmacro LANG_STRING Section_StartMenu_Desc "Dodaje ikonę do menu start."
|
||||
!insertmacro LANG_STRING Section_Desktop "Ikona na pulpicie"
|
||||
!insertmacro LANG_STRING Section_Desktop_Desc "Dodawanie ikony na pulpicie"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch "Ikona szybkiego uruchamiania"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch_Desc "Dodaje ikonę do paska Szybkiego Uruchamiania."
|
||||
!insertmacro LANG_STRING Section_Plugins "Wtyczki opcjonalne"
|
||||
!insertmacro LANG_STRING Section_Plugins_Desc "Wtyczki opcjonalne rozszerzające funkcjonalność."
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader "FeedReader"
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader_Desc "Instaluje wtyczki FeedReader"
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud "LinksCloud"
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud_Desc "Instaluje wtyczki LinksCloud."
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP "VOIP"
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP_Desc "Instaluje wtyczki VOIP."
|
||||
!insertmacro LANG_STRING Section_AutoStart "Auto Startup"
|
||||
!insertmacro LANG_STRING Section_AutoStart_Desc "Automatyczne uruchamianie przy starcie."
|
||||
!insertmacro LANG_STRING Page_InstallMode "Tryb instalacji"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Desc "Wybierz jak chcesz zainstalować ${APPNAME}."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard "&Standardowa instalacja"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard_Desc "Zainstaluj ${APPNAME} dla bieżącego użytkownika tej maszyny."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable "&Portable installation"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable_Desc "W trybie przenośnym wszystkie dane konfiguracyjne są przechowywane w folderze aplikacji i nie są zapisywane w rejestrze."
|
||||
!insertmacro LANG_STRING Link_Uninstall "Odinstaluj"
|
29
build_scripts/Windows-msys2/installer/lang/ru.nsh
Normal file
29
build_scripts/Windows-msys2/installer/lang/ru.nsh
Normal file
@ -0,0 +1,29 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Установка ${APPNAME} и необходимых компонентов."
|
||||
!insertmacro LANG_STRING Section_Data "Оболочки"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Установка оболочек."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Ярлыки"
|
||||
!insertmacro LANG_STRING Section_Shortcuts_Desc "Добавление ярлыков."
|
||||
!insertmacro LANG_STRING Section_StartMenu "Ярлык в меню Пуск"
|
||||
!insertmacro LANG_STRING Section_StartMenu_Desc "Добавление ярлыка в меню Пуск."
|
||||
!insertmacro LANG_STRING Section_Desktop "Ярлык на рабочем столе"
|
||||
!insertmacro LANG_STRING Section_Desktop_Desc "Добавление ярлыка на рабочий стол."
|
||||
!insertmacro LANG_STRING Section_QuickLaunch "Ярлык в панели быстрого запуска"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch_Desc "Добавление ярлыка на панель быстрого запуска."
|
||||
!insertmacro LANG_STRING Section_Plugins "Дополнительные плагины"
|
||||
!insertmacro LANG_STRING Section_Plugins_Desc "Дополнительные плагины для расширения функциональности."
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader "FeedReader – RSS-агрегатор"
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader_Desc "Установка плагина FeedReader."
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud "LinksCloud – Облако ссылок"
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud_Desc "Установка плагина LinksCloud."
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP "VoIP"
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP_Desc "Установка плагина VoIP."
|
||||
!insertmacro LANG_STRING Section_AutoStart "Автозапуск"
|
||||
!insertmacro LANG_STRING Section_AutoStart_Desc "Автозапуск при загрузке системы."
|
||||
!insertmacro LANG_STRING Page_InstallMode "Режим установки"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Desc "Выберите метод установки ${APPNAME}."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard "Стандартная установка"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard_Desc "Установка ${APPNAME} для текущего пользователя компьютера."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable "Портативная установка"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable_Desc "В режиме портативной установки все конфигурационные файлы сохраняются в папку приложения и в системный реестр не записывается никакой информации."
|
||||
!insertmacro LANG_STRING Link_Uninstall "Удаление программы"
|
29
build_scripts/Windows-msys2/installer/lang/tr.nsh
Normal file
29
build_scripts/Windows-msys2/installer/lang/tr.nsh
Normal file
@ -0,0 +1,29 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "${APPNAME} ve gerekli bileşenleri kurar."
|
||||
!insertmacro LANG_STRING Section_Data "Temalar"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Tema yükleyin."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Kısayol simgeleri"
|
||||
!insertmacro LANG_STRING Section_Shortcuts_Desc "Kısayol simgesi ekleyin."
|
||||
!insertmacro LANG_STRING Section_StartMenu "Başlat Menüsü simgesi"
|
||||
!insertmacro LANG_STRING Section_StartMenu_Desc "Başlat menüsüne simge ekleyin."
|
||||
!insertmacro LANG_STRING Section_Desktop "Masaüstü simgesi"
|
||||
!insertmacro LANG_STRING Section_Desktop_Desc "Masaüstüne simge ekleyin."
|
||||
!insertmacro LANG_STRING Section_QuickLaunch "Hızlı Başlat simgesi"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch_Desc "Hızlı Başlat araç çubuğuna simge ekleyin."
|
||||
!insertmacro LANG_STRING Section_Plugins "İsteğe bağlı eklentiler"
|
||||
!insertmacro LANG_STRING Section_Plugins_Desc "İşlevselliği artırmak için isteğe bağlı eklentiler."
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader "AkışOkuyucu"
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader_Desc "AkışOkuyucu eklentisini yükleyin."
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud "BağlantıBulutu"
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud_Desc "BağlantıBulutu eklentisini yükleyin."
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP "VOIP"
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP_Desc "VOIP eklentisini yükleyin."
|
||||
!insertmacro LANG_STRING Section_AutoStart "Otomatik Başlat"
|
||||
!insertmacro LANG_STRING Section_AutoStart_Desc "Açılışta otomatik başlatın."
|
||||
!insertmacro LANG_STRING Page_InstallMode "Kurulum Yöntemi"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Desc "${APPNAME} kurulum şeklini seçin"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard "&Normal kurulum"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard_Desc "${APPNAME} yalnızca şimdiki kullanıcı için kurulsun."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable "&Taşınabilir kurulum"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable_Desc "Taşınabilir kipte tüm ayarlar uygulama klasörüne depolanır ve kayıt defterine hiçbir bilgi yazılmaz."
|
||||
!insertmacro LANG_STRING Link_Uninstall "Kaldırın"
|
205
build_scripts/Windows-msys2/installer/lang/ts/ca_ES.ts
Normal file
205
build_scripts/Windows-msys2/installer/lang/ts/ca_ES.ts
Normal file
@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="ca_ES" version="2.0">
|
||||
<context>
|
||||
<name>Section_Main</name>
|
||||
<message>
|
||||
<source>${APPNAME}</source>
|
||||
<translation>${APPNAME}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Main_Desc</name>
|
||||
<message>
|
||||
<source>Installs ${APPNAME} and required components.</source>
|
||||
<translation>Instal·la ${APPNAME} i els components necessaris.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data</name>
|
||||
<message>
|
||||
<source>Skins</source>
|
||||
<translation>Pells</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data_Desc</name>
|
||||
<message>
|
||||
<source>Installs skins.</source>
|
||||
<translation>Instal·la pells.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts</name>
|
||||
<message>
|
||||
<source>Shortcut icons</source>
|
||||
<translation>Icones d'accés directe</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts_Desc</name>
|
||||
<message>
|
||||
<source>Adds shortcut icons.</source>
|
||||
<translation>Afegir icones d'accés directe.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu</name>
|
||||
<message>
|
||||
<source>Start Menu icon</source>
|
||||
<translation>Icona del menú d'inici</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to start menu.</source>
|
||||
<translation>Afegir icona en el menú d'inici</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop</name>
|
||||
<message>
|
||||
<source>Desktop icon</source>
|
||||
<translation>Icona d'escriptori</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to desktop.</source>
|
||||
<translation>Afegir icona a l'escriptori</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch</name>
|
||||
<message>
|
||||
<source>Quick Launch icon</source>
|
||||
<translation>Icona de la barra ràpida d'accés</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to Quick Launch toolbar.</source>
|
||||
<translation>Afegir icona a la barra ràpida d'accés</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins</name>
|
||||
<message>
|
||||
<source>Optional plugins</source>
|
||||
<translation>Complements opcionals</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins_Desc</name>
|
||||
<message>
|
||||
<source>Optional plugins to extend functionality.</source>
|
||||
<translation>Components opcionals per afegir funcionalitat.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader</name>
|
||||
<message>
|
||||
<source>FeedReader</source>
|
||||
<translation>LectorFonts</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin FeedReader.</source>
|
||||
<translation>Instal·lar complement LectorFonts.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud</name>
|
||||
<message>
|
||||
<source>LinksCloud</source>
|
||||
<translation>NúvolEnllaços</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin LinksCloud.</source>
|
||||
<translation>Instal·lar complement NúvolEnllaços.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP</name>
|
||||
<message>
|
||||
<source>VOIP</source>
|
||||
<translation>VeuIP</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin VOIP.</source>
|
||||
<translation>Instal·lar complement VeuIP.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart</name>
|
||||
<message>
|
||||
<source>Auto Startup</source>
|
||||
<translation>Posada en marxa automàtica</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart_Desc</name>
|
||||
<message>
|
||||
<source>Auto-Run at startup.</source>
|
||||
<translation>Autoengegar al arrencar.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode</name>
|
||||
<message>
|
||||
<source>Installation Mode</source>
|
||||
<translation>Mode instal·lació</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Desc</name>
|
||||
<message>
|
||||
<source>Choose how you want to install ${APPNAME}.</source>
|
||||
<translation>Escull com vols instal·lar ${APPNAME}.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard</name>
|
||||
<message>
|
||||
<source>&Standard installation</source>
|
||||
<translation>Instal·lació e&stàndard</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard_Desc</name>
|
||||
<message>
|
||||
<source>Install ${APPNAME} for the current user of this machine.</source>
|
||||
<translation>Instal·la ${APPNAME} per la sessió d'usuari actual.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable</name>
|
||||
<message>
|
||||
<source>&Portable installation</source>
|
||||
<translation>Instal·lació &portable.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable_Desc</name>
|
||||
<message>
|
||||
<source>In portable mode all configuration data is stored in the application folder and no information is written to the registry.</source>
|
||||
<translation>En mode portable les dades de configuració s'emmagatzemen a la carpeta d'aplicació i no s'escriu informació al registre del sistema.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Link_Uninstall</name>
|
||||
<message>
|
||||
<source>Uninstall</source>
|
||||
<translation>Desinstal·lar.</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -0,0 +1,27 @@
|
||||
@echo off
|
||||
|
||||
:: Very simple conversion from *.ts to *.nsh using xslt
|
||||
|
||||
pushd "%~dp0"
|
||||
|
||||
if "%1"=="" (
|
||||
for %%F in (*.ts) do if "%%F" NEQ "en.ts" call :convert %%~nF
|
||||
goto :exit
|
||||
)
|
||||
|
||||
call :convert %1
|
||||
|
||||
:exit
|
||||
popd
|
||||
|
||||
goto :EOF
|
||||
|
||||
:convert
|
||||
if not exist "%~1.ts" (
|
||||
echo File "%~1.ts" not found.
|
||||
goto :EOF
|
||||
)
|
||||
|
||||
echo %~1
|
||||
|
||||
"%~dp0xsltproc.exe" --output "%~dp0..\%~1.nsh" "%~dp0convert_from_ts.xsl" "%~1.ts"
|
@ -0,0 +1,20 @@
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:output method="text"/>
|
||||
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="context">
|
||||
<xsl:text>!insertmacro LANG_STRING </xsl:text>
|
||||
<xsl:value-of select="./name"/>
|
||||
<xsl:text> "</xsl:text>
|
||||
<xsl:choose>
|
||||
<xsl:when test="./message/translation!=''"><xsl:value-of select="./message/translation"/></xsl:when>
|
||||
<xsl:otherwise><xsl:value-of select="./message/source"/></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>"
|
||||
</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
@ -0,0 +1,50 @@
|
||||
@echo off
|
||||
|
||||
:: Very simple conversion from *.nsh to *.ts
|
||||
|
||||
setlocal
|
||||
|
||||
set Language=en
|
||||
if "%1" NEQ "" set Language=%1
|
||||
|
||||
set InputFile=%~dp0..\%Language%.nsh
|
||||
set OutputFile=%~dp0%Language%.ts
|
||||
|
||||
if not exist "%InputFile%" (
|
||||
echo File %InputFile% not found.
|
||||
goto :exit
|
||||
)
|
||||
|
||||
echo ^<?xml version="1.0" encoding="utf-8"?^> >"%OutputFile%"
|
||||
echo ^<!DOCTYPE TS^> >>"%OutputFile%"
|
||||
echo ^<TS version="2.0" language="en_US"^> >>"%OutputFile%"
|
||||
|
||||
for /F "tokens=1,2,3,*" %%A in (%InputFile%) do if "%%A"=="!insertmacro" call :context %%C %%D
|
||||
|
||||
echo ^</TS^> >>"%OutputFile%"
|
||||
|
||||
:exit
|
||||
endlocal
|
||||
goto :EOF
|
||||
|
||||
:context
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
:: Simple replace of & to &
|
||||
set Text=%2
|
||||
set Text=%Text:&=^&%
|
||||
set Text=%Text:~1,-1%
|
||||
|
||||
echo !Text!
|
||||
|
||||
echo ^<context^> >>"%OutputFile%"
|
||||
echo ^<name^>%~1^</name^> >>"%OutputFile%"
|
||||
echo ^<message^> >>"%OutputFile%"
|
||||
echo ^<source^>!Text!^</source^> >>"%OutputFile%"
|
||||
echo ^<translation type="unfinished"^>^</translation^> >>"%OutputFile%"
|
||||
echo ^</message^> >>"%OutputFile%"
|
||||
echo ^</context^> >>"%OutputFile%"
|
||||
|
||||
endlocal
|
||||
goto :EOF
|
205
build_scripts/Windows-msys2/installer/lang/ts/de.ts
Normal file
205
build_scripts/Windows-msys2/installer/lang/ts/de.ts
Normal file
@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="de" version="2.0">
|
||||
<context>
|
||||
<name>Section_Main</name>
|
||||
<message>
|
||||
<source>${APPNAME}</source>
|
||||
<translation>${APPNAME}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Main_Desc</name>
|
||||
<message>
|
||||
<source>Installs ${APPNAME} and required components.</source>
|
||||
<translation>Installiert ${APPNAME} und die benötigten Komponenten.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data</name>
|
||||
<message>
|
||||
<source>Skins</source>
|
||||
<translation>Skins</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data_Desc</name>
|
||||
<message>
|
||||
<source>Installs skins.</source>
|
||||
<translation>Skins installieren.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts</name>
|
||||
<message>
|
||||
<source>Shortcut icons</source>
|
||||
<translation>Verknüpfungssymbole</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts_Desc</name>
|
||||
<message>
|
||||
<source>Adds shortcut icons.</source>
|
||||
<translation>Verküpfungssymbole hinzufügen.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu</name>
|
||||
<message>
|
||||
<source>Start Menu icon</source>
|
||||
<translation>Startmenüsymbol</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to start menu.</source>
|
||||
<translation>Fügt Symbol zum Startmenü hinzu.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop</name>
|
||||
<message>
|
||||
<source>Desktop icon</source>
|
||||
<translation>Desktopsymbol</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to desktop.</source>
|
||||
<translation>Fügt Symbol zum Desktop hinzu.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch</name>
|
||||
<message>
|
||||
<source>Quick Launch icon</source>
|
||||
<translation>Schnellstartsymbol</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to Quick Launch toolbar.</source>
|
||||
<translation>Fügt Symbol zur Schnellstartleiste hinzu.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins</name>
|
||||
<message>
|
||||
<source>Optional plugins</source>
|
||||
<translation>Optionale Plug-ins</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins_Desc</name>
|
||||
<message>
|
||||
<source>Optional plugins to extend functionality.</source>
|
||||
<translation>Optionale Plug-ins zum Erweitern der Funktionalität.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader</name>
|
||||
<message>
|
||||
<source>FeedReader</source>
|
||||
<translation>FeedReader</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin FeedReader.</source>
|
||||
<translation>Installiert das Plug-in Feedreader.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud</name>
|
||||
<message>
|
||||
<source>LinksCloud</source>
|
||||
<translation>Verknüpfungswolke</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin LinksCloud.</source>
|
||||
<translation>Installiert das Plug-in Verknüpfungswolke.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP</name>
|
||||
<message>
|
||||
<source>VOIP</source>
|
||||
<translation>VOIP</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin VOIP.</source>
|
||||
<translation>Installiert das Plug-in VOIP</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart</name>
|
||||
<message>
|
||||
<source>Auto Startup</source>
|
||||
<translation>Automatischer Programmstart</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart_Desc</name>
|
||||
<message>
|
||||
<source>Auto-Run at startup.</source>
|
||||
<translation>Beim Start automatisch ausführen.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode</name>
|
||||
<message>
|
||||
<source>Installation Mode</source>
|
||||
<translation>Installationsmodus</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Desc</name>
|
||||
<message>
|
||||
<source>Choose how you want to install ${APPNAME}.</source>
|
||||
<translation>Wähle wie du ${APPNAME} installieren willst.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard</name>
|
||||
<message>
|
||||
<source>&Standard installation</source>
|
||||
<translation>&Standardinstallation</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard_Desc</name>
|
||||
<message>
|
||||
<source>Install ${APPNAME} for the current user of this machine.</source>
|
||||
<translation>Installiere ${APPNAME} für den derzeitigen Benutzer dieses Geräts.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable</name>
|
||||
<message>
|
||||
<source>&Portable installation</source>
|
||||
<translation>&Portable Installation</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable_Desc</name>
|
||||
<message>
|
||||
<source>In portable mode all configuration data is stored in the application folder and no information is written to the registry.</source>
|
||||
<translation>Im portablen Modus werden alle Konfigurationsdaten im Verzeichnis der Anwendung gespeichert und keine Informationen in der Registry abgelegt.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Link_Uninstall</name>
|
||||
<message>
|
||||
<source>Uninstall</source>
|
||||
<translation>Deinstallieren</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
186
build_scripts/Windows-msys2/installer/lang/ts/en.ts
Normal file
186
build_scripts/Windows-msys2/installer/lang/ts/en.ts
Normal file
@ -0,0 +1,186 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="en_US">
|
||||
<context>
|
||||
<name>Section_Main_Desc</name>
|
||||
<message>
|
||||
<source>Installs ${APPNAME} and required components.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data</name>
|
||||
<message>
|
||||
<source>Skins</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data_Desc</name>
|
||||
<message>
|
||||
<source>Installs skins.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts</name>
|
||||
<message>
|
||||
<source>Shortcut icons</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts_Desc</name>
|
||||
<message>
|
||||
<source>Adds shortcut icons.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu</name>
|
||||
<message>
|
||||
<source>Start Menu icon</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to start menu.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop</name>
|
||||
<message>
|
||||
<source>Desktop icon</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to desktop.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch</name>
|
||||
<message>
|
||||
<source>Quick Launch icon</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to Quick Launch toolbar.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins</name>
|
||||
<message>
|
||||
<source>Optional plugins</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins_Desc</name>
|
||||
<message>
|
||||
<source>Optional plugins to extend functionality.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader</name>
|
||||
<message>
|
||||
<source>FeedReader</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin FeedReader.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP</name>
|
||||
<message>
|
||||
<source>VOIP</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin VOIP.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart</name>
|
||||
<message>
|
||||
<source>Auto Startup</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart_Desc</name>
|
||||
<message>
|
||||
<source>Auto-Run at startup.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode</name>
|
||||
<message>
|
||||
<source>Installation Mode</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Desc</name>
|
||||
<message>
|
||||
<source>Choose how you want to install ${APPNAME}.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard</name>
|
||||
<message>
|
||||
<source>&Standard installation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard_Desc</name>
|
||||
<message>
|
||||
<source>Install ${APPNAME} for the current user of this machine.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable</name>
|
||||
<message>
|
||||
<source>&Portable installation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable_Desc</name>
|
||||
<message>
|
||||
<source>In portable mode all configuration data is stored in the application folder and no information is written to the registry.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Link_Uninstall</name>
|
||||
<message>
|
||||
<source>Uninstall</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
205
build_scripts/Windows-msys2/installer/lang/ts/es.ts
Normal file
205
build_scripts/Windows-msys2/installer/lang/ts/es.ts
Normal file
@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="es" version="2.0">
|
||||
<context>
|
||||
<name>Section_Main</name>
|
||||
<message>
|
||||
<source>${APPNAME}</source>
|
||||
<translation>${APPNAME}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Main_Desc</name>
|
||||
<message>
|
||||
<source>Installs ${APPNAME} and required components.</source>
|
||||
<translation>Instala ${APPNAME} y los componentes requeridos.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data</name>
|
||||
<message>
|
||||
<source>Skins</source>
|
||||
<translation>Coberturas (skins)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data_Desc</name>
|
||||
<message>
|
||||
<source>Installs skins.</source>
|
||||
<translation>Instalar coberturas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts</name>
|
||||
<message>
|
||||
<source>Shortcut icons</source>
|
||||
<translation>Iconos de accesos directos</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts_Desc</name>
|
||||
<message>
|
||||
<source>Adds shortcut icons.</source>
|
||||
<translation>Añade iconos de accesos directos.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu</name>
|
||||
<message>
|
||||
<source>Start Menu icon</source>
|
||||
<translation>Icono de menú de inicio</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to start menu.</source>
|
||||
<translation>Añade icono al menú de inicio.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop</name>
|
||||
<message>
|
||||
<source>Desktop icon</source>
|
||||
<translation>Icono del escritorio</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to desktop.</source>
|
||||
<translation>Añade icono al escritorio</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch</name>
|
||||
<message>
|
||||
<source>Quick Launch icon</source>
|
||||
<translation>Icono de inicio rápido</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to Quick Launch toolbar.</source>
|
||||
<translation>Añade icono a la Barra de Inicio Rápido</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins</name>
|
||||
<message>
|
||||
<source>Optional plugins</source>
|
||||
<translation>Complementos opcionales</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins_Desc</name>
|
||||
<message>
|
||||
<source>Optional plugins to extend functionality.</source>
|
||||
<translation>Complementos opcionales para expandir la funcionalidad.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader</name>
|
||||
<message>
|
||||
<source>FeedReader</source>
|
||||
<translation>FeedReader</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin FeedReader.</source>
|
||||
<translation>Instala el complemento FeedReader.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud</name>
|
||||
<message>
|
||||
<source>LinksCloud</source>
|
||||
<translation>LinksCloud</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin LinksCloud.</source>
|
||||
<translation>Instala el complemento LinksCloud.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP</name>
|
||||
<message>
|
||||
<source>VOIP</source>
|
||||
<translation>VOIP</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin VOIP.</source>
|
||||
<translation>Instala el complemento VOIP</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart</name>
|
||||
<message>
|
||||
<source>Auto Startup</source>
|
||||
<translation>Auto iniciar</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart_Desc</name>
|
||||
<message>
|
||||
<source>Auto-Run at startup.</source>
|
||||
<translation>Auto-ejecutar al incio.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode</name>
|
||||
<message>
|
||||
<source>Installation Mode</source>
|
||||
<translation>Modo de instalación</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Desc</name>
|
||||
<message>
|
||||
<source>Choose how you want to install ${APPNAME}.</source>
|
||||
<translation>Elija cómo quiere instalar ${APPNAME}.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard</name>
|
||||
<message>
|
||||
<source>&Standard installation</source>
|
||||
<translation>Instalación &Estándar</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard_Desc</name>
|
||||
<message>
|
||||
<source>Install ${APPNAME} for the current user of this machine.</source>
|
||||
<translation>Instalar ${APPNAME} para el usuario actual de esta máquina.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable</name>
|
||||
<message>
|
||||
<source>&Portable installation</source>
|
||||
<translation>Instalación &Portable</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable_Desc</name>
|
||||
<message>
|
||||
<source>In portable mode all configuration data is stored in the application folder and no information is written to the registry.</source>
|
||||
<translation>En modo portable, todos los datos de configuración se almacenan en la carpeta de la aplicación y no se escribe ninguna información en el registro.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Link_Uninstall</name>
|
||||
<message>
|
||||
<source>Uninstall</source>
|
||||
<translation>Desinstalar</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
205
build_scripts/Windows-msys2/installer/lang/ts/fr.ts
Normal file
205
build_scripts/Windows-msys2/installer/lang/ts/fr.ts
Normal file
@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="fr" version="2.0">
|
||||
<context>
|
||||
<name>Section_Main</name>
|
||||
<message>
|
||||
<source>${APPNAME}</source>
|
||||
<translation>${APPNAME}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Main_Desc</name>
|
||||
<message>
|
||||
<source>Installs ${APPNAME} and required components.</source>
|
||||
<translation>Installe ${APPNAME} et les composants requis.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data</name>
|
||||
<message>
|
||||
<source>Skins</source>
|
||||
<translation>Habillages</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data_Desc</name>
|
||||
<message>
|
||||
<source>Installs skins.</source>
|
||||
<translation>Installe des habillages.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts</name>
|
||||
<message>
|
||||
<source>Shortcut icons</source>
|
||||
<translation>Icônes de raccourci</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts_Desc</name>
|
||||
<message>
|
||||
<source>Adds shortcut icons.</source>
|
||||
<translation>Ajoute les icônes de raccourci.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu</name>
|
||||
<message>
|
||||
<source>Start Menu icon</source>
|
||||
<translation>Icône de menu démarrage</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to start menu.</source>
|
||||
<translation>Ajoute l'icône au menu démarrer.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop</name>
|
||||
<message>
|
||||
<source>Desktop icon</source>
|
||||
<translation>Icônes de bureau</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to desktop.</source>
|
||||
<translation>Ajoute l'icône sur le bureau.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch</name>
|
||||
<message>
|
||||
<source>Quick Launch icon</source>
|
||||
<translation>Icône de lancement rapide</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to Quick Launch toolbar.</source>
|
||||
<translation>Ajoute une icône à la barre d'outils de lancement rapide.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins</name>
|
||||
<message>
|
||||
<source>Optional plugins</source>
|
||||
<translation>Plug-ins optionnels</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins_Desc</name>
|
||||
<message>
|
||||
<source>Optional plugins to extend functionality.</source>
|
||||
<translation>Plug-ins optionnels destinés à étendre les fonctionnalités.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader</name>
|
||||
<message>
|
||||
<source>FeedReader</source>
|
||||
<translation>FeedReader</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin FeedReader.</source>
|
||||
<translation>Installe le plug-in FeedReader.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud</name>
|
||||
<message>
|
||||
<source>LinksCloud</source>
|
||||
<translation>LinksCloud</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin LinksCloud.</source>
|
||||
<translation>Installe le plug-in LinksCloud.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP</name>
|
||||
<message>
|
||||
<source>VOIP</source>
|
||||
<translation>VOIP</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin VOIP.</source>
|
||||
<translation>Installe le plug-in VOIP.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart</name>
|
||||
<message>
|
||||
<source>Auto Startup</source>
|
||||
<translation>Démarrage automatique</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart_Desc</name>
|
||||
<message>
|
||||
<source>Auto-Run at startup.</source>
|
||||
<translation>Démarrage automatique au démarrage.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode</name>
|
||||
<message>
|
||||
<source>Installation Mode</source>
|
||||
<translation>Mode d'installation</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Desc</name>
|
||||
<message>
|
||||
<source>Choose how you want to install ${APPNAME}.</source>
|
||||
<translation>Choisissez comment vous voulez installer ${APPNAME}.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard</name>
|
||||
<message>
|
||||
<source>&Standard installation</source>
|
||||
<translation>&Installation standard</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard_Desc</name>
|
||||
<message>
|
||||
<source>Install ${APPNAME} for the current user of this machine.</source>
|
||||
<translation>Installer ${APPNAME} pour l'utilisateur actuel de cette machine.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable</name>
|
||||
<message>
|
||||
<source>&Portable installation</source>
|
||||
<translation>&Installation portable</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable_Desc</name>
|
||||
<message>
|
||||
<source>In portable mode all configuration data is stored in the application folder and no information is written to the registry.</source>
|
||||
<translation>En mode portable toutes les données de configuration sont stockées dans le dossier de l'application et aucune information n'est écrite dans la base de registre.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Link_Uninstall</name>
|
||||
<message>
|
||||
<source>Uninstall</source>
|
||||
<translation>Désinstaller</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
205
build_scripts/Windows-msys2/installer/lang/ts/pl.ts
Normal file
205
build_scripts/Windows-msys2/installer/lang/ts/pl.ts
Normal file
@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="pl" version="2.0">
|
||||
<context>
|
||||
<name>Section_Main</name>
|
||||
<message>
|
||||
<source>${APPNAME}</source>
|
||||
<translation>${APPNAME}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Main_Desc</name>
|
||||
<message>
|
||||
<source>Installs ${APPNAME} and required components.</source>
|
||||
<translation>Instaluje ${APPNAME} oraz wymagane komponenty.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data</name>
|
||||
<message>
|
||||
<source>Skins</source>
|
||||
<translation>Skórki</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data_Desc</name>
|
||||
<message>
|
||||
<source>Installs skins.</source>
|
||||
<translation>Instaluje skórki.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts</name>
|
||||
<message>
|
||||
<source>Shortcut icons</source>
|
||||
<translation>Ikony skrótów</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts_Desc</name>
|
||||
<message>
|
||||
<source>Adds shortcut icons.</source>
|
||||
<translation>Dodaje skróty ikon.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu</name>
|
||||
<message>
|
||||
<source>Start Menu icon</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to start menu.</source>
|
||||
<translation>Dodaje ikonę do menu start.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop</name>
|
||||
<message>
|
||||
<source>Desktop icon</source>
|
||||
<translation>Ikona na pulpicie</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to desktop.</source>
|
||||
<translation>Dodawanie ikony na pulpicie</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch</name>
|
||||
<message>
|
||||
<source>Quick Launch icon</source>
|
||||
<translation>Ikona szybkiego uruchamiania</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to Quick Launch toolbar.</source>
|
||||
<translation>Dodaje ikonę do paska Szybkiego Uruchamiania.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins</name>
|
||||
<message>
|
||||
<source>Optional plugins</source>
|
||||
<translation>Wtyczki opcjonalne</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins_Desc</name>
|
||||
<message>
|
||||
<source>Optional plugins to extend functionality.</source>
|
||||
<translation>Wtyczki opcjonalne rozszerzające funkcjonalność.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader</name>
|
||||
<message>
|
||||
<source>FeedReader</source>
|
||||
<translation>FeedReader</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin FeedReader.</source>
|
||||
<translation>Instaluje wtyczki FeedReader</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud</name>
|
||||
<message>
|
||||
<source>LinksCloud</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin LinksCloud.</source>
|
||||
<translation>Instaluje wtyczki LinksCloud.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP</name>
|
||||
<message>
|
||||
<source>VOIP</source>
|
||||
<translation>VOIP</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin VOIP.</source>
|
||||
<translation>Instaluje wtyczki VOIP.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart</name>
|
||||
<message>
|
||||
<source>Auto Startup</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart_Desc</name>
|
||||
<message>
|
||||
<source>Auto-Run at startup.</source>
|
||||
<translation>Automatyczne uruchamianie przy starcie.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode</name>
|
||||
<message>
|
||||
<source>Installation Mode</source>
|
||||
<translation>Tryb instalacji</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Desc</name>
|
||||
<message>
|
||||
<source>Choose how you want to install ${APPNAME}.</source>
|
||||
<translation>Wybierz jak chcesz zainstalować ${APPNAME}.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard</name>
|
||||
<message>
|
||||
<source>&Standard installation</source>
|
||||
<translation>&Standardowa instalacja</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard_Desc</name>
|
||||
<message>
|
||||
<source>Install ${APPNAME} for the current user of this machine.</source>
|
||||
<translation>Zainstaluj ${APPNAME} dla bieżącego użytkownika tej maszyny.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable</name>
|
||||
<message>
|
||||
<source>&Portable installation</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable_Desc</name>
|
||||
<message>
|
||||
<source>In portable mode all configuration data is stored in the application folder and no information is written to the registry.</source>
|
||||
<translation>W trybie przenośnym wszystkie dane konfiguracyjne są przechowywane w folderze aplikacji i nie są zapisywane w rejestrze.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Link_Uninstall</name>
|
||||
<message>
|
||||
<source>Uninstall</source>
|
||||
<translation>Odinstaluj</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
205
build_scripts/Windows-msys2/installer/lang/ts/ru.ts
Normal file
205
build_scripts/Windows-msys2/installer/lang/ts/ru.ts
Normal file
@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="ru" version="2.0">
|
||||
<context>
|
||||
<name>Section_Main</name>
|
||||
<message>
|
||||
<source>${APPNAME}</source>
|
||||
<translation>${APPNAME}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Main_Desc</name>
|
||||
<message>
|
||||
<source>Installs ${APPNAME} and required components.</source>
|
||||
<translation>Установка ${APPNAME} и необходимых компонентов.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data</name>
|
||||
<message>
|
||||
<source>Skins</source>
|
||||
<translation>Оболочки</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data_Desc</name>
|
||||
<message>
|
||||
<source>Installs skins.</source>
|
||||
<translation>Установка оболочек.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts</name>
|
||||
<message>
|
||||
<source>Shortcut icons</source>
|
||||
<translation>Ярлыки</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts_Desc</name>
|
||||
<message>
|
||||
<source>Adds shortcut icons.</source>
|
||||
<translation>Добавление ярлыков.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu</name>
|
||||
<message>
|
||||
<source>Start Menu icon</source>
|
||||
<translation>Ярлык в меню Пуск</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to start menu.</source>
|
||||
<translation>Добавление ярлыка в меню Пуск.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop</name>
|
||||
<message>
|
||||
<source>Desktop icon</source>
|
||||
<translation>Ярлык на рабочем столе</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to desktop.</source>
|
||||
<translation>Добавление ярлыка на рабочий стол.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch</name>
|
||||
<message>
|
||||
<source>Quick Launch icon</source>
|
||||
<translation>Ярлык в панели быстрого запуска</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to Quick Launch toolbar.</source>
|
||||
<translation>Добавление ярлыка на панель быстрого запуска.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins</name>
|
||||
<message>
|
||||
<source>Optional plugins</source>
|
||||
<translation>Дополнительные плагины</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins_Desc</name>
|
||||
<message>
|
||||
<source>Optional plugins to extend functionality.</source>
|
||||
<translation>Дополнительные плагины для расширения функциональности.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader</name>
|
||||
<message>
|
||||
<source>FeedReader</source>
|
||||
<translation>FeedReader – RSS-агрегатор</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin FeedReader.</source>
|
||||
<translation>Установка плагина FeedReader.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud</name>
|
||||
<message>
|
||||
<source>LinksCloud</source>
|
||||
<translation>LinksCloud – Облако ссылок</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin LinksCloud.</source>
|
||||
<translation>Установка плагина LinksCloud.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP</name>
|
||||
<message>
|
||||
<source>VOIP</source>
|
||||
<translation>VoIP</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin VOIP.</source>
|
||||
<translation>Установка плагина VoIP.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart</name>
|
||||
<message>
|
||||
<source>Auto Startup</source>
|
||||
<translation>Автозапуск</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart_Desc</name>
|
||||
<message>
|
||||
<source>Auto-Run at startup.</source>
|
||||
<translation>Автозапуск при загрузке системы.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode</name>
|
||||
<message>
|
||||
<source>Installation Mode</source>
|
||||
<translation>Режим установки</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Desc</name>
|
||||
<message>
|
||||
<source>Choose how you want to install ${APPNAME}.</source>
|
||||
<translation>Выберите метод установки ${APPNAME}.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard</name>
|
||||
<message>
|
||||
<source>&Standard installation</source>
|
||||
<translation>Стандартная установка</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard_Desc</name>
|
||||
<message>
|
||||
<source>Install ${APPNAME} for the current user of this machine.</source>
|
||||
<translation>Установка ${APPNAME} для текущего пользователя компьютера.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable</name>
|
||||
<message>
|
||||
<source>&Portable installation</source>
|
||||
<translation>Портативная установка</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable_Desc</name>
|
||||
<message>
|
||||
<source>In portable mode all configuration data is stored in the application folder and no information is written to the registry.</source>
|
||||
<translation>В режиме портативной установки все конфигурационные файлы сохраняются в папку приложения и в системный реестр не записывается никакой информации.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Link_Uninstall</name>
|
||||
<message>
|
||||
<source>Uninstall</source>
|
||||
<translation>Удаление программы</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
205
build_scripts/Windows-msys2/installer/lang/ts/tr.ts
Normal file
205
build_scripts/Windows-msys2/installer/lang/ts/tr.ts
Normal file
@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="tr" version="2.0">
|
||||
<context>
|
||||
<name>Section_Main</name>
|
||||
<message>
|
||||
<source>${APPNAME}</source>
|
||||
<translation>${APPNAME}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Main_Desc</name>
|
||||
<message>
|
||||
<source>Installs ${APPNAME} and required components.</source>
|
||||
<translation>${APPNAME} ve gerekli bileşenleri kurar.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data</name>
|
||||
<message>
|
||||
<source>Skins</source>
|
||||
<translation>Temalar</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data_Desc</name>
|
||||
<message>
|
||||
<source>Installs skins.</source>
|
||||
<translation>Tema yükleyin.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts</name>
|
||||
<message>
|
||||
<source>Shortcut icons</source>
|
||||
<translation>Kısayol simgeleri</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts_Desc</name>
|
||||
<message>
|
||||
<source>Adds shortcut icons.</source>
|
||||
<translation>Kısayol simgesi ekleyin.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu</name>
|
||||
<message>
|
||||
<source>Start Menu icon</source>
|
||||
<translation>Başlat Menüsü simgesi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to start menu.</source>
|
||||
<translation>Başlat menüsüne simge ekleyin.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop</name>
|
||||
<message>
|
||||
<source>Desktop icon</source>
|
||||
<translation>Masaüstü simgesi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to desktop.</source>
|
||||
<translation>Masaüstüne simge ekleyin.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch</name>
|
||||
<message>
|
||||
<source>Quick Launch icon</source>
|
||||
<translation>Hızlı Başlat simgesi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to Quick Launch toolbar.</source>
|
||||
<translation>Hızlı Başlat araç çubuğuna simge ekleyin.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins</name>
|
||||
<message>
|
||||
<source>Optional plugins</source>
|
||||
<translation>İsteğe bağlı eklentiler</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins_Desc</name>
|
||||
<message>
|
||||
<source>Optional plugins to extend functionality.</source>
|
||||
<translation>İşlevselliği artırmak için isteğe bağlı eklentiler.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader</name>
|
||||
<message>
|
||||
<source>FeedReader</source>
|
||||
<translation>AkışOkuyucu</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin FeedReader.</source>
|
||||
<translation>AkışOkuyucu eklentisini yükleyin.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud</name>
|
||||
<message>
|
||||
<source>LinksCloud</source>
|
||||
<translation>BağlantıBulutu</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin LinksCloud.</source>
|
||||
<translation>BağlantıBulutu eklentisini yükleyin.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP</name>
|
||||
<message>
|
||||
<source>VOIP</source>
|
||||
<translation>VOIP</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin VOIP.</source>
|
||||
<translation>VOIP eklentisini yükleyin.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart</name>
|
||||
<message>
|
||||
<source>Auto Startup</source>
|
||||
<translation>Otomatik Başlat</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart_Desc</name>
|
||||
<message>
|
||||
<source>Auto-Run at startup.</source>
|
||||
<translation>Açılışta otomatik başlatın.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode</name>
|
||||
<message>
|
||||
<source>Installation Mode</source>
|
||||
<translation>Kurulum Yöntemi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Desc</name>
|
||||
<message>
|
||||
<source>Choose how you want to install ${APPNAME}.</source>
|
||||
<translation>${APPNAME} kurulum şeklini seçin</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard</name>
|
||||
<message>
|
||||
<source>&Standard installation</source>
|
||||
<translation>&Normal kurulum</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard_Desc</name>
|
||||
<message>
|
||||
<source>Install ${APPNAME} for the current user of this machine.</source>
|
||||
<translation>${APPNAME} yalnızca şimdiki kullanıcı için kurulsun.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable</name>
|
||||
<message>
|
||||
<source>&Portable installation</source>
|
||||
<translation>&Taşınabilir kurulum</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable_Desc</name>
|
||||
<message>
|
||||
<source>In portable mode all configuration data is stored in the application folder and no information is written to the registry.</source>
|
||||
<translation>Taşınabilir kipte tüm ayarlar uygulama klasörüne depolanır ve kayıt defterine hiçbir bilgi yazılmaz.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Link_Uninstall</name>
|
||||
<message>
|
||||
<source>Uninstall</source>
|
||||
<translation>Kaldırın</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
BIN
build_scripts/Windows-msys2/installer/lang/ts/xsltproc.exe
Normal file
BIN
build_scripts/Windows-msys2/installer/lang/ts/xsltproc.exe
Normal file
Binary file not shown.
205
build_scripts/Windows-msys2/installer/lang/ts/zh_CN.ts
Normal file
205
build_scripts/Windows-msys2/installer/lang/ts/zh_CN.ts
Normal file
@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" ?><!DOCTYPE TS><TS language="zh_CN" version="2.0">
|
||||
<context>
|
||||
<name>Section_Main</name>
|
||||
<message>
|
||||
<source>${APPNAME}</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Main_Desc</name>
|
||||
<message>
|
||||
<source>Installs ${APPNAME} and required components.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data</name>
|
||||
<message>
|
||||
<source>Skins</source>
|
||||
<translation>皮肤</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data_Desc</name>
|
||||
<message>
|
||||
<source>Installs skins.</source>
|
||||
<translation>安装皮肤</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts</name>
|
||||
<message>
|
||||
<source>Shortcut icons</source>
|
||||
<translation>快捷方式图标</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Shortcuts_Desc</name>
|
||||
<message>
|
||||
<source>Adds shortcut icons.</source>
|
||||
<translation>添加快捷方式图标</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu</name>
|
||||
<message>
|
||||
<source>Start Menu icon</source>
|
||||
<translation>开始菜单图标</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_StartMenu_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to start menu.</source>
|
||||
<translation>添加图标至开始菜单</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop</name>
|
||||
<message>
|
||||
<source>Desktop icon</source>
|
||||
<translation>桌面图标</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Desktop_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to desktop.</source>
|
||||
<translation>添加图标至桌面</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch</name>
|
||||
<message>
|
||||
<source>Quick Launch icon</source>
|
||||
<translation>快速启动栏图标</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_QuickLaunch_Desc</name>
|
||||
<message>
|
||||
<source>Adds icon to Quick Launch toolbar.</source>
|
||||
<translation>添加图标至快速启动栏</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins</name>
|
||||
<message>
|
||||
<source>Optional plugins</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugins_Desc</name>
|
||||
<message>
|
||||
<source>Optional plugins to extend functionality.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader</name>
|
||||
<message>
|
||||
<source>FeedReader</source>
|
||||
<translation>RSS订阅</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_FeedReader_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin FeedReader.</source>
|
||||
<translation>安装RSS订阅插件</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud</name>
|
||||
<message>
|
||||
<source>LinksCloud</source>
|
||||
<translation>LinksCloud</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_LinksCloud_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin LinksCloud.</source>
|
||||
<translation>安装插件LinksCloud</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP</name>
|
||||
<message>
|
||||
<source>VOIP</source>
|
||||
<translation>语音</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Plugin_VOIP_Desc</name>
|
||||
<message>
|
||||
<source>Installs plugin VOIP.</source>
|
||||
<translation>安装语音插件</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart</name>
|
||||
<message>
|
||||
<source>Auto Startup</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_AutoStart_Desc</name>
|
||||
<message>
|
||||
<source>Auto-Run at startup.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode</name>
|
||||
<message>
|
||||
<source>Installation Mode</source>
|
||||
<translation>安装模式</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Desc</name>
|
||||
<message>
|
||||
<source>Choose how you want to install ${APPNAME}.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard</name>
|
||||
<message>
|
||||
<source>&Standard installation</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Standard_Desc</name>
|
||||
<message>
|
||||
<source>Install ${APPNAME} for the current user of this machine.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable</name>
|
||||
<message>
|
||||
<source>&Portable installation</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Page_InstallMode_Portable_Desc</name>
|
||||
<message>
|
||||
<source>In portable mode all configuration data is stored in the application folder and no information is written to the registry.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Link_Uninstall</name>
|
||||
<message>
|
||||
<source>Uninstall</source>
|
||||
<translation>卸载</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
29
build_scripts/Windows-msys2/installer/lang/zh_CN.nsh
Normal file
29
build_scripts/Windows-msys2/installer/lang/zh_CN.nsh
Normal file
@ -0,0 +1,29 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Installs ${APPNAME} and required components."
|
||||
!insertmacro LANG_STRING Section_Data "皮肤"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "安装皮肤"
|
||||
!insertmacro LANG_STRING Section_Shortcuts "快捷方式图标"
|
||||
!insertmacro LANG_STRING Section_Shortcuts_Desc "添加快捷方式图标"
|
||||
!insertmacro LANG_STRING Section_StartMenu "开始菜单图标"
|
||||
!insertmacro LANG_STRING Section_StartMenu_Desc "添加图标至开始菜单"
|
||||
!insertmacro LANG_STRING Section_Desktop "桌面图标"
|
||||
!insertmacro LANG_STRING Section_Desktop_Desc "添加图标至桌面"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch "快速启动栏图标"
|
||||
!insertmacro LANG_STRING Section_QuickLaunch_Desc "添加图标至快速启动栏"
|
||||
!insertmacro LANG_STRING Section_Plugins "Optional plugins"
|
||||
!insertmacro LANG_STRING Section_Plugins_Desc "Optional plugins to extend functionality."
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader "RSS订阅"
|
||||
!insertmacro LANG_STRING Section_Plugin_FeedReader_Desc "安装RSS订阅插件"
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud "LinksCloud"
|
||||
!insertmacro LANG_STRING Section_Plugin_LinksCloud_Desc "安装插件LinksCloud"
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP "语音"
|
||||
!insertmacro LANG_STRING Section_Plugin_VOIP_Desc "安装语音插件"
|
||||
!insertmacro LANG_STRING Section_AutoStart "Auto Startup"
|
||||
!insertmacro LANG_STRING Section_AutoStart_Desc "Auto-Run at startup."
|
||||
!insertmacro LANG_STRING Page_InstallMode "安装模式"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Desc "Choose how you want to install ${APPNAME}."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard "&Standard installation"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Standard_Desc "Install ${APPNAME} for the current user of this machine."
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable "&Portable installation"
|
||||
!insertmacro LANG_STRING Page_InstallMode_Portable_Desc "In portable mode all configuration data is stored in the application folder and no information is written to the registry."
|
||||
!insertmacro LANG_STRING Link_Uninstall "卸载"
|
@ -1,481 +1,445 @@
|
||||
; Script generated with the Venis Install Wizard & modified by defnax
|
||||
; Reworked by Thunder
|
||||
|
||||
!include ifexist.nsh
|
||||
|
||||
# Needed defines
|
||||
;!define REVISION ""
|
||||
;!define RELEASEDIR ""
|
||||
;!define QTDIR ""
|
||||
;!define MINGWDIR ""
|
||||
|
||||
# Optional defines
|
||||
;!define OUTDIR ""
|
||||
|
||||
# Check needed defines
|
||||
!ifndef RELEASEDIR
|
||||
!error "RELEASEDIR is not defined"
|
||||
!endif
|
||||
!ifndef QTDIR
|
||||
!error "QTDIR is not defined"
|
||||
!endif
|
||||
!ifndef MINGWDIR
|
||||
!error "MINGWDIR is not defined"
|
||||
!endif
|
||||
|
||||
# Check optional defines
|
||||
!ifdef OUTDIR
|
||||
!define OUTDIR_ "${OUTDIR}\"
|
||||
!else
|
||||
!define OUTDIR ""
|
||||
!define OUTDIR_ ""
|
||||
!endif
|
||||
|
||||
!ifndef INSTALLERADD
|
||||
!define INSTALLERADD ""
|
||||
!endif
|
||||
|
||||
# Source directory
|
||||
!define SOURCEDIR "..\..\.."
|
||||
|
||||
# Get version from executable
|
||||
!GetDllVersion "${RELEASEDIR}\retroshare-gui\src\release\retroshare.exe" VERSION_
|
||||
!define VERSION ${VERSION_1}.${VERSION_2}.${VERSION_3}
|
||||
;!define REVISION ${VERSION_4}
|
||||
|
||||
# Get version of Qt
|
||||
!GetDllVersion "${QTDIR}\bin\QtCore4.dll" QTVERSION_
|
||||
!define QTVERSION ${QTVERSION_1}.${QTVERSION_2}.${QTVERSION_3}
|
||||
|
||||
# Check version
|
||||
!ifndef REVISION
|
||||
!error "REVISION is not defined"
|
||||
!endif
|
||||
|
||||
# Date
|
||||
!define /date Date "%Y%m%d"
|
||||
|
||||
# Application name and version
|
||||
!define APPNAME "RetroShare"
|
||||
!define APPNAMEANDVERSION "${APPNAME} ${VERSION}"
|
||||
!define PUBLISHER "RetroShare Team"
|
||||
|
||||
# Install path
|
||||
!define INSTDIR_NORMAL "$ProgramFiles\${APPNAME}"
|
||||
!define INSTDIR_PORTABLE "$Desktop\${APPNAME}"
|
||||
|
||||
!define DATADIR_NORMAL "$APPDATA\${APPNAME}"
|
||||
!define DATADIR_PORTABLE "$INSTDIR\Data"
|
||||
|
||||
# Main Install settings
|
||||
Name "${APPNAMEANDVERSION}"
|
||||
InstallDirRegKey HKLM "Software\${APPNAME}" ""
|
||||
OutFile "${OUTDIR_}RetroShare-${VERSION}-${Date}-${REVISION}-Qt-${QTVERSION}${INSTALLERADD}-setup.exe"
|
||||
BrandingText "${APPNAMEANDVERSION}"
|
||||
RequestExecutionlevel highest
|
||||
# Use compression
|
||||
SetCompressor /SOLID LZMA
|
||||
|
||||
# Global variables
|
||||
Var PortableMode
|
||||
Var InstDirNormal
|
||||
Var InstDirPortable
|
||||
Var DataDir
|
||||
Var StyleSheetDir
|
||||
|
||||
# Modern interface settings
|
||||
!include Sections.nsh
|
||||
!include nsDialogs.nsh
|
||||
!include "MUI.nsh"
|
||||
|
||||
# Interface Settings
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP "${SOURCEDIR}\build_scripts\Windows\installer\HeaderImage.bmp"
|
||||
;!define MUI_WELCOMEFINISHPAGE_BITMAP "...bmp"
|
||||
|
||||
# MUI defines
|
||||
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"
|
||||
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
||||
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!define MUI_FINISHPAGE_LINK "Visit the RetroShare forum for the latest news and support"
|
||||
!define MUI_FINISHPAGE_LINK_LOCATION "http://retroshare.sourceforge.net/forum/"
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\retroshare.exe"
|
||||
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\changelog.txt
|
||||
!define MUI_FINISHPAGE_SHOWREADME_TEXT changelog.txt
|
||||
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
|
||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"
|
||||
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
|
||||
;!define MUI_LANGDLL_REGISTRY_ROOT HKLM
|
||||
;!define MUI_LANGDLL_REGISTRY_KEY ${REGKEY}
|
||||
;!define MUI_LANGDLL_REGISTRY_VALUENAME InstallerLanguage
|
||||
|
||||
# Defines the un-/installer logo of RetroShare
|
||||
!insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange.bmp"
|
||||
!insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange-uninstall.bmp"
|
||||
|
||||
# Installer pages
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "$(myLicenseData)"
|
||||
Page Custom PortableModePageCreate PortableModePageLeave
|
||||
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE dir_leave
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
# Set languages (first is default language)
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
|
||||
# Installer languages
|
||||
!define MUI_LANGDLL_ALLLANGUAGES
|
||||
|
||||
# Translations
|
||||
!macro LANG_LOAD LANGUAGE LANGCODE LANGID LICENCEFILE
|
||||
!insertmacro MUI_LANGUAGE "${LANGUAGE}"
|
||||
; !verbose off
|
||||
!define LANG "${LANGUAGE}"
|
||||
!include "lang\${LANGCODE}.nsh"
|
||||
LangString LANGUAGEID "${LANG_${LANG}}" "1031"
|
||||
LicenseLangString myLicenseData ${LANGCODE} ${LICENCEFILE}
|
||||
; !verbose on
|
||||
!undef LANG
|
||||
!macroend
|
||||
|
||||
!macro LANG_STRING NAME VALUE
|
||||
LangString "${NAME}" "${LANG_${LANG}}" "${VALUE}"
|
||||
!macroend
|
||||
|
||||
!insertmacro LANG_LOAD "English" "en" "1033" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
!insertmacro LANG_LOAD "French" "fr" "1036" "${SOURCEDIR}\retroshare-gui\src\license\license-FR.txt"
|
||||
!insertmacro LANG_LOAD "German" "de" "1031" "${SOURCEDIR}\retroshare-gui\src\license\license-GER.txt"
|
||||
!insertmacro LANG_LOAD "Turkish" "tr" "1055" "${SOURCEDIR}\retroshare-gui\src\license\license-TR.txt"
|
||||
!insertmacro LANG_LOAD "SimpChinese" "zh_CN" "2052" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
!insertmacro LANG_LOAD "Polish" "pl" "1045" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
!insertmacro LANG_LOAD "Spanish" "es" "1034" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
!insertmacro LANG_LOAD "Russian" "ru" "1049" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
!insertmacro LANG_LOAD "Catalan" "ca_ES" "1027" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
|
||||
LicenseData $(myLicenseData)
|
||||
|
||||
# Main binaries
|
||||
Section $(Section_Main) Section_Main
|
||||
;Set Section required
|
||||
SectionIn RO
|
||||
|
||||
; Set Section properties
|
||||
SetOverwrite on
|
||||
|
||||
; Clears previous error logs
|
||||
; Delete "$INSTDIR\*.log"
|
||||
|
||||
; Main binaries
|
||||
SetOutPath "$INSTDIR"
|
||||
File /oname=retroshare.exe "${RELEASEDIR}\retroshare-gui\src\release\retroshare.exe"
|
||||
File /oname=retroshare-nogui.exe "${RELEASEDIR}\retroshare-nogui\src\release\retroshare-nogui.exe"
|
||||
|
||||
; Qt binaries
|
||||
File "${QTDIR}\bin\QtCore4.dll"
|
||||
File "${QTDIR}\bin\QtGui4.dll"
|
||||
File "${QTDIR}\bin\QtMultimedia4.dll"
|
||||
File "${QTDIR}\bin\QtNetwork4.dll"
|
||||
File "${QTDIR}\bin\QtSvg4.dll"
|
||||
File "${QTDIR}\bin\QtXml4.dll"
|
||||
|
||||
; MinGW binaries
|
||||
File "${MINGWDIR}\bin\libstdc++-6.dll"
|
||||
File "${MINGWDIR}\bin\libgcc_s_dw2-1.dll"
|
||||
File "${MINGWDIR}\bin\libwinpthread-1.dll"
|
||||
|
||||
; External binaries
|
||||
File "${EXTERNAL_LIB_DIR}\bin\miniupnpc.dll"
|
||||
File "${EXTERNAL_LIB_DIR}\bin\libeay32.dll"
|
||||
File "${EXTERNAL_LIB_DIR}\bin\ssleay32.dll"
|
||||
|
||||
; Other files
|
||||
File "${SOURCEDIR}\retroshare-gui\src\changelog.txt"
|
||||
File "${SOURCEDIR}\libbitdht\src\bitdht\bdboot.txt"
|
||||
|
||||
; Image formats
|
||||
SetOutPath "$INSTDIR\imageformats"
|
||||
File /r "${QTDIR}\plugins\imageformats\qgif4.dll"
|
||||
File /r "${QTDIR}\plugins\imageformats\qico4.dll"
|
||||
File /r "${QTDIR}\plugins\imageformats\qjpeg4.dll"
|
||||
File /r "${QTDIR}\plugins\imageformats\qmng4.dll"
|
||||
File /r "${QTDIR}\plugins\imageformats\qsvg4.dll"
|
||||
File /r "${QTDIR}\plugins\imageformats\qtga4.dll"
|
||||
File /r "${QTDIR}\plugins\imageformats\qtiff4.dll"
|
||||
|
||||
; Sounds
|
||||
SetOutPath "$INSTDIR\sounds"
|
||||
File /r "${SOURCEDIR}\retroshare-gui\src\sounds\*.*"
|
||||
|
||||
; Translations
|
||||
SetOutPath "$INSTDIR\translations"
|
||||
File /r "${SOURCEDIR}\retroshare-gui\src\translations\*.qm"
|
||||
File /r "${QTDIR}\translations\qt_*.qm"
|
||||
|
||||
; WebUI
|
||||
SetOutPath "$INSTDIR\webui"
|
||||
File /r "${SOURCEDIR}\libresapi\src\webui\*.*"
|
||||
|
||||
; License
|
||||
SetOutPath "$INSTDIR\license"
|
||||
File /r "${SOURCEDIR}\retroshare-gui\src\license\*.*"
|
||||
SectionEnd
|
||||
|
||||
# Plugins
|
||||
${!defineifexist} PLUGIN_FEEDREADER_EXISTS "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
|
||||
${!defineifexist} PLUGIN_VOIP_EXISTS "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
|
||||
|
||||
!ifdef PLUGIN_FEEDREADER_EXISTS
|
||||
!define /ifndef PLUGIN_EXISTS
|
||||
!endif
|
||||
!ifdef PLUGIN_VOIP_EXISTS
|
||||
!define /ifndef PLUGIN_EXISTS
|
||||
!endif
|
||||
|
||||
!ifdef PLUGIN_EXISTS
|
||||
SectionGroup $(Section_Plugins) Section_Plugins
|
||||
!ifdef PLUGIN_FEEDREADER_EXISTS
|
||||
Section $(Section_Plugin_FeedReader) Section_Plugin_FeedReader
|
||||
SetOutPath "$DataDir\extensions6"
|
||||
File "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
!ifdef PLUGIN_VOIP_EXISTS
|
||||
Section $(Section_Plugin_VOIP) Section_Plugin_VOIP
|
||||
SetOutPath "$DataDir\extensions6"
|
||||
File "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
|
||||
SectionEnd
|
||||
!endif
|
||||
SectionGroupEnd
|
||||
!endif
|
||||
|
||||
# Data (Styles)
|
||||
Section $(Section_Data) Section_Data
|
||||
; Set Section properties
|
||||
SetOverwrite on
|
||||
|
||||
; Chat style
|
||||
SetOutPath "$StyleSheetDir\stylesheets\Bubble"
|
||||
File /r "${SOURCEDIR}\retroshare-gui\src\gui\qss\chat\Bubble\*.*"
|
||||
SetOutPath "$StyleSheetDir\stylesheets\Bubble_Compact"
|
||||
File /r "${SOURCEDIR}\retroshare-gui\src\gui\qss\chat\Bubble_Compact\*.*"
|
||||
|
||||
; Stylesheets
|
||||
SetOutPath "$INSTDIR\qss"
|
||||
File /r "${SOURCEDIR}\retroshare-gui\src\qss\*.*"
|
||||
SectionEnd
|
||||
|
||||
;Section $(Section_Link) Section_Link
|
||||
; Delete any existing keys
|
||||
|
||||
; Write the file association
|
||||
; WriteRegStr HKCR .pqi "" retroshare
|
||||
; WriteRegStr HKCR retroshare "" "PQI File"
|
||||
; WriteRegBin HKCR retroshare EditFlags 00000100
|
||||
; WriteRegStr HKCR "retroshare\shell" "" open
|
||||
; WriteRegStr HKCR "retroshare\shell\open\command" "" `"$INSTDIR\retroshare.exe" "%1"`
|
||||
;SectionEnd
|
||||
|
||||
# Shortcuts
|
||||
SectionGroup $(Section_Shortcuts) Section_Shortcuts
|
||||
Section $(Section_StartMenu) Section_StartMenu
|
||||
SetOutPath "$INSTDIR"
|
||||
CreateDirectory "$SMPROGRAMS\${APPNAME}"
|
||||
CreateShortCut "$SMPROGRAMS\${APPNAME}\$(Link_Uninstall).lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
|
||||
CreateShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
|
||||
SectionEnd
|
||||
|
||||
Section $(Section_Desktop) Section_Desktop
|
||||
CreateShortCut "$DESKTOP\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
|
||||
SectionEnd
|
||||
|
||||
Section $(Section_QuickLaunch) Section_QuickLaunch
|
||||
CreateShortCut "$QUICKLAUNCH\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
|
||||
SectionEnd
|
||||
SectionGroupEnd
|
||||
|
||||
Section $(Section_AutoStart) Section_AutoStart
|
||||
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "RetroShare" "$INSTDIR\retroshare.exe -m"
|
||||
SectionEnd
|
||||
|
||||
;Section $(Section_AutoStart) Section_AutoStart
|
||||
; CreateShortCut "$SMSTARTUP\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe -m" 0
|
||||
;SectionEnd
|
||||
|
||||
Section -FinishSection
|
||||
${If} $PortableMode = 0
|
||||
WriteRegStr HKLM "Software\${APPNAME}" "" "$INSTDIR"
|
||||
WriteRegStr HKLM "Software\${APPNAME}" "Version" "${VERSION}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayVersion" "${VERSION}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayIcon" "$INSTDIR\retroshare.exe"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "Publisher" "${PUBLISHER}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoModify" "1"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoRepair" "1"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$INSTDIR\uninstall.exe"
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
${Else}
|
||||
; Create the file the application uses to detect portable mode
|
||||
FileOpen $0 "$INSTDIR\portable" w
|
||||
FileClose $0
|
||||
${EndIf}
|
||||
SectionEnd
|
||||
|
||||
# Descriptions
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Main} $(Section_Main_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Data} $(Section_Data_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Shortcuts} $(Section_Shortcuts_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_StartMenu} $(Section_StartMenu_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Desktop} $(Section_Desktop_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_QuickLaunch} $(Section_QuickLaunch_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugins} $(Section_Plugins_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugin_FeedReader} $(Section_Plugin_FeedReader_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugin_VOIP} $(Section_Plugin_VOIP_Desc)
|
||||
; !insertmacro MUI_DESCRIPTION_TEXT ${Section_Link} $(Section_Link_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_AutoStart} $(Section_AutoStart_Desc)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
# Uninstall
|
||||
Section "Uninstall"
|
||||
; Remove file association registry keys
|
||||
; DeleteRegKey HKCR .pqi
|
||||
DeleteRegKey HKCR RetroShare
|
||||
|
||||
; Remove program/uninstall regsitry keys
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
|
||||
DeleteRegKey HKLM SOFTWARE\${APPNAME}
|
||||
|
||||
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "RetroShare"
|
||||
|
||||
; Remove shortcuts, if any
|
||||
Delete "$SMPROGRAMS\${APPNAME}\*.*"
|
||||
|
||||
; Remove desktop shortcut
|
||||
Delete "$DESKTOP\${APPNAME}.lnk"
|
||||
|
||||
; Remove Quicklaunch shortcut
|
||||
Delete "$QUICKLAUNCH\${APPNAME}.lnk"
|
||||
|
||||
; Remove Autstart
|
||||
Delete "$SMSTARTUP\${APPNAME}.lnk"
|
||||
|
||||
; Remove directories used
|
||||
RMDir "$SMPROGRAMS\${APPNAME}"
|
||||
RMDir /r "$INSTDIR"
|
||||
|
||||
; Don't remove the directory, otherwise
|
||||
; we lose the XPGP keys.
|
||||
; Should make this an option though...
|
||||
RMDir /r "${DATADIR_NORMAL}\extensions6"
|
||||
RMDir /r "${DATADIR_NORMAL}\stylesheets"
|
||||
SectionEnd
|
||||
|
||||
Function .onInit
|
||||
StrCpy $InstDirNormal "${INSTDIR_NORMAL}"
|
||||
StrCpy $InstDirPortable "${INSTDIR_PORTABLE}"
|
||||
|
||||
StrCpy $PortableMode 0
|
||||
StrCpy $INSTDIR "$InstDirNormal"
|
||||
StrCpy $DataDir "${DATADIR_NORMAL}"
|
||||
|
||||
InitPluginsDir
|
||||
Push $R1
|
||||
File /oname=$PLUGINSDIR\spltmp.bmp "${SOURCEDIR}\retroshare-gui\src\gui\images\logo\logo_splash.png"
|
||||
advsplash::show 1200 1000 1000 -1 $PLUGINSDIR\spltmp
|
||||
Pop $R1
|
||||
Pop $R1
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
FunctionEnd
|
||||
|
||||
# Installation mode
|
||||
|
||||
Function RequireAdmin
|
||||
UserInfo::GetAccountType
|
||||
Pop $8
|
||||
${If} $8 != "admin"
|
||||
MessageBox MB_ICONSTOP "You need administrator rights to install ${APPNAME}"
|
||||
SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
|
||||
Abort
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
|
||||
Function SetModeDestinationFromInstdir
|
||||
${If} $PortableMode = 0
|
||||
StrCpy $InstDirNormal $INSTDIR
|
||||
${Else}
|
||||
StrCpy $InstDirPortable $INSTDIR
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
|
||||
Function PortableModePageCreate
|
||||
Call SetModeDestinationFromInstdir ; If the user clicks BACK on the directory page we will remember their mode specific directory
|
||||
!insertmacro MUI_HEADER_TEXT $(Page_InstallMode) $(Page_InstallMode_Desc)
|
||||
nsDialogs::Create 1018
|
||||
Pop $0
|
||||
${NSD_CreateRadioButton} 5u 25u -10u 8u $(Page_InstallMode_Standard)
|
||||
Pop $1
|
||||
${NSD_CreateLabel} 18u 40u -10u 24u $(Page_InstallMode_Standard_Desc)
|
||||
Pop $0
|
||||
${NSD_CreateRadioButton} 5u 75u -10u 8u $(Page_InstallMode_Portable)
|
||||
Pop $2
|
||||
${NSD_CreateLabel} 18u 90u -10u 24u $(Page_InstallMode_Portable_Desc)
|
||||
Pop $0
|
||||
${If} $PortableMode = 0
|
||||
SendMessage $1 ${BM_SETCHECK} ${BST_CHECKED} 0
|
||||
${Else}
|
||||
SendMessage $2 ${BM_SETCHECK} ${BST_CHECKED} 0
|
||||
${EndIf}
|
||||
nsDialogs::Show
|
||||
FunctionEnd
|
||||
|
||||
Function PortableModePageLeave
|
||||
${NSD_GetState} $1 $0
|
||||
${If} $0 <> ${BST_UNCHECKED}
|
||||
StrCpy $PortableMode 0
|
||||
StrCpy $INSTDIR $InstDirNormal
|
||||
Call RequireAdmin
|
||||
; Enable sections
|
||||
SectionSetText ${Section_Shortcuts} $(Section_Shortcuts)
|
||||
SectionSetText ${Section_StartMenu} $(Section_StartMenu)
|
||||
SectionSetText ${Section_Desktop} $(Section_Desktop)
|
||||
SectionSetText ${Section_QuickLaunch} $(Section_QuickLaunch)
|
||||
SectionSetText ${Section_AutoStart} $(Section_AutoStart)
|
||||
!insertmacro SelectSection ${Section_Shortcuts}
|
||||
!insertmacro SelectSection ${Section_AutoStart}
|
||||
!insertmacro SelectSection ${Section_StartMenu}
|
||||
!insertmacro SelectSection ${Section_Desktop}
|
||||
!insertmacro SelectSection ${Section_QuickLaunch}
|
||||
${Else}
|
||||
StrCpy $PortableMode 1
|
||||
StrCpy $INSTDIR $InstDirPortable
|
||||
; Disable sections
|
||||
!insertmacro UnselectSection ${Section_Shortcuts}
|
||||
!insertmacro UnselectSection ${Section_AutoStart}
|
||||
!insertmacro UnselectSection ${Section_StartMenu}
|
||||
!insertmacro UnselectSection ${Section_Desktop}
|
||||
!insertmacro UnselectSection ${Section_QuickLaunch}
|
||||
SectionSetText ${Section_Shortcuts} ""
|
||||
SectionSetText ${Section_StartMenu} ""
|
||||
SectionSetText ${Section_Desktop} ""
|
||||
SectionSetText ${Section_QuickLaunch} ""
|
||||
SectionSetText ${Section_AutoStart} ""
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
|
||||
Function dir_leave
|
||||
${If} $PortableMode = 0
|
||||
StrCpy $DataDir "${DATADIR_NORMAL}"
|
||||
StrCpy $StyleSheetDir $DataDir
|
||||
${Else}
|
||||
StrCpy $DataDir "${DATADIR_PORTABLE}"
|
||||
StrCpy $StyleSheetDir $INSTDIR
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
; Script generated with the Venis Install Wizard & modified by defnax
|
||||
; Reworked by Thunder
|
||||
; Adapted to msys2 and 64 bit by anmo
|
||||
|
||||
!include ifexist.nsh
|
||||
!include x64.nsh
|
||||
|
||||
# Needed defines
|
||||
;!define REVISION ""
|
||||
;!define DEPLOYDIR ""
|
||||
;!define ARCHITECTURE ""
|
||||
|
||||
# Optional defines
|
||||
;!define OUTDIR ""
|
||||
;!define INSTALLERADD ""
|
||||
|
||||
# Check needed defines
|
||||
!ifndef DEPLOYDIR
|
||||
!error "DEPLOYDIR is not defined"
|
||||
!endif
|
||||
!ifndef ARCHITECTURE
|
||||
!error "ARCHITECTURE is not defined"
|
||||
!endif
|
||||
|
||||
# Check optional defines
|
||||
!ifdef OUTDIR
|
||||
!define OUTDIR_ "${OUTDIR}\"
|
||||
!else
|
||||
!define OUTDIR ""
|
||||
!define OUTDIR_ ""
|
||||
!endif
|
||||
|
||||
!ifndef INSTALLERADD
|
||||
!define INSTALLERADD ""
|
||||
!endif
|
||||
|
||||
# Source directory
|
||||
!define SOURCEDIR "..\..\.."
|
||||
|
||||
# Get version from executable
|
||||
!GetDllVersion "${DEPLOYDIR}\retroshare.exe" VERSION_
|
||||
!define VERSION ${VERSION_1}.${VERSION_2}.${VERSION_3}
|
||||
;!define REVISION ${VERSION_4}
|
||||
|
||||
# Check version
|
||||
!ifndef REVISION
|
||||
!error "REVISION is not defined"
|
||||
!endif
|
||||
|
||||
# Date
|
||||
!define /date Date "%Y%m%d"
|
||||
|
||||
# Detect tor
|
||||
${!defineifexist} TOR_EXISTS "${DEPLOYDIR}\tor.exe"
|
||||
!ifdef TOR_EXISTS
|
||||
!define RSTYPE "-tor"
|
||||
!else
|
||||
!define RSTYPE ""
|
||||
!endif
|
||||
|
||||
# Application name and version
|
||||
!define APPNAME "RetroShare"
|
||||
!define APPNAMEANDVERSION "${APPNAME} ${VERSION}"
|
||||
!define PUBLISHER "RetroShare Team"
|
||||
|
||||
# Install path
|
||||
!define INSTDIR_PORTABLE "$Desktop\${APPNAME}"
|
||||
|
||||
!define DATADIR_NORMAL "$APPDATA\${APPNAME}"
|
||||
!define DATADIR_PORTABLE "$INSTDIR\Data"
|
||||
|
||||
# Main Install settings
|
||||
Name "${APPNAMEANDVERSION}"
|
||||
InstallDirRegKey HKLM "Software\${APPNAME}" ""
|
||||
OutFile "${OUTDIR_}RetroShare-${VERSION}-${Date}-${REVISION}-${ARCHITECTURE}${RSTYPE}${INSTALLERADD}-setup.exe"
|
||||
BrandingText "${APPNAMEANDVERSION}"
|
||||
RequestExecutionlevel highest
|
||||
# Use compression
|
||||
SetCompressor /SOLID LZMA
|
||||
|
||||
# Global variables
|
||||
Var PortableMode
|
||||
Var InstDirNormal
|
||||
Var InstDirPortable
|
||||
Var DataDir
|
||||
Var StyleSheetDir
|
||||
|
||||
# Modern interface settings
|
||||
!include Sections.nsh
|
||||
!include nsDialogs.nsh
|
||||
!include "MUI.nsh"
|
||||
|
||||
# Interface Settings
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP "${SOURCEDIR}\build_scripts\Windows-msys2\installer\HeaderImage.bmp"
|
||||
;!define MUI_WELCOMEFINISHPAGE_BITMAP "...bmp"
|
||||
|
||||
# MUI defines
|
||||
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"
|
||||
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
||||
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!define MUI_FINISHPAGE_LINK "Visit the RetroShare forum for the latest news and support"
|
||||
!define MUI_FINISHPAGE_LINK_LOCATION "http://retroshare.sourceforge.net/forum/"
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\retroshare.exe"
|
||||
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\changelog.txt
|
||||
!define MUI_FINISHPAGE_SHOWREADME_TEXT changelog.txt
|
||||
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
|
||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"
|
||||
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
|
||||
;!define MUI_LANGDLL_REGISTRY_ROOT HKLM
|
||||
;!define MUI_LANGDLL_REGISTRY_KEY ${REGKEY}
|
||||
;!define MUI_LANGDLL_REGISTRY_VALUENAME InstallerLanguage
|
||||
|
||||
# Defines the un-/installer logo of RetroShare
|
||||
!insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange.bmp"
|
||||
!insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange-uninstall.bmp"
|
||||
|
||||
# Installer pages
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "$(myLicenseData)"
|
||||
Page Custom PortableModePageCreate PortableModePageLeave
|
||||
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE dir_leave
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
# Set languages (first is default language)
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
|
||||
# Installer languages
|
||||
!define MUI_LANGDLL_ALLLANGUAGES
|
||||
|
||||
# Translations
|
||||
!macro LANG_LOAD LANGUAGE LANGCODE LANGID LICENCEFILE
|
||||
!insertmacro MUI_LANGUAGE "${LANGUAGE}"
|
||||
; !verbose off
|
||||
!define LANG "${LANGUAGE}"
|
||||
!include "lang\${LANGCODE}.nsh"
|
||||
LangString LANGUAGEID "${LANG_${LANG}}" "1031"
|
||||
LicenseLangString myLicenseData ${LANGCODE} ${LICENCEFILE}
|
||||
; !verbose on
|
||||
!undef LANG
|
||||
!macroend
|
||||
|
||||
!macro LANG_STRING NAME VALUE
|
||||
LangString "${NAME}" "${LANG_${LANG}}" "${VALUE}"
|
||||
!macroend
|
||||
|
||||
!insertmacro LANG_LOAD "English" "en" "1033" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
!insertmacro LANG_LOAD "French" "fr" "1036" "${SOURCEDIR}\retroshare-gui\src\license\license-FR.txt"
|
||||
!insertmacro LANG_LOAD "German" "de" "1031" "${SOURCEDIR}\retroshare-gui\src\license\license-GER.txt"
|
||||
!insertmacro LANG_LOAD "Turkish" "tr" "1055" "${SOURCEDIR}\retroshare-gui\src\license\license-TR.txt"
|
||||
!insertmacro LANG_LOAD "SimpChinese" "zh_CN" "2052" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
!insertmacro LANG_LOAD "Polish" "pl" "1045" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
!insertmacro LANG_LOAD "Spanish" "es" "1034" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
!insertmacro LANG_LOAD "Russian" "ru" "1049" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
!insertmacro LANG_LOAD "Catalan" "ca_ES" "1027" "${SOURCEDIR}\retroshare-gui\src\license\license.txt"
|
||||
|
||||
LicenseData $(myLicenseData)
|
||||
|
||||
# Main binaries
|
||||
Section $(Section_Main) Section_Main
|
||||
;Set Section required
|
||||
SectionIn RO
|
||||
|
||||
; Set Section properties
|
||||
SetOverwrite on
|
||||
|
||||
; Clears previous error logs
|
||||
; Delete "$INSTDIR\*.log"
|
||||
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r /x Data /x stylesheets /x qss /x portable "${DEPLOYDIR}\*.*"
|
||||
SectionEnd
|
||||
|
||||
# Plugins
|
||||
${!defineifexist} PLUGIN_FEEDREADER_EXISTS "${DEPLOYDIR}\Data\extensions6\FeedReader.dll"
|
||||
${!defineifexist} PLUGIN_VOIP_EXISTS "${DEPLOYDIR}\Data\extensions6\VOIP.dll"
|
||||
|
||||
!ifdef PLUGIN_FEEDREADER_EXISTS
|
||||
!define /ifndef PLUGIN_EXISTS
|
||||
!endif
|
||||
!ifdef PLUGIN_VOIP_EXISTS
|
||||
!define /ifndef PLUGIN_EXISTS
|
||||
!endif
|
||||
|
||||
!ifdef PLUGIN_EXISTS
|
||||
SectionGroup $(Section_Plugins) Section_Plugins
|
||||
!ifdef PLUGIN_FEEDREADER_EXISTS
|
||||
Section $(Section_Plugin_FeedReader) Section_Plugin_FeedReader
|
||||
SetOutPath "$DataDir\extensions6"
|
||||
File "${DEPLOYDIR}\Data\extensions6\FeedReader.dll"
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
!ifdef PLUGIN_VOIP_EXISTS
|
||||
Section $(Section_Plugin_VOIP) Section_Plugin_VOIP
|
||||
SetOutPath "$DataDir\extensions6"
|
||||
File "${DEPLOYDIR}\Data\extensions6\VOIP.dll"
|
||||
SectionEnd
|
||||
!endif
|
||||
SectionGroupEnd
|
||||
!endif
|
||||
|
||||
# Data (Styles)
|
||||
Section $(Section_Data) Section_Data
|
||||
; Set Section properties
|
||||
SetOverwrite on
|
||||
|
||||
; Chat style
|
||||
SetOutPath "$StyleSheetDir\stylesheets"
|
||||
File /r "${DEPLOYDIR}\stylesheets\*.*"
|
||||
|
||||
; Stylesheets
|
||||
SetOutPath "$INSTDIR\qss"
|
||||
File /r "${DEPLOYDIR}\qss\*.*"
|
||||
SectionEnd
|
||||
|
||||
;Section $(Section_Link) Section_Link
|
||||
; Delete any existing keys
|
||||
|
||||
; Write the file association
|
||||
; WriteRegStr HKCR .pqi "" retroshare
|
||||
; WriteRegStr HKCR retroshare "" "PQI File"
|
||||
; WriteRegBin HKCR retroshare EditFlags 00000100
|
||||
; WriteRegStr HKCR "retroshare\shell" "" open
|
||||
; WriteRegStr HKCR "retroshare\shell\open\command" "" `"$INSTDIR\retroshare.exe" "%1"`
|
||||
;SectionEnd
|
||||
|
||||
# Shortcuts
|
||||
SectionGroup $(Section_Shortcuts) Section_Shortcuts
|
||||
Section $(Section_StartMenu) Section_StartMenu
|
||||
SetOutPath "$INSTDIR"
|
||||
CreateDirectory "$SMPROGRAMS\${APPNAME}"
|
||||
CreateShortCut "$SMPROGRAMS\${APPNAME}\$(Link_Uninstall).lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
|
||||
CreateShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
|
||||
SectionEnd
|
||||
|
||||
Section $(Section_Desktop) Section_Desktop
|
||||
CreateShortCut "$DESKTOP\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
|
||||
SectionEnd
|
||||
|
||||
Section $(Section_QuickLaunch) Section_QuickLaunch
|
||||
CreateShortCut "$QUICKLAUNCH\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe" 0
|
||||
SectionEnd
|
||||
SectionGroupEnd
|
||||
|
||||
Section $(Section_AutoStart) Section_AutoStart
|
||||
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "RetroShare" "$INSTDIR\retroshare.exe -m"
|
||||
SectionEnd
|
||||
|
||||
;Section $(Section_AutoStart) Section_AutoStart
|
||||
; CreateShortCut "$SMSTARTUP\${APPNAME}.lnk" "$INSTDIR\retroshare.exe" "" "$INSTDIR\retroshare.exe -m" 0
|
||||
;SectionEnd
|
||||
|
||||
Section -FinishSection
|
||||
${If} $PortableMode = 0
|
||||
WriteRegStr HKLM "Software\${APPNAME}" "" "$INSTDIR"
|
||||
WriteRegStr HKLM "Software\${APPNAME}" "Version" "${VERSION}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayVersion" "${VERSION}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayIcon" "$INSTDIR\retroshare.exe"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "Publisher" "${PUBLISHER}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoModify" "1"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "NoRepair" "1"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$INSTDIR\uninstall.exe"
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
${Else}
|
||||
; Create the file the application uses to detect portable mode
|
||||
FileOpen $0 "$INSTDIR\portable" w
|
||||
FileClose $0
|
||||
${EndIf}
|
||||
SectionEnd
|
||||
|
||||
# Descriptions
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Main} $(Section_Main_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Data} $(Section_Data_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Shortcuts} $(Section_Shortcuts_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_StartMenu} $(Section_StartMenu_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Desktop} $(Section_Desktop_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_QuickLaunch} $(Section_QuickLaunch_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugins} $(Section_Plugins_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugin_FeedReader} $(Section_Plugin_FeedReader_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugin_VOIP} $(Section_Plugin_VOIP_Desc)
|
||||
; !insertmacro MUI_DESCRIPTION_TEXT ${Section_Link} $(Section_Link_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_AutoStart} $(Section_AutoStart_Desc)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
# Uninstall
|
||||
Section "Uninstall"
|
||||
; Remove file association registry keys
|
||||
; DeleteRegKey HKCR .pqi
|
||||
DeleteRegKey HKCR RetroShare
|
||||
|
||||
; Remove program/uninstall regsitry keys
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
|
||||
DeleteRegKey HKLM SOFTWARE\${APPNAME}
|
||||
|
||||
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "RetroShare"
|
||||
|
||||
; Remove shortcuts, if any
|
||||
Delete "$SMPROGRAMS\${APPNAME}\*.*"
|
||||
|
||||
; Remove desktop shortcut
|
||||
Delete "$DESKTOP\${APPNAME}.lnk"
|
||||
|
||||
; Remove Quicklaunch shortcut
|
||||
Delete "$QUICKLAUNCH\${APPNAME}.lnk"
|
||||
|
||||
; Remove Autstart
|
||||
Delete "$SMSTARTUP\${APPNAME}.lnk"
|
||||
|
||||
; Remove directories used
|
||||
RMDir "$SMPROGRAMS\${APPNAME}"
|
||||
RMDir /r "$INSTDIR"
|
||||
|
||||
; Don't remove the directory, otherwise
|
||||
; we lose the XPGP keys.
|
||||
; Should make this an option though...
|
||||
RMDir /r "${DATADIR_NORMAL}\extensions6"
|
||||
RMDir /r "${DATADIR_NORMAL}\stylesheets"
|
||||
SectionEnd
|
||||
|
||||
Function .onInit
|
||||
; source: https://stackoverflow.com/questions/19374453/nsis-installer-define-installer-and-system-x32-x64
|
||||
${If} ${RunningX64}
|
||||
${If} ${ARCHITECTURE} == "x64"
|
||||
StrCpy $InstDirNormal "$PROGRAMFILES64\${APPNAME}"
|
||||
${Else}
|
||||
StrCpy $InstDirNormal "$PROGRAMFILES32\${APPNAME}"
|
||||
${Endif}
|
||||
${Else}
|
||||
${If} ${ARCHITECTURE} == "x64"
|
||||
MessageBox MB_ICONSTOP "You cannot install the 64 bit version on a 32 bit system!"
|
||||
Quit
|
||||
${Else}
|
||||
StrCpy $InstDirNormal "$PROGRAMFILES\${APPNAME}"
|
||||
${Endif}
|
||||
${EndIf}
|
||||
|
||||
StrCpy $InstDirPortable "${INSTDIR_PORTABLE}"
|
||||
|
||||
StrCpy $PortableMode 0
|
||||
StrCpy $INSTDIR "$InstDirNormal"
|
||||
StrCpy $DataDir "${DATADIR_NORMAL}"
|
||||
|
||||
InitPluginsDir
|
||||
Push $R1
|
||||
File /oname=$PLUGINSDIR\spltmp.bmp "${SOURCEDIR}\retroshare-gui\src\gui\images\logo\logo_splash.png"
|
||||
advsplash::show 1200 1000 1000 -1 $PLUGINSDIR\spltmp
|
||||
Pop $R1
|
||||
Pop $R1
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
FunctionEnd
|
||||
|
||||
# Installation mode
|
||||
|
||||
Function RequireAdmin
|
||||
UserInfo::GetAccountType
|
||||
Pop $8
|
||||
${If} $8 != "admin"
|
||||
MessageBox MB_ICONSTOP "You need administrator rights to install ${APPNAME}"
|
||||
SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
|
||||
Abort
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
|
||||
Function SetModeDestinationFromInstdir
|
||||
${If} $PortableMode = 0
|
||||
StrCpy $InstDirNormal $INSTDIR
|
||||
${Else}
|
||||
StrCpy $InstDirPortable $INSTDIR
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
|
||||
Function PortableModePageCreate
|
||||
Call SetModeDestinationFromInstdir ; If the user clicks BACK on the directory page we will remember their mode specific directory
|
||||
!insertmacro MUI_HEADER_TEXT $(Page_InstallMode) $(Page_InstallMode_Desc)
|
||||
nsDialogs::Create 1018
|
||||
Pop $0
|
||||
${NSD_CreateRadioButton} 5u 25u -10u 8u $(Page_InstallMode_Standard)
|
||||
Pop $1
|
||||
${NSD_CreateLabel} 18u 40u -10u 24u $(Page_InstallMode_Standard_Desc)
|
||||
Pop $0
|
||||
${NSD_CreateRadioButton} 5u 75u -10u 8u $(Page_InstallMode_Portable)
|
||||
Pop $2
|
||||
${NSD_CreateLabel} 18u 90u -10u 24u $(Page_InstallMode_Portable_Desc)
|
||||
Pop $0
|
||||
${If} $PortableMode = 0
|
||||
SendMessage $1 ${BM_SETCHECK} ${BST_CHECKED} 0
|
||||
${Else}
|
||||
SendMessage $2 ${BM_SETCHECK} ${BST_CHECKED} 0
|
||||
${EndIf}
|
||||
nsDialogs::Show
|
||||
FunctionEnd
|
||||
|
||||
Function PortableModePageLeave
|
||||
${NSD_GetState} $1 $0
|
||||
${If} $0 <> ${BST_UNCHECKED}
|
||||
StrCpy $PortableMode 0
|
||||
StrCpy $INSTDIR $InstDirNormal
|
||||
Call RequireAdmin
|
||||
; Enable sections
|
||||
SectionSetText ${Section_Shortcuts} $(Section_Shortcuts)
|
||||
SectionSetText ${Section_StartMenu} $(Section_StartMenu)
|
||||
SectionSetText ${Section_Desktop} $(Section_Desktop)
|
||||
SectionSetText ${Section_QuickLaunch} $(Section_QuickLaunch)
|
||||
SectionSetText ${Section_AutoStart} $(Section_AutoStart)
|
||||
!insertmacro SelectSection ${Section_Shortcuts}
|
||||
!insertmacro SelectSection ${Section_AutoStart}
|
||||
!insertmacro SelectSection ${Section_StartMenu}
|
||||
!insertmacro SelectSection ${Section_Desktop}
|
||||
!insertmacro SelectSection ${Section_QuickLaunch}
|
||||
${Else}
|
||||
StrCpy $PortableMode 1
|
||||
StrCpy $INSTDIR $InstDirPortable
|
||||
; Disable sections
|
||||
!insertmacro UnselectSection ${Section_Shortcuts}
|
||||
!insertmacro UnselectSection ${Section_AutoStart}
|
||||
!insertmacro UnselectSection ${Section_StartMenu}
|
||||
!insertmacro UnselectSection ${Section_Desktop}
|
||||
!insertmacro UnselectSection ${Section_QuickLaunch}
|
||||
SectionSetText ${Section_Shortcuts} ""
|
||||
SectionSetText ${Section_StartMenu} ""
|
||||
SectionSetText ${Section_Desktop} ""
|
||||
SectionSetText ${Section_QuickLaunch} ""
|
||||
SectionSetText ${Section_AutoStart} ""
|
||||
${EndIf}
|
||||
FunctionEnd
|
||||
|
||||
Function dir_leave
|
||||
${If} $PortableMode = 0
|
||||
StrCpy $DataDir "${DATADIR_NORMAL}"
|
||||
StrCpy $StyleSheetDir $DataDir
|
||||
${Else}
|
||||
StrCpy $DataDir "${DATADIR_PORTABLE}"
|
||||
StrCpy $StyleSheetDir $INSTDIR
|
||||
${EndIf}
|
||||
FunctionEnd
|
91
build_scripts/Windows-msys2/readme.md
Normal file
91
build_scripts/Windows-msys2/readme.md
Normal file
@ -0,0 +1,91 @@
|
||||
# Compilation on Windows
|
||||
|
||||
The preferred build method on Windows is by using MSYS2 which is a collection
|
||||
of packages providing unix-like tools to build native Windows software.
|
||||
|
||||
This guide contains information about how to setup your build environment in an automated way by scripts.
|
||||
If you prefer to setup your environment manually, check this guide:
|
||||
[WindowsMSys2_InstallGuide.md](WindowsMSys2_InstallGuide.md)
|
||||
|
||||
Setting up the build environment automatically on a 32 bit OS is not possible anymore.
|
||||
You can download an older 32 bit [MSYS2 installer](https://sourceforge.net/projects/msys2/files/Base/i686/msys2-base-i686-20180531.tar.xz/download) and follow the manual setup instructions.
|
||||
Building 32 bit RetroShare from the 64 bit build environment is still possible.
|
||||
|
||||
You have to clone this repository (with [git for windows](https://gitforwindows.org/)) to a local folder, then start it in a terminal.
|
||||
|
||||
|
||||
## Automatic building
|
||||
|
||||
Run the following script:
|
||||
|
||||
<sourcefolder>\build_scripts\Windows-msys2\build.bat
|
||||
|
||||
It will install all necessary tools to build RetrosShare, and build it with the default configuration.
|
||||
|
||||
After the script is finished, you can find the resulting .7z package here:
|
||||
|
||||
<sourcefolder>-msys2\deploy\
|
||||
|
||||
## Advanced building
|
||||
|
||||
You can specify extra build options if you use the scripts under:
|
||||
|
||||
<sourcefolder>\build_scripts\Windows-msys2\build\
|
||||
|
||||
You have to specify the build options after each command.
|
||||
|
||||
Run the scripts in this order:
|
||||
1. build.bat: builds RetroShare
|
||||
2. pack.bat: makes a .7z archive with all the needed files to run the program
|
||||
3. build-installer: makes a self extracting installer (optional)
|
||||
|
||||
### Build options
|
||||
|
||||
**Always delete the build artifacts folder if you enable or disable extra features after the build command: <sourcefolder>-msys2\deploy\builds**
|
||||
|
||||
* Mandatory
|
||||
* 32 or 64: 32 or 64 bit version
|
||||
* release or debug: normally you would like to use the release option
|
||||
* Extra features (optional)
|
||||
* autologin: enable autologin
|
||||
* plugins: build plugins
|
||||
* webui: enable remoting features and pack webui files
|
||||
* indexing: build with deep channel and file indexing support
|
||||
* tor: include tor in the package
|
||||
* "CONFIG+=..." enable other extra compile time features, you can find the almost complete list in file *<sourcefolder>\retroshare.pri*
|
||||
* For fixing compile problems (optional)
|
||||
* singlethread: use only 1 thread for building, slow but useful if you don't find the error message in the console
|
||||
* clang: use clang compiler instead of GCC
|
||||
* noupdate: skip the msys2 update step, sometimes some msys2 packages are broken, you can manually switch back to the older package, and this option will prevent updating to the broken version again
|
||||
|
||||
Example:
|
||||
|
||||
```batch
|
||||
build.bat 64 release autologin webui "CONFIG+=rs_use_native_dialogs" "CONFIG+=rs_gui_cmark"
|
||||
pack.bat 64 release autologin webui tor
|
||||
build-installer.bat 64 release autologin
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
* Run the command again, sometimes it works the second time, specially if it complains about *restbed* during building
|
||||
* Delete the build artifacts: *<sourcefolder>-msys2\deploy\builds*
|
||||
* Update msys2 manually:
|
||||
1. Open the terminal: *<sourcefolder>-msys2\msys2\msys64\msys2.exe*
|
||||
2. pacman -Sy
|
||||
3. pacman -Su
|
||||
4. Close the terminal
|
||||
5. Jump to 1. until it doesn't find more updates
|
||||
* Start with a clean path environment variable, run *<sourcefolder>\build_scripts\Windows-msys2\start-clean-env.bat*, you will get a terminal with cleaned path
|
||||
|
||||
### Errors during MSYS2 update
|
||||
MSYS2 developers recently introduced some breaking changes.
|
||||
If you get PGP related errors during updating the system from pacman, then follow [their guide](https://www.msys2.org/news/#2020-06-29-new-packagers) to resolve the problems.
|
||||
|
||||
## Updating webui
|
||||
|
||||
The scripts don't update the webui source code automatically once it is checked out.
|
||||
You have to do it manually with your favourite git client.
|
||||
|
||||
You can find the webui source code here:
|
||||
|
||||
<sourcefolder>-webui
|
7
build_scripts/Windows-msys2/start-clean-env.bat
Normal file
7
build_scripts/Windows-msys2/start-clean-env.bat
Normal file
@ -0,0 +1,7 @@
|
||||
setlocal
|
||||
|
||||
set path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0
|
||||
cd build\
|
||||
cmd
|
||||
|
||||
endlocal
|
@ -1,40 +1,22 @@
|
||||
:: Usage:
|
||||
:: call depends.bat [list^|missing] file
|
||||
:: call depends.bat file
|
||||
|
||||
if "%2"=="" (
|
||||
echo Usage: %~nx0 [list^|missing] File
|
||||
if "%1"=="" (
|
||||
echo Usage: %~nx0 File
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
setlocal
|
||||
pushd %~dp1
|
||||
|
||||
if not exist "%EnvDependsExe%" echo depends.exe not found in %EnvToolsPath%.& exit /B 1
|
||||
%EnvMSYS2Cmd% "ntldd --recursive $0 | cut -f1 -d"=" | awk '{$1=$1};1'" %~nx1 > %~sdp0depends.tmp
|
||||
|
||||
set CutPath=
|
||||
call "%ToolsPath%\find-in-path.bat" CutPath cut.exe
|
||||
if "%CutPath%"=="" echo cut.exe not found in PATH.& exit /B 1
|
||||
|
||||
start /wait "" "%EnvDependsExe%" /c /oc:"%~dp0depends.tmp" %2
|
||||
if "%1"=="missing" (
|
||||
cut.exe --delimiter=, --fields=1,2 "%~dp0depends.tmp" >"%~dp0depends1.tmp"
|
||||
for /F "tokens=1,2 delims=," %%A in (%~sdp0depends1.tmp) do (
|
||||
if "%%A"=="?" (
|
||||
echo %%~B
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
if "%1"=="list" (
|
||||
cut.exe --delimiter=, --fields=2 "%~dp0depends.tmp" >"%~dp0depends1.tmp"
|
||||
for /F "tokens=1 delims=," %%A in (%~sdp0depends1.tmp) do (
|
||||
if "%%A" NEQ "Module" (
|
||||
echo %%~A
|
||||
)
|
||||
)
|
||||
for /F %%A in (%~sdp0depends.tmp) do (
|
||||
echo %%~A
|
||||
)
|
||||
|
||||
if exist "%~dp0depends.tmp" del /Q "%~dp0depends.tmp"
|
||||
if exist "%~dp0depends1.tmp" del /Q "%~dp0depends1.tmp"
|
||||
|
||||
popd
|
||||
endlocal
|
||||
exit /B 0
|
@ -7,7 +7,6 @@ if "%~2"=="" (
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
::"%EnvCurlExe%" -L -k "%~1" -o "%~2"
|
||||
"%EnvWgetExe%" --no-check-certificate --continue "%~1" --output-document="%~2"
|
||||
powershell -NoLogo -NoProfile -Command (New-Object System.Net.WebClient).DownloadFile(\""%~1\"", \""%~2\"")
|
||||
|
||||
exit /B %ERRORLEVEL%
|
||||
|
@ -27,7 +27,7 @@ set VersionMinor=
|
||||
set VersionMini=
|
||||
set VersionExtra=
|
||||
|
||||
for /F "tokens=1,2,3,* delims=.-" %%A in ('%EnvToolsPath%\sigcheck.exe -nobanner -n %Executable%') do (
|
||||
for /F "USEBACKQ tokens=1,2,3,* delims=.-" %%A in (`powershell -NoLogo -NoProfile -Command ^(Get-Item "%Executable%"^).VersionInfo.FileVersion`) do (
|
||||
set VersionMajor=%%A
|
||||
set VersionMinor=%%B
|
||||
set VersionMini=%%C
|
||||
|
22
build_scripts/Windows-msys2/tools/webui.bat
Normal file
22
build_scripts/Windows-msys2/tools/webui.bat
Normal file
@ -0,0 +1,22 @@
|
||||
setlocal
|
||||
|
||||
echo.
|
||||
echo === webui
|
||||
echo.
|
||||
title Build webui
|
||||
|
||||
if not exist "%RsWebuiPath%" (
|
||||
echo Checking out webui source into %RsWebuiPath%
|
||||
if not "%ParamNoupdate%"=="1" (
|
||||
%EnvMSYS2Cmd% "pacman --noconfirm --needed -S git"
|
||||
)
|
||||
git clone https://github.com/RetroShare/RSNewWebUI.git "%RsWebuiPath%"
|
||||
) else (
|
||||
echo Webui source found at %RsWebuiPath%
|
||||
)
|
||||
|
||||
pushd "%RsWebuiPath%\webui-src\make-src"
|
||||
%EnvMSYS2Cmd% "sh build.sh"
|
||||
popd
|
||||
|
||||
endlocal
|
@ -1,584 +0,0 @@
|
||||
@if (@X) == (@Y) @end /* JScript comment
|
||||
@echo off
|
||||
|
||||
rem :: the first argument is the script name as it will be used for proper help message
|
||||
cscript //E:JScript //nologo "%~f0" "%~nx0" %*
|
||||
|
||||
exit /b %errorlevel%
|
||||
|
||||
@if (@X)==(@Y) @end JScript comment */
|
||||
|
||||
// used resources
|
||||
|
||||
// update 12.10.15
|
||||
// osvikvi(https://github.com/osvikvi) has nodited that the -password option is not set , so this is fixed
|
||||
|
||||
//https://msdn.microsoft.com/en-us/library/windows/desktop/aa384058(v=vs.85).aspx
|
||||
//https://msdn.microsoft.com/en-us/library/windows/desktop/aa384055(v=vs.85).aspx
|
||||
//https://msdn.microsoft.com/en-us/library/windows/desktop/aa384059(v=vs.85).aspx
|
||||
|
||||
// global variables and constants
|
||||
|
||||
|
||||
// ----------------------------------
|
||||
// -- asynch requests not included --
|
||||
// ----------------------------------
|
||||
|
||||
|
||||
//todo - save responceStream instead of responceBody !!
|
||||
//todo - set all winthttp options ->//https://msdn.microsoft.com/en-us/library/windows/desktop/aa384108(v=vs.85).aspx
|
||||
//todo - log all options
|
||||
//todo - improve help message . eventual verbose option
|
||||
|
||||
|
||||
var ARGS = WScript.Arguments;
|
||||
var scriptName = ARGS.Item(0);
|
||||
|
||||
var url = "";
|
||||
var saveTo = "";
|
||||
|
||||
var user = 0;
|
||||
var pass = 0;
|
||||
|
||||
var proxy = 0;
|
||||
var bypass = 0;
|
||||
var proxy_user = 0;
|
||||
var proxy_pass = 0;
|
||||
|
||||
var certificate = 0;
|
||||
|
||||
var force = true;
|
||||
|
||||
var body = "";
|
||||
|
||||
//ActiveX objects
|
||||
var WinHTTPObj = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
|
||||
var FileSystemObj = new ActiveXObject("Scripting.FileSystemObject");
|
||||
var AdoDBObj = new ActiveXObject("ADODB.Stream");
|
||||
|
||||
// HttpRequest SetCredentials flags.
|
||||
var proxy_settings = 0;
|
||||
|
||||
//
|
||||
HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0;
|
||||
HTTPREQUEST_SETCREDENTIALS_FOR_PROXY = 1;
|
||||
|
||||
//timeouts and their default values
|
||||
var RESOLVE_TIMEOUT = 0;
|
||||
var CONNECT_TIMEOUT = 90000;
|
||||
var SEND_TIMEOUT = 90000;
|
||||
var RECEIVE_TIMEOUT = 90000;
|
||||
|
||||
//HttpRequestMethod
|
||||
var http_method = 'GET';
|
||||
|
||||
//header
|
||||
var header_file = "";
|
||||
|
||||
//report
|
||||
var reportfile = "";
|
||||
|
||||
//test-this:
|
||||
var use_stream = false;
|
||||
|
||||
//autologon policy
|
||||
var autologon_policy = 1; //0,1,2
|
||||
|
||||
|
||||
//headers will be stored as multi-dimensional array
|
||||
var headers = [];
|
||||
|
||||
//user-agent
|
||||
var ua = "";
|
||||
|
||||
//escape URL
|
||||
var escape = false;
|
||||
|
||||
function printHelp() {
|
||||
WScript.Echo(scriptName + " - sends HTTP request and saves the request body as a file and/or a report of the sent request");
|
||||
WScript.Echo(scriptName + " url [-force yes|no] [-user username -password password] [-proxy proxyserver:port] [-bypass bypass_list]");
|
||||
WScript.Echo(" [-proxyuser proxy_username -proxypassword proxy_password] [-certificate certificateString]");
|
||||
WScript.Echo(" [-method GET|POST|PATCH|DELETE|HEAD|OPTIONS|CONNECT]");
|
||||
WScript.Echo(" [-saveTo file] - to print response to console use con");
|
||||
|
||||
WScript.Echo(" [-sendTimeout int(milliseconds)]");
|
||||
WScript.Echo(" [-resolveTimeout int(milliseconds)]");
|
||||
WScript.Echo(" [-connectTimeout int(milliseconds)]");
|
||||
WScript.Echo(" [-receiveTimeout int(milliseconds)]");
|
||||
|
||||
WScript.Echo(" [-autologonPolicy 1|2|3]");
|
||||
WScript.Echo(" [-proxySettings 1|2|3] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa384059(v=vs.85).aspx)");
|
||||
|
||||
//header
|
||||
WScript.Echo(" [-headers-file header_file]");
|
||||
//reportfile
|
||||
WScript.Echo(" [-reportfile reportfile]");
|
||||
WScript.Echo(" [-ua user-agent]");
|
||||
WScript.Echo(" [-ua-file user-agent-file]");
|
||||
|
||||
WScript.Echo(" [-escape yes|no]");
|
||||
|
||||
WScript.Echo(" [-body body-string]");
|
||||
WScript.Echo(" [-body-file body-file]");
|
||||
|
||||
WScript.Echo("-force - decide to not or to overwrite if the local files exists");
|
||||
|
||||
WScript.Echo("proxyserver:port - the proxy server");
|
||||
WScript.Echo("bypass- bypass list");
|
||||
WScript.Echo("proxy_user , proxy_password - credentials for proxy server");
|
||||
WScript.Echo("user , password - credentials for the server");
|
||||
WScript.Echo("certificate - location of SSL certificate");
|
||||
WScript.Echo("method - what HTTP method will be used.Default is GET");
|
||||
WScript.Echo("saveTo - save the responce as binary file");
|
||||
WScript.Echo(" ");
|
||||
WScript.Echo("Header file should contain key:value pairs.Lines starting with \"#\" will be ignored.");
|
||||
WScript.Echo("value should NOT be enclosed with quotes");
|
||||
WScript.Echo(" ");
|
||||
WScript.Echo("Examples:");
|
||||
|
||||
WScript.Echo(scriptName + " http://somelink.com/somefile.zip -saveTo c:\\somefile.zip -certificate \"LOCAL_MACHINE\\Personal\\My Middle-Tier Certificate\"");
|
||||
WScript.Echo(scriptName + " http://somelink.com/something.html -method POST -certificate \"LOCAL_MACHINE\\Personal\\My Middle-Tier Certificate\" -header c:\\header_file -reportfile c:\\reportfile.txt");
|
||||
WScript.Echo(scriptName + "\"http://somelink\" -method POST -header hdrs.txt -reportfile reportfile2.txt -saveTo responsefile2 -ua \"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36\" -body-file some.json");
|
||||
|
||||
}
|
||||
|
||||
function parseArgs() {
|
||||
//
|
||||
if (ARGS.Length < 2) {
|
||||
WScript.Echo("insufficient arguments");
|
||||
printHelp();
|
||||
WScript.Quit(43);
|
||||
}
|
||||
// !!!
|
||||
url = ARGS.Item(1);
|
||||
// !!!
|
||||
if (ARGS.Length % 2 != 0) {
|
||||
WScript.Echo("illegal arguments");
|
||||
printHelp();
|
||||
WScript.Quit(44);
|
||||
}
|
||||
|
||||
for (var i = 2; i < ARGS.Length - 1; i = i + 2) {
|
||||
var arg = ARGS.Item(i).toLowerCase();
|
||||
var next = ARGS.Item(i + 1);
|
||||
|
||||
|
||||
try {
|
||||
switch (arg) { // the try-catch is set mainly because of the parseInts
|
||||
case "-force":
|
||||
if (next == "no") {
|
||||
force = false;
|
||||
}
|
||||
break;
|
||||
case "-escape":
|
||||
if (next == "yes") {
|
||||
escape = true;
|
||||
}
|
||||
break;
|
||||
case "-saveto":
|
||||
saveTo = next;
|
||||
break;
|
||||
case "-user":
|
||||
case "-u":
|
||||
user = next;
|
||||
break;
|
||||
case "-pass":
|
||||
case "-password":
|
||||
case "-p":
|
||||
pass = next;
|
||||
break;
|
||||
case "-proxy":
|
||||
proxy = next;
|
||||
break;
|
||||
case "-bypass":
|
||||
bypass = next;
|
||||
break;
|
||||
case "-proxyuser":
|
||||
case "-pu":
|
||||
proxy_user = next;
|
||||
break;
|
||||
case "-proxypassword":
|
||||
case "-pp":
|
||||
proxy_pass = next;
|
||||
break;
|
||||
case "-ua":
|
||||
ua = next;
|
||||
break;
|
||||
case "-ua-file":
|
||||
ua = readFile(next);
|
||||
break;
|
||||
case "-body":
|
||||
body = next;
|
||||
break;
|
||||
case "-usestream":
|
||||
//WScript.Echo("~~");
|
||||
if (next.toLowerCase() === "yes") {
|
||||
use_stream = true
|
||||
};
|
||||
break;
|
||||
case "-body-file":
|
||||
body = readFile(next);
|
||||
break;
|
||||
case "-certificate":
|
||||
certificate = next;
|
||||
break;
|
||||
case "-method":
|
||||
switch (next.toLowerCase()) {
|
||||
case "post":
|
||||
http_method = 'POST';
|
||||
break;
|
||||
case "get":
|
||||
http_method = 'GET';
|
||||
break;
|
||||
case "head":
|
||||
http_method = 'HEAD';
|
||||
break;
|
||||
case "put":
|
||||
http_method = 'PUT';
|
||||
break;
|
||||
case "options":
|
||||
http_method = 'OPTIONS';
|
||||
break;
|
||||
case "connect":
|
||||
http_method = 'CONNECT';
|
||||
break;
|
||||
case "patch":
|
||||
http_method = 'PATCH';
|
||||
break;
|
||||
case "delete":
|
||||
http_method = 'DELETE';
|
||||
break;
|
||||
default:
|
||||
WScript.Echo("Invalid http method passed " + next);
|
||||
WScript.Echo("possible values are GET,POST,DELETE,PUT,CONNECT,PATCH,HEAD,OPTIONS");
|
||||
WScript.Quit(1326);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "-headers-file":
|
||||
case "-header":
|
||||
headers = readPropFile(next);
|
||||
break;
|
||||
case "-reportfile":
|
||||
reportfile = next;
|
||||
break;
|
||||
//timeouts
|
||||
case "-sendtimeout":
|
||||
SEND_TIMEOUT = parseInt(next);
|
||||
break;
|
||||
case "-connecttimeout":
|
||||
CONNECT_TIMEOUT = parseint(next);
|
||||
break;
|
||||
case "-resolvetimeout":
|
||||
RESOLVE_TIMEOUT = parseInt(next);
|
||||
break;
|
||||
case "-receivetimeout":
|
||||
RECEIVE_TIMEOUT = parseInt(next);
|
||||
break;
|
||||
|
||||
case "-autologonpolicy":
|
||||
autologon_policy = parseInt(next);
|
||||
if (autologon_policy > 2 || autologon_policy < 0) {
|
||||
WScript.Echo("out of autologon policy range");
|
||||
WScript.Quit(87);
|
||||
};
|
||||
break;
|
||||
case "-proxysettings":
|
||||
proxy_settings = parseInt(next);
|
||||
if (proxy_settings > 2 || proxy_settings < 0) {
|
||||
WScript.Echo("out of proxy settings range");
|
||||
WScript.Quit(87);
|
||||
};
|
||||
break;
|
||||
default:
|
||||
WScript.Echo("Invalid command line switch: " + arg);
|
||||
WScript.Quit(1405);
|
||||
break;
|
||||
}
|
||||
} catch (err) {
|
||||
WScript.Echo(err.message);
|
||||
WScript.Quit(1348);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stripTrailingSlash = function(path) {
|
||||
while (path.substr(path.length - 1, path.length) == '\\') {
|
||||
path = path.substr(0, path.length - 1);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
function existsItem(path) {
|
||||
return FileSystemObj.FolderExists(path) || FileSystemObj.FileExists(path);
|
||||
}
|
||||
|
||||
function deleteItem(path) {
|
||||
if (FileSystemObj.FileExists(path)) {
|
||||
FileSystemObj.DeleteFile(path);
|
||||
return true;
|
||||
} else if (FileSystemObj.FolderExists(path)) {
|
||||
FileSystemObj.DeleteFolder(stripTrailingSlash(path));
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------
|
||||
//----------------------
|
||||
//----------
|
||||
//-----
|
||||
//--
|
||||
function request(url) {
|
||||
|
||||
try {
|
||||
|
||||
WinHTTPObj.Open(http_method, url, false);
|
||||
if (proxy != 0 && bypass != 0) {
|
||||
WinHTTPObj.SetProxy(proxy_settings, proxy, bypass);
|
||||
}
|
||||
|
||||
if (proxy != 0) {
|
||||
WinHTTPObj.SetProxy(proxy_settings, proxy);
|
||||
}
|
||||
|
||||
if (user != 0 && pass != 0) {
|
||||
WinHTTPObj.SetCredentials(user, pass, HTTPREQUEST_SETCREDENTIALS_FOR_SERVER);
|
||||
}
|
||||
|
||||
if (proxy_user != 0 && proxy_pass != 0) {
|
||||
WinHTTPObj.SetCredentials(proxy_user, proxy_pass, HTTPREQUEST_SETCREDENTIALS_FOR_PROXY);
|
||||
}
|
||||
|
||||
if (certificate != 0) {
|
||||
WinHTTPObj.SetClientCertificate(certificate);
|
||||
}
|
||||
|
||||
//set autologin policy
|
||||
WinHTTPObj.SetAutoLogonPolicy(autologon_policy);
|
||||
//set timeouts
|
||||
WinHTTPObj.SetTimeouts(RESOLVE_TIMEOUT, CONNECT_TIMEOUT, SEND_TIMEOUT, RECEIVE_TIMEOUT);
|
||||
|
||||
if (headers.length !== 0) {
|
||||
WScript.Echo("Sending with headers:");
|
||||
for (var i = 0; i < headers.length; i++) {
|
||||
WinHTTPObj.SetRequestHeader(headers[i][0], headers[i][1]);
|
||||
WScript.Echo(headers[i][0] + ":" + headers[i][1]);
|
||||
}
|
||||
WScript.Echo("");
|
||||
}
|
||||
|
||||
if (ua !== "") {
|
||||
//user-agent option from:
|
||||
//WinHttpRequestOption enumeration
|
||||
// other options can be added like bellow
|
||||
//https://msdn.microsoft.com/en-us/library/windows/desktop/aa384108(v=vs.85).aspx
|
||||
WinHTTPObj.Option(0) = ua;
|
||||
}
|
||||
if (escape) {
|
||||
WinHTTPObj.Option(3) = true;
|
||||
}
|
||||
if (trim(body) === "") {
|
||||
WinHTTPObj.Send();
|
||||
} else {
|
||||
WinHTTPObj.Send(body);
|
||||
}
|
||||
|
||||
var status = WinHTTPObj.Status
|
||||
} catch (err) {
|
||||
WScript.Echo(err.message);
|
||||
WScript.Quit(666);
|
||||
}
|
||||
|
||||
////////////////////////
|
||||
// report //
|
||||
////////////////////////
|
||||
|
||||
if (reportfile != "") {
|
||||
|
||||
//var report_string="";
|
||||
var n = "\r\n";
|
||||
var report_string = "Status:" + n;
|
||||
report_string = report_string + " " + WinHTTPObj.Status;
|
||||
report_string = report_string + " " + WinHTTPObj.StatusText + n;
|
||||
report_string = report_string + " " + n;
|
||||
report_string = report_string + "Response:" + n;
|
||||
report_string = report_string + WinHTTPObj.ResponseText + n;
|
||||
report_string = report_string + " " + n;
|
||||
report_string = report_string + "Headers:" + n;
|
||||
report_string = report_string + WinHTTPObj.GetAllResponseHeaders() + n;
|
||||
|
||||
WinHttpRequestOption_UserAgentString = 0; // Name of the user agent
|
||||
WinHttpRequestOption_URL = 1; // Current URL
|
||||
WinHttpRequestOption_URLCodePage = 2; // Code page
|
||||
WinHttpRequestOption_EscapePercentInURL = 3; // Convert percents
|
||||
// in the URL
|
||||
// rest of the options can be seen and eventually added using this as reference
|
||||
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa384108(v=vs.85).aspx
|
||||
|
||||
report_string = report_string + "URL:" + n;
|
||||
report_string = report_string + WinHTTPObj.Option(WinHttpRequestOption_URL) + n;
|
||||
|
||||
report_string = report_string + "URL Code Page:" + n;
|
||||
report_string = report_string + WinHTTPObj.Option(WinHttpRequestOption_URLCodePage) + n;
|
||||
|
||||
report_string = report_string + "User Agent:" + n;
|
||||
report_string = report_string + WinHTTPObj.Option(WinHttpRequestOption_UserAgentString) + n;
|
||||
|
||||
report_string = report_string + "Escapped URL:" + n;
|
||||
report_string = report_string + WinHTTPObj.Option(WinHttpRequestOption_EscapePercentInURL) + n;
|
||||
|
||||
prepareateFile(force, reportfile);
|
||||
|
||||
WScript.Echo("Writing report to " + reportfile);
|
||||
|
||||
writeFile(reportfile, report_string);
|
||||
|
||||
}
|
||||
|
||||
switch (status) {
|
||||
case 200:
|
||||
WScript.Echo("Status: 200 OK");
|
||||
break;
|
||||
default:
|
||||
WScript.Echo("Status: " + status);
|
||||
WScript.Echo("Status was not OK. More info -> https://en.wikipedia.org/wiki/List_of_HTTP_status_codes");
|
||||
}
|
||||
|
||||
//if as binary
|
||||
if (saveTo.toLowerCase() === "con") {
|
||||
WScript.Echo(WinHTTPObj.ResponseText);
|
||||
}
|
||||
if (saveTo !== "" && saveTo.toLowerCase() !== "con") {
|
||||
prepareateFile(force, saveTo);
|
||||
try {
|
||||
|
||||
if (use_stream) {
|
||||
writeBinFile(saveTo, WinHTTPObj.ResponseStream);
|
||||
} else {
|
||||
writeBinFile(saveTo, WinHTTPObj.ResponseBody);
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
WScript.Echo("Failed to save the file as binary.Attempt to save it as text");
|
||||
AdoDBObj.Close();
|
||||
prepareateFile(true, saveTo);
|
||||
writeFile(saveTo, WinHTTPObj.ResponseText);
|
||||
}
|
||||
}
|
||||
WScript.Quit(status);
|
||||
}
|
||||
|
||||
//--
|
||||
//-----
|
||||
//----------
|
||||
//----------------------
|
||||
//-------------------------------
|
||||
|
||||
function prepareateFile(force, file) {
|
||||
if (force && existsItem(file)) {
|
||||
if (!deleteItem(file)) {
|
||||
WScript.Echo("Unable to delete " + file);
|
||||
WScript.Quit(8);
|
||||
}
|
||||
} else if (existsItem(file)) {
|
||||
WScript.Echo("Item " + file + " already exist");
|
||||
WScript.Quit(9);
|
||||
}
|
||||
}
|
||||
|
||||
function writeBinFile(fileName, data) {
|
||||
AdoDBObj.Type = 1;
|
||||
AdoDBObj.Open();
|
||||
AdoDBObj.Position = 0;
|
||||
AdoDBObj.Write(data);
|
||||
AdoDBObj.SaveToFile(fileName, 2);
|
||||
AdoDBObj.Close();
|
||||
}
|
||||
|
||||
function writeFile(fileName, data) {
|
||||
AdoDBObj.Type = 2;
|
||||
AdoDBObj.CharSet = "iso-8859-1";
|
||||
AdoDBObj.Open();
|
||||
AdoDBObj.Position = 0;
|
||||
AdoDBObj.WriteText(data);
|
||||
AdoDBObj.SaveToFile(fileName, 2);
|
||||
AdoDBObj.Close();
|
||||
}
|
||||
|
||||
|
||||
function readFile(fileName) {
|
||||
//check existence
|
||||
try {
|
||||
if (!FileSystemObj.FileExists(fileName)) {
|
||||
WScript.Echo("file " + fileName + " does not exist!");
|
||||
WScript.Quit(13);
|
||||
}
|
||||
if (FileSystemObj.GetFile(fileName).Size === 0) {
|
||||
return "";
|
||||
}
|
||||
var fileR = FileSystemObj.OpenTextFile(fileName, 1);
|
||||
var content = fileR.ReadAll();
|
||||
fileR.Close();
|
||||
return content;
|
||||
} catch (err) {
|
||||
WScript.Echo("Error while reading file: " + fileName);
|
||||
WScript.Echo(err.message);
|
||||
WScript.Echo("Will return empty string");
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
function readPropFile(fileName) {
|
||||
//check existence
|
||||
resultArray = [];
|
||||
if (!FileSystemObj.FileExists(fileName)) {
|
||||
WScript.Echo("(headers)file " + fileName + " does not exist!");
|
||||
WScript.Quit(15);
|
||||
}
|
||||
if (FileSystemObj.GetFile(fileName).Size === 0) {
|
||||
return resultArray;
|
||||
}
|
||||
var fileR = FileSystemObj.OpenTextFile(fileName, 1);
|
||||
var line = "";
|
||||
var k = "";
|
||||
var v = "";
|
||||
var lineN = 0;
|
||||
var index = 0;
|
||||
try {
|
||||
WScript.Echo("parsing headers form " + fileName + " property file ");
|
||||
while (!fileR.AtEndOfStream) {
|
||||
line = fileR.ReadLine();
|
||||
lineN++;
|
||||
index = line.indexOf(":");
|
||||
if (line.indexOf("#") === 0 || trim(line) === "") {
|
||||
continue;
|
||||
}
|
||||
if (index === -1 || index === line.length - 1 || index === 0) {
|
||||
WScript.Echo("Invalid line " + lineN);
|
||||
WScript.Quit(93);
|
||||
}
|
||||
k = trim(line.substring(0, index));
|
||||
v = trim(line.substring(index + 1, line.length));
|
||||
resultArray.push([k, v]);
|
||||
}
|
||||
fileR.Close();
|
||||
return resultArray;
|
||||
} catch (err) {
|
||||
WScript.Echo("Error while reading headers file: " + fileName);
|
||||
WScript.Echo(err.message);
|
||||
WScript.Echo("Will return empty array");
|
||||
return resultArray;
|
||||
}
|
||||
}
|
||||
|
||||
function trim(str) {
|
||||
return str.replace(/^\s+/, '').replace(/\s+$/, '');
|
||||
}
|
||||
|
||||
function main() {
|
||||
parseArgs();
|
||||
request(url);
|
||||
}
|
||||
main();
|
21
build_scripts/Windows/build-libs/Makefile
Executable file → Normal file
21
build_scripts/Windows/build-libs/Makefile
Executable file → Normal file
@ -1,15 +1,15 @@
|
||||
ZLIB_VERSION=1.2.3
|
||||
BZIP2_VERSION=1.0.6
|
||||
MINIUPNPC_VERSION=2.0
|
||||
OPENSSL_VERSION=1.0.2n
|
||||
OPENSSL_VERSION=1.1.1g
|
||||
SPEEX_VERSION=1.2.0
|
||||
SPEEXDSP_VERSION=1.2rc3
|
||||
OPENCV_VERSION=3.4.1
|
||||
OPENCV_VERSION=3.4.11
|
||||
LIBXML2_VERSION=2.9.7
|
||||
LIBXSLT_VERSION=1.1.32
|
||||
CURL_VERSION=7.58.0
|
||||
TCL_VERSION=8.6.2
|
||||
SQLCIPHER_VERSION=2.2.1
|
||||
TCL_VERSION=8.6.10
|
||||
SQLCIPHER_VERSION=4.4.0
|
||||
LIBMICROHTTPD_VERSION=0.9.59
|
||||
FFMPEG_VERSION=3.4
|
||||
RAPIDJSON_VERSION=1.1.0
|
||||
@ -74,7 +74,7 @@ $(BUILD_PATH)/zlib-$(ZLIB_VERSION): $(DOWNLOAD_PATH)/zlib-$(ZLIB_VERSION).tar.gz
|
||||
bzip2: $(BUILD_PATH)/bzip2-$(BZIP2_VERSION)
|
||||
|
||||
$(DOWNLOAD_PATH)/bzip2-$(BZIP2_VERSION).tar.gz:
|
||||
wget http://bzip.org/$(BZIP2_VERSION)/bzip2-$(BZIP2_VERSION).tar.gz -O $(DOWNLOAD_PATH)/bzip2-$(BZIP2_VERSION).tar.gz
|
||||
wget https://sourceforge.net/projects/bzip2/files/bzip2-$(BZIP2_VERSION).tar.gz/download -O $(DOWNLOAD_PATH)/bzip2-$(BZIP2_VERSION).tar.gz
|
||||
|
||||
$(BUILD_PATH)/bzip2-$(BZIP2_VERSION): $(DOWNLOAD_PATH)/bzip2-$(BZIP2_VERSION).tar.gz
|
||||
# prepare
|
||||
@ -102,7 +102,7 @@ $(BUILD_PATH)/miniupnpc-$(MINIUPNPC_VERSION): $(DOWNLOAD_PATH)/miniupnpc-$(MINIU
|
||||
rm -r -f $(BUILD_PATH)/miniupnpc-*
|
||||
tar xvf $(DOWNLOAD_PATH)/miniupnpc-$(MINIUPNPC_VERSION).tar.gz
|
||||
# build
|
||||
cd miniupnpc-$(MINIUPNPC_VERSION) && export CC=gcc && make -f Makefile.mingw init libminiupnpc.a miniupnpc.dll
|
||||
cd miniupnpc-$(MINIUPNPC_VERSION) && export CC=gcc && export PATH=.:$$PATH && make -f Makefile.mingw init libminiupnpc.a miniupnpc.dll
|
||||
# copy files
|
||||
mkdir -p $(BUILD_PATH)/miniupnpc-$(MINIUPNPC_VERSION).tmp/include/miniupnpc
|
||||
cp miniupnpc-$(MINIUPNPC_VERSION)/*.h $(BUILD_PATH)/miniupnpc-$(MINIUPNPC_VERSION).tmp/include/miniupnpc/
|
||||
@ -132,8 +132,11 @@ $(BUILD_PATH)/openssl-$(OPENSSL_VERSION): $(DOWNLOAD_PATH)/openssl-$(OPENSSL_VER
|
||||
mkdir -p $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/include/openssl
|
||||
cp openssl-$(OPENSSL_VERSION)/include/openssl/*.h $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/include/openssl/
|
||||
mkdir -p $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/bin
|
||||
cp openssl-$(OPENSSL_VERSION)/libeay32.dll $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/bin/
|
||||
cp openssl-$(OPENSSL_VERSION)/ssleay32.dll $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/bin/
|
||||
if [ $(MSYSTEM) = "MINGW32" ] ; then cp openssl-$(OPENSSL_VERSION)/libcrypto-1_1.dll $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/bin/ ; fi
|
||||
if [ $(MSYSTEM) = "MINGW32" ] ; then cp openssl-$(OPENSSL_VERSION)/libcrypto-1_1.dll $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/bin/ ; fi
|
||||
if [ $(MSYSTEM) = "MINGW32" ] ; then cp openssl-$(OPENSSL_VERSION)/libssl-1_1.dll $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/bin/ ; fi
|
||||
if [ $(MSYSTEM) = "MINGW64" ] ; then cp openssl-$(OPENSSL_VERSION)/libcrypto-1_1-x64.dll $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/bin/ ; fi
|
||||
if [ $(MSYSTEM) = "MINGW64" ] ; then cp openssl-$(OPENSSL_VERSION)/libssl-1_1-x64.dll $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/bin/ ; fi
|
||||
mkdir -p $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/lib
|
||||
cp openssl-$(OPENSSL_VERSION)/libcrypto.dll.a $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/lib/
|
||||
cp openssl-$(OPENSSL_VERSION)/libssl.dll.a $(BUILD_PATH)/openssl-$(OPENSSL_VERSION).tmp/lib/
|
||||
@ -202,7 +205,7 @@ $(BUILD_PATH)/opencv-$(OPENCV_VERSION): $(DOWNLOAD_PATH)/opencv-$(OPENCV_VERSION
|
||||
mkdir -p $(BUILD_PATH)/opencv-$(OPENCV_VERSION).tmp/include
|
||||
cp -r opencv-$(OPENCV_VERSION)/build/install/include/* $(BUILD_PATH)/opencv-$(OPENCV_VERSION).tmp/include/
|
||||
mkdir -p $(BUILD_PATH)/opencv-$(OPENCV_VERSION).tmp/lib/opencv
|
||||
cp -r opencv-$(OPENCV_VERSION)/build/install/x86/mingw/staticlib/* $(BUILD_PATH)/opencv-$(OPENCV_VERSION).tmp/lib/opencv/
|
||||
cp -r opencv-$(OPENCV_VERSION)/build/install/x64/mingw/staticlib/* $(BUILD_PATH)/opencv-$(OPENCV_VERSION).tmp/lib/opencv/
|
||||
# cleanup
|
||||
rm -r -f opencv-$(OPENCV_VERSION)
|
||||
mv $(BUILD_PATH)/opencv-$(OPENCV_VERSION).tmp $(BUILD_PATH)/opencv-$(OPENCV_VERSION)
|
||||
|
@ -6,7 +6,7 @@
|
||||
setlocal
|
||||
|
||||
:: Parameter
|
||||
set MakeParam="DOWNLOAD_PATH=../download"
|
||||
set MakeParam="DOWNLOAD_PATH=../../download"
|
||||
|
||||
set MakeTask=
|
||||
:param_loop
|
||||
@ -19,25 +19,29 @@ if "%~1" NEQ "" (
|
||||
:: Initialize environment
|
||||
call "%~dp0..\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env-msys.bat"
|
||||
call "%EnvPath%\env-msys2.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
:: Check MSYS environment
|
||||
if not exist "%EnvMSYSSH%" %cecho% error "Please install MSYS first." & exit /B 1
|
||||
if not exist "%EnvMSYS2SH%" %cecho% error "Please install MSYS2 first." & exit /B 1
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
:: Add tools path to PATH environment
|
||||
set PATH=%EnvToolsPath%;%PATH%
|
||||
|
||||
call "%ToolsPath%\msys-path.bat" "%~dp0" MSYSCurPath
|
||||
call "%ToolsPath%\msys-path.bat" "%BuildLibsPath%" MSYSBuildLibsPath
|
||||
call "%ToolsPath%\msys2-path.bat" "%~dp0" MSYS2CurPath
|
||||
call "%ToolsPath%\msys2-path.bat" "%BuildLibsPath%" MSYS2BuildLibsPath
|
||||
|
||||
if not exist "%BuildLibsPath%" mkdir "%BuildLibsPath%"
|
||||
|
||||
%EnvMSYSCmd% "cd "%MSYSBuildLibsPath%" && make -f %MSYSCurPath%/makefile %MakeParam% %MakeTask%"
|
||||
set MSYSTEM=MINGW%MSYS2Base%
|
||||
set MSYS2_PATH_TYPE=inherit
|
||||
|
||||
%EnvMSYS2Cmd% "pacman --needed --noconfirm -S diffutils perl tar make wget mingw-w64-%MSYS2Architecture%-make"
|
||||
::mingw-w64-%MSYS2Architecture%-cmake
|
||||
::%EnvMSYS2Cmd% "pacman --noconfirm -Rd --nodeps mingw-w64-%MSYS2Architecture%-zlib"
|
||||
|
||||
%EnvMSYS2Cmd% "cd "%MSYS2BuildLibsPath%" && make -f %MSYS2CurPath%/makefile %MakeParam% %MakeTask%"
|
||||
|
||||
exit /B %ERRORLEVEL%
|
||||
|
||||
|
@ -4,9 +4,10 @@ call "%ToolsPath%\find-in-path.bat" MinGWPath gcc.exe
|
||||
if "%MinGWPath%"=="" %cecho% error "Please run command in the Qt Command Prompt or add the path to MinGW bin folder to PATH variable." & exit /B 1
|
||||
|
||||
:: Get gcc versions
|
||||
call "%ToolsPath%\get-gcc-version.bat" GCCVersion
|
||||
call "%ToolsPath%\get-gcc-version.bat" GCCVersion GCCArchitecture
|
||||
if "%GCCVersion%"=="" %cecho% error "Cannot get gcc version." & exit /B 1
|
||||
if "%GCCArchitecture%"=="" %cecho% error "Cannot get gcc architecture." & exit /B 1
|
||||
|
||||
set BuildLibsPath=%EnvRootPath%\build-libs\gcc-%GCCVersion%
|
||||
set BuildLibsPath=%EnvRootPath%\build-libs\gcc-%GCCVersion%\%GCCArchitecture%
|
||||
|
||||
exit /B 0
|
||||
|
@ -1,27 +0,0 @@
|
||||
@echo off
|
||||
|
||||
setlocal
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
%cecho% info "Build libraries"
|
||||
call "%~dp0build-libs\build-libs.bat"
|
||||
if errorlevel 1 %cecho% error "Failed to build libraries." & exit /B %ERRORLEVEL%
|
||||
|
||||
%cecho% info "Build %SourceName%"
|
||||
call "%~dp0build\build.bat" release tor autologin plugins
|
||||
if errorlevel 1 %cecho% error "Failed to build %SourceName%." & exit /B %ERRORLEVEL%
|
||||
|
||||
%cecho% info "Pack %SourceName%"
|
||||
call "%~dp0build\pack.bat" release tor
|
||||
if errorlevel 1 %cecho% error "Failed to pack %SourceName%." & exit /B %ERRORLEVEL%
|
||||
|
||||
exit /B 0
|
||||
|
||||
:error_env
|
||||
echo Failed to initialize environment.
|
||||
exit /B 1
|
@ -13,7 +13,8 @@ call "%~dp0build-libs\build-libs.bat"
|
||||
if errorlevel 1 %cecho% error "Failed to build libraries." & exit /B %ERRORLEVEL%
|
||||
|
||||
%cecho% info "Build %SourceName%"
|
||||
call "%~dp0build\build.bat" release autologin plugins
|
||||
call "%~dp0build\build.bat" release autologin jsonapi
|
||||
rem plugins
|
||||
if errorlevel 1 %cecho% error "Failed to build %SourceName%." & exit /B %ERRORLEVEL%
|
||||
|
||||
%cecho% info "Pack %SourceName%"
|
||||
|
@ -21,6 +21,12 @@ if not exist "%BuildLibsPath%\libs\gcc-version" %cecho% error "Cannot get gcc ve
|
||||
set /P LibsGCCVersion=<"%BuildLibsPath%\libs\gcc-version"
|
||||
if "%LibsGCCVersion%" NEQ "%GCCVersion%" %cecho% error "Please use correct version of external libraries. (gcc %GCCVersion% ^<^> libs %LibsGCCVersion%)." & exit /B 1
|
||||
|
||||
:: Get date
|
||||
call "%ToolsPath%\get-rs-date.bat" "%SourcePath%" RsDate
|
||||
if errorlevel 1 %cecho% error "Could not get date."& goto error
|
||||
|
||||
if "%RsDate%"=="" %cecho% error "Could not get date."& goto error
|
||||
|
||||
:: Build defines for script
|
||||
set NSIS_PARAM=
|
||||
|
||||
@ -30,6 +36,10 @@ set NSIS_PARAM=%NSIS_PARAM% /DMINGWDIR="%MinGWPath%\.."
|
||||
set NSIS_PARAM=%NSIS_PARAM% /DOUTDIR="%RsPackPath%"
|
||||
set NSIS_PARAM=%NSIS_PARAM% /DINSTALLERADD="%RsArchiveAdd%"
|
||||
set NSIS_PARAM=%NSIS_PARAM% /DEXTERNAL_LIB_DIR="%BuildLibsPath%\libs"
|
||||
set NSIS_PARAM=%NSIS_PARAM% /DARCHITECTURE="%GCCArchitecture%"
|
||||
set NSIS_PARAM=%NSIS_PARAM% /DDATE="%RsDate%"
|
||||
|
||||
if exist "%EnvTorPath%\Tor\tor.exe" set NSIS_PARAM=%NSIS_PARAM% /DTORDIR="%EnvTorPath%\Tor"
|
||||
|
||||
:: Get compiled version
|
||||
call "%ToolsPath%\get-rs-version.bat" "%RsBuildPath%\retroshare-gui\src\%RsBuildConfig%\retroshare.exe" RsVersion
|
||||
|
@ -50,8 +50,8 @@ echo.
|
||||
title Build - %SourceName%-%RsBuildConfig% [qmake]
|
||||
|
||||
set RS_QMAKE_CONFIG=%RsBuildConfig%
|
||||
if "%ParamVersion%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% version_detail_bash_script
|
||||
if "%ParamAutologin%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% rs_autologin
|
||||
if "%ParamJsonApi%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% rs_jsonapi
|
||||
if "%ParamPlugins%"=="1" set RS_QMAKE_CONFIG=%RS_QMAKE_CONFIG% retroshare_plugins
|
||||
|
||||
qmake "%SourcePath%\RetroShare.pro" -r -spec win32-g++ "CONFIG+=%RS_QMAKE_CONFIG%" "EXTERNAL_LIB_DIR=%BuildLibsPath%\libs"
|
||||
@ -63,11 +63,15 @@ echo.
|
||||
|
||||
title Build - %SourceName%-%RsBuildConfig% [make]
|
||||
|
||||
if exist "%EnvJomExe%" (
|
||||
"%EnvJomExe%"
|
||||
) else (
|
||||
mingw32-make
|
||||
)
|
||||
mingw32-make -j %CoreCount%
|
||||
if errorlevel 1 goto error
|
||||
|
||||
echo.
|
||||
echo === Changelog
|
||||
echo.
|
||||
|
||||
title Build - %SourceName%-%RsBuildConfig% [changelog]
|
||||
call "%ToolsPath%\generate-changelog.bat" "%SourcePath%" "%RsBuildPath%\changelog.txt"
|
||||
|
||||
:error
|
||||
popd
|
||||
|
@ -3,7 +3,10 @@ set ParamRelease=0
|
||||
set ParamDebug=0
|
||||
set ParamAutologin=0
|
||||
set ParamPlugins=0
|
||||
set ParamJsonApi=0
|
||||
set ParamTor=0
|
||||
set NonInteractive=0
|
||||
set CoreCount=%NUMBER_OF_PROCESSORS%
|
||||
|
||||
:parameter_loop
|
||||
if "%~1" NEQ "" (
|
||||
@ -14,10 +17,16 @@ if "%~1" NEQ "" (
|
||||
set ParamDebug=1
|
||||
) else if "%%~a"=="autologin" (
|
||||
set ParamAutologin=1
|
||||
) else if "%%~a"=="jsonapi" (
|
||||
set ParamJsonApi=1
|
||||
) else if "%%~a"=="plugins" (
|
||||
set ParamPlugins=1
|
||||
) else if "%%~a"=="tor" (
|
||||
set ParamTor=1
|
||||
) else if "%%~a"=="non-interactive" (
|
||||
set NonInteractive=1
|
||||
) else if "%%~a"=="singlethread" (
|
||||
set CoreCount=1
|
||||
) else (
|
||||
echo.
|
||||
echo Unknown parameter %1
|
||||
@ -67,13 +76,14 @@ call "%ToolsPath%\get-qt-version.bat" QtVersion
|
||||
if "%QtVersion%"=="" %cecho% error "Cannot get Qt version." & exit /B 1
|
||||
|
||||
:: Get gcc versions
|
||||
call "%ToolsPath%\get-gcc-version.bat" GCCVersion
|
||||
call "%ToolsPath%\get-gcc-version.bat" GCCVersion GCCArchitecture
|
||||
if "%GCCVersion%"=="" %cecho% error "Cannot get gcc version." & exit /B 1
|
||||
if "%GCCArchitecture%"=="" %cecho% error "Cannot get gcc architecture." & exit /B 1
|
||||
|
||||
set BuildLibsPath=%EnvRootPath%\build-libs\gcc-%GCCVersion%
|
||||
set BuildLibsPath=%EnvRootPath%\build-libs\gcc-%GCCVersion%\%GCCArchitecture%
|
||||
|
||||
set RsBuildPath=%BuildPath%\Qt-%QtVersion%-%RsBuildConfig%
|
||||
set RsDeployPath=%DeployPath%\Qt-%QtVersion%%RsType%-%RsBuildConfig%
|
||||
set RsBuildPath=%BuildPath%\Qt-%QtVersion%-%GCCArchitecture%-%RsBuildConfig%
|
||||
set RsDeployPath=%DeployPath%\Qt-%QtVersion%-%GCCArchitecture%%RsType%-%RsBuildConfig%
|
||||
set RsPackPath=%DeployPath%
|
||||
set RsArchiveAdd=
|
||||
|
||||
@ -93,9 +103,16 @@ echo release^|debug Build release or debug version
|
||||
echo.
|
||||
echo Optional parameter (need clean when changed)
|
||||
echo autologin Build with autologin
|
||||
echo jsonapi Build with jsonapi
|
||||
echo plugins Build plugins
|
||||
echo.
|
||||
echo Optional parameter
|
||||
echo singlethread Use only 1 thread for building
|
||||
echo.
|
||||
echo Parameter for pack
|
||||
echo tor Pack tor version
|
||||
echo.
|
||||
echo Parameter for git-log
|
||||
echo non-interactive Non-interactive mode
|
||||
echo.
|
||||
exit /B 2
|
||||
|
@ -2,9 +2,6 @@
|
||||
|
||||
setlocal
|
||||
|
||||
set NoAsk=
|
||||
if "%~2"=="no-ask" set NoAsk=1
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0..\env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
@ -20,48 +17,29 @@ set GitPath=
|
||||
call "%ToolsPath%\find-in-path.bat" GitPath git.exe
|
||||
if "%GitPath%"=="" echo Git executable not found in PATH.& exit /B 1
|
||||
|
||||
:: Get compiled revision
|
||||
set GetRsVersion=%SourcePath%\build_scripts\Windows\tools\get-rs-version.bat
|
||||
if not exist "%GetRsVersion%" (
|
||||
echo File not found
|
||||
echo %GetRsVersion%
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
call "%GetRsVersion%" RS_REVISION_STRING RsRevision
|
||||
if "%RsRevision%"=="" echo Revision not found.& exit /B 1
|
||||
|
||||
:: Get compiled version
|
||||
call "%GetRsVersion%" RS_REVISION_STRING RsRevision
|
||||
if "%RsRevision%"=="" echo Revision not found.& exit /B 1
|
||||
call "%ToolsPath%\get-rs-version.bat" "%RsBuildPath%\retroshare-gui\src\%RsBuildConfig%\retroshare.exe" RsVersion
|
||||
if errorlevel 1 %cecho% error "Version not found."& goto error
|
||||
|
||||
call "%GetRsVersion%" RS_MAJOR_VERSION RsMajorVersion
|
||||
if "%RsMajorVersion%"=="" echo Major version not found.& exit /B 1
|
||||
if "%RsVersion.Major%"=="" %cecho% error "Major version not found."& goto error
|
||||
if "%RsVersion.Minor%"=="" %cecho% error "Minor version not found."& goto error
|
||||
if "%RsVersion.Mini%"=="" %cecho% error "Mini number not found".& goto error
|
||||
if "%RsVersion.Extra%"=="" %cecho% error "Extra number not found".& goto error
|
||||
|
||||
call "%GetRsVersion%" RS_MINOR_VERSION RsMinorVersion
|
||||
if "%RsMinorVersion%"=="" echo Minor version not found.& exit /B 1
|
||||
set RsVersion=%RsVersion.Major%.%RsVersion.Minor%.%RsVersion.Mini%
|
||||
|
||||
call "%GetRsVersion%" RS_BUILD_NUMBER RsBuildNumber
|
||||
if "%RsBuildNumber%"=="" echo Build number not found.& exit /B 1
|
||||
:: Get date
|
||||
call "%ToolsPath%\get-rs-date.bat" "%SourcePath%" RsDate
|
||||
if errorlevel 1 %cecho% error "Could not get date."& goto error
|
||||
|
||||
call "%GetRsVersion%" RS_BUILD_NUMBER_ADD RsBuildNumberAdd
|
||||
|
||||
set RsVersion=%RsMajorVersion%.%RsMinorVersion%.%RsBuildNumber%%RsBuildNumberAdd%
|
||||
|
||||
:: Check WMIC is available
|
||||
wmic.exe alias /? >nul 2>&1 || echo WMIC is not available.&& exit /B 1
|
||||
|
||||
:: Use WMIC to retrieve date in format YYYYMMDD
|
||||
set RsDate=
|
||||
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set RsDate=%%I
|
||||
set RsDate=%RsDate:~0,4%%RsDate:~4,2%%RsDate:~6,2%
|
||||
if "%RsDate%"=="" %cecho% error "Could not get date."& goto error
|
||||
|
||||
:: Get last revision
|
||||
set RsLastRefFile=%BuildPath%\Qt-%QtVersion%%RsType%-%RsBuildConfig%-LastRef.txt
|
||||
set RsLastRefFile=%BuildPath%\Qt-%QtVersion%-%GCCArchitecture%%RsType%-%RsBuildConfig%-LastRef.txt
|
||||
set RsLastRef=
|
||||
if exist "%RsLastRefFile%" set /P RsLastRef=<"%RsLastRefFile%"
|
||||
|
||||
if "%NoAsk%"=="1" goto no_ask_for_last_revision
|
||||
if "%NonInteractive%"=="1" goto no_ask_for_last_revision
|
||||
if not "%RsLastRef%"=="" echo Last Revision was %RsLastRef%
|
||||
set /P RsLastRefInput=Last Revision:
|
||||
if "%RsLastRefInput%" NEQ "" set RsLastRef=%RsLastRefInput%
|
||||
@ -79,15 +57,15 @@ echo.
|
||||
echo Creating log from %RsLastRef%
|
||||
echo to %RsRef%
|
||||
|
||||
if "%NoAsk%"=="1" goto no_confirm
|
||||
if "%NonInteractive%"=="1" goto no_confirm
|
||||
choice /M "Do you want to proceed?"
|
||||
if %errorlevel%==2 exit /B 1
|
||||
:no_confirm
|
||||
|
||||
if "%RsBuildConfig%" NEQ "release" (
|
||||
set RsGitLog=%DeployPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsRevision%-Qt-%QtVersion%%RsType%%RsArchiveAdd%-%RsBuildConfig%.txt
|
||||
set RsGitLog=%DeployPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-Qt-%QtVersion%-%GCCArchitecture%%RsType%%RsArchiveAdd%-%RsBuildConfig%.txt
|
||||
) else (
|
||||
set RsGitLog=%DeployPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsRevision%-Qt-%QtVersion%%RsType%%RsArchiveAdd%.txt
|
||||
set RsGitLog=%DeployPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-Qt-%QtVersion%-%GCCArchitecture%%RsType%%RsArchiveAdd%.txt
|
||||
)
|
||||
|
||||
title %SourceName%-%RsBuildConfig% [git log]
|
||||
|
@ -29,16 +29,8 @@ if exist "%RsDeployPath%" rmdir /S /Q "%RsDeployPath%"
|
||||
:: Check compilation
|
||||
if not exist "%RsBuildPath%\Makefile" echo Project is not compiled.& goto error
|
||||
|
||||
:: Get compiled revision
|
||||
set GetRsVersion=%SourcePath%\build_scripts\Windows\tools\get-rs-version.bat
|
||||
if not exist "%GetRsVersion%" (
|
||||
%cecho% error "File not found"
|
||||
echo %GetRsVersion%
|
||||
goto error
|
||||
)
|
||||
|
||||
:: Get compiled version
|
||||
call "%GetRsVersion%" "%RsBuildPath%\retroshare-gui\src\%RsBuildConfig%\retroshare.exe" RsVersion
|
||||
call "%ToolsPath%\get-rs-version.bat" "%RsBuildPath%\retroshare-gui\src\%RsBuildConfig%\retroshare.exe" RsVersion
|
||||
if errorlevel 1 %cecho% error "Version not found."& goto error
|
||||
|
||||
if "%RsVersion.Major%"=="" %cecho% error "Major version not found."& goto error
|
||||
@ -48,18 +40,17 @@ if "%RsVersion.Extra%"=="" %cecho% error "Extra number not found".& goto error
|
||||
|
||||
set RsVersion=%RsVersion.Major%.%RsVersion.Minor%.%RsVersion.Mini%
|
||||
|
||||
:: Check WMIC is available
|
||||
wmic.exe alias /? >nul 2>&1 || echo WMIC is not available.&& goto error
|
||||
:: Get date
|
||||
call "%ToolsPath%\get-rs-date.bat" "%SourcePath%" RsDate
|
||||
if errorlevel 1 %cecho% error "Could not get date."& goto error
|
||||
|
||||
:: Use WMIC to retrieve date in format YYYYMMDD
|
||||
set RsDate=
|
||||
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /format:list') do set RsDate=%%I
|
||||
set RsDate=%RsDate:~0,4%%RsDate:~4,2%%RsDate:~6,2%
|
||||
if "%RsDate%"=="" %cecho% error "Could not get date."& goto error
|
||||
|
||||
rem Tor
|
||||
if "%ParamTor%"=="1" (
|
||||
:: Check for tor executable
|
||||
if not exist "%EnvDownloadPath%\tor\Tor\tor.exe" (
|
||||
%cecho% error "Tor binary not found. Please download Tor Expert Bundle from\nhttps://www.torproject.org/download/download.html.en\nand unpack to\n%EnvDownloadPath:\=\\%\\tor"
|
||||
if not exist "%EnvTorPath%\Tor\tor.exe" (
|
||||
%cecho% error "Tor binary not found. Please download Tor Expert Bundle from\nhttps://www.torproject.org/download/download.html.en\nand unpack to\n%EnvTorPath:\=\\%"
|
||||
goto error
|
||||
)
|
||||
)
|
||||
@ -74,9 +65,9 @@ if "%QtMainVersion%"=="4" set QtMainVersion2=4
|
||||
if "%QtMainVersion%"=="5" set QtMainVersion1=5
|
||||
|
||||
if "%RsBuildConfig%" NEQ "release" (
|
||||
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-Qt-%QtVersion%%RsType%%RsArchiveAdd%-%RsBuildConfig%.7z
|
||||
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-Qt-%QtVersion%-%GCCArchitecture%%RsType%%RsArchiveAdd%-%RsBuildConfig%.7z
|
||||
) else (
|
||||
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-Qt-%QtVersion%%RsType%%RsArchiveAdd%.7z
|
||||
set Archive=%RsPackPath%\RetroShare-%RsVersion%-Windows-Portable-%RsDate%-%RsVersion.Extra%-Qt-%QtVersion%-%GCCArchitecture%%RsType%%RsArchiveAdd%.7z
|
||||
)
|
||||
|
||||
if exist "%Archive%" del /Q "%Archive%"
|
||||
@ -98,12 +89,13 @@ mkdir "%RsDeployPath%\qss"
|
||||
mkdir "%RsDeployPath%\stylesheets"
|
||||
mkdir "%RsDeployPath%\sounds"
|
||||
mkdir "%RsDeployPath%\translations"
|
||||
mkdir "%RsDeployPath%\license"
|
||||
|
||||
copy nul "%RsDeployPath%\portable" %Quite%
|
||||
|
||||
echo copy binaries
|
||||
copy "%RsBuildPath%\retroshare-gui\src\%RsBuildConfig%\RetroShare*.exe" "%RsDeployPath%" %Quite%
|
||||
copy "%RsBuildPath%\retroshare-nogui\src\%RsBuildConfig%\retroshare*-nogui.exe" "%RsDeployPath%" %Quite%
|
||||
copy "%RsBuildPath%\retroshare-gui\src\%RsBuildConfig%\retroshare*.exe" "%RsDeployPath%" %Quite%
|
||||
copy "%RsBuildPath%\retroshare-service\src\%RsBuildConfig%\retroshare*-service.exe" "%RsDeployPath%" %Quite%
|
||||
|
||||
echo copy extensions
|
||||
for /D %%D in ("%RsBuildPath%\plugins\*") do (
|
||||
@ -148,13 +140,15 @@ rmdir /S /Q "%RsDeployPath%\stylesheets\__MACOSX__Bubble" %Quite%
|
||||
echo copy sounds
|
||||
xcopy /S "%SourcePath%\retroshare-gui\src\sounds" "%RsDeployPath%\sounds" %Quite%
|
||||
|
||||
echo copy license
|
||||
xcopy /S "%SourcePath%\retroshare-gui\src\license" "%RsDeployPath%\license" %Quite%
|
||||
|
||||
echo copy translation
|
||||
copy "%SourcePath%\retroshare-gui\src\translations\qt_tr.qm" "%RsDeployPath%\translations" %Quite%
|
||||
copy "%QtPath%\..\translations\qt_*.qm" "%RsDeployPath%\translations" %Quite%
|
||||
if "%QtMainVersion%"=="5" (
|
||||
copy "%QtPath%\..\translations\qtbase_*.qm" "%RsDeployPath%\translations" %Quite%
|
||||
copy "%QtPath%\..\translations\qtscript_*.qm" "%RsDeployPath%\translations" %Quite%
|
||||
copy "%QtPath%\..\translations\qtquick1_*.qm" "%RsDeployPath%\translations" %Quite%
|
||||
copy "%QtPath%\..\translations\qtmultimedia_*.qm" "%RsDeployPath%\translations" %Quite%
|
||||
copy "%QtPath%\..\translations\qtxmlpatterns_*.qm" "%RsDeployPath%\translations" %Quite%
|
||||
)
|
||||
@ -163,7 +157,7 @@ echo copy bdboot.txt
|
||||
copy "%SourcePath%\libbitdht\src\bitdht\bdboot.txt" "%RsDeployPath%" %Quite%
|
||||
|
||||
echo copy changelog.txt
|
||||
copy "%SourcePath%\retroshare-gui\src\changelog.txt" "%RsDeployPath%" %Quite%
|
||||
copy "%RsBuildPath%\changelog.txt" "%RsDeployPath%" %Quite%
|
||||
|
||||
if exist "%SourcePath%\libresapi\src\webui" (
|
||||
echo copy webui
|
||||
@ -173,7 +167,7 @@ if exist "%SourcePath%\libresapi\src\webui" (
|
||||
|
||||
if "%ParamTor%"=="1" (
|
||||
echo copy tor
|
||||
echo n | copy /-y "%EnvDownloadPath%\tor\Tor\*.*" "%RsDeployPath%" %Quite%
|
||||
echo n | copy /-y "%EnvTorPath%\Tor\*.*" "%RsDeployPath%" %Quite%
|
||||
)
|
||||
|
||||
rem pack files
|
||||
|
22
build_scripts/Windows/env/env-msys.bat
vendored
22
build_scripts/Windows/env/env-msys.bat
vendored
@ -1,22 +0,0 @@
|
||||
:: Usage:
|
||||
:: call env-msys.bat [reinstall|clean]
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
set EnvMSYSPath=%EnvRootPath%\msys
|
||||
|
||||
call "%~dp0tools\prepare-msys.bat" %1
|
||||
if errorlevel 1 exit /B %ERRORLEVEL%
|
||||
|
||||
set EnvMSYSSH=%EnvMSYSPath%\msys\1.0\bin\sh.exe
|
||||
if not exist "%EnvMSYSSH%" if errorlevel 1 goto error_env
|
||||
|
||||
set EnvMSYSCmd="%EnvMSYSSH%" --login -i -c
|
||||
|
||||
exit /B 0
|
||||
|
||||
:error_env
|
||||
echo Failed to initialize environment.
|
||||
exit /B 1
|
39
build_scripts/Windows/env/env-msys2.bat
vendored
Normal file
39
build_scripts/Windows/env/env-msys2.bat
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
:: Usage:
|
||||
:: call env-msys2.bat [reinstall|clean]
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
rem openssl x86 doesn't compile with mingw64 x64
|
||||
:: Get gcc versions
|
||||
call "%ToolsPath%\get-gcc-version.bat" GCCVersion GCCArchitecture
|
||||
if "%GCCVersion%"=="" %cecho% error "Cannot get gcc version." & exit /B 1
|
||||
if "%GCCArchitecture%"=="" %cecho% error "Cannot get gcc architecture." & exit /B 1
|
||||
|
||||
rem IF DEFINED ProgramFiles(x86) (
|
||||
if "%GCCArchitecture%"=="x64" (
|
||||
:: x64
|
||||
set MSYS2Architecture=x86_64
|
||||
set MSYS2Base=64
|
||||
) else (
|
||||
:: x86
|
||||
set MSYS2Architecture=i686
|
||||
set MSYS2Base=32
|
||||
)
|
||||
|
||||
set EnvMSYS2Path=%EnvRootPath%\msys2
|
||||
|
||||
call "%~dp0tools\prepare-msys2.bat" %1
|
||||
if errorlevel 1 exit /B %ERRORLEVEL%
|
||||
|
||||
set EnvMSYS2SH=%EnvMSYS2Path%\msys%MSYS2Base%\usr\bin\sh.exe
|
||||
if not exist "%EnvMSYS2SH%" if errorlevel 1 goto error_env
|
||||
|
||||
set EnvMSYS2Cmd="%EnvMSYS2SH%" -lc
|
||||
|
||||
exit /B 0
|
||||
|
||||
:error_env
|
||||
echo Failed to initialize environment.
|
||||
exit /B 1
|
23
build_scripts/Windows/env/env-qt.bat
vendored
23
build_scripts/Windows/env/env-qt.bat
vendored
@ -1,23 +0,0 @@
|
||||
:: Usage:
|
||||
:: call env-qt4.bat version [reinstall|clean]
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
set EnvQtBasePath=%EnvRootPath%\qt
|
||||
|
||||
:: Create folders
|
||||
if not exist "%EnvQtBasePath%" mkdir "%EnvQtBasePath%"
|
||||
|
||||
call "%~dp0tools\prepare-qt.bat" %1 %2
|
||||
if errorlevel 1 exit /B %ERRORLEVEL%
|
||||
|
||||
if "%MinGWDir%" NEQ "" set PATH=%MinGWDir%\bin;%PATH%
|
||||
if "%QtDir%" NEQ "" set PATH=%QtDir%\bin;%PATH%
|
||||
|
||||
exit /B 0
|
||||
|
||||
:error_env
|
||||
echo Failed to initialize environment.
|
||||
exit /B 1
|
6
build_scripts/Windows/env/env.bat
vendored
6
build_scripts/Windows/env/env.bat
vendored
@ -6,11 +6,9 @@ set EnvRootPath=%RootPath%\%SourceName%-env
|
||||
set EnvToolsPath=%EnvRootPath%\tools
|
||||
set EnvTempPath=%EnvRootPath%\tmp
|
||||
set EnvDownloadPath=%EnvRootPath%\download
|
||||
set EnvTorPath=%EnvDownloadPath%\tor
|
||||
|
||||
::set EnvCurlExe=%EnvToolsPath%\curl.exe
|
||||
set EnvWgetExe=%EnvToolsPath%\wget.exe
|
||||
set EnvSevenZipExe=%EnvToolsPath%\7z.exe
|
||||
set EnvJomExe=%EnvToolsPath%\jom.exe
|
||||
set EnvSedExe=%EnvToolsPath%\sed.exe
|
||||
set EnvCutExe=%EnvToolsPath%\cut.exe
|
||||
set EnvDependsExe=%EnvToolsPath%\depends.exe
|
||||
@ -27,7 +25,7 @@ call "%~dp0tools\prepare-tools.bat"
|
||||
if errorlevel 1 exit /B %ERRORLEVEL%
|
||||
|
||||
:: Add MinGit to PATH
|
||||
set PATH=%EnvToolsPath%\MinGit\cmd;%PATH%
|
||||
set PATH=%EnvToolsPath%\MinGit\cmd;%EnvToolsPath%\cmake\bin;%PATH%
|
||||
set HOME=%EnvToolsPath%\MinGit\home
|
||||
|
||||
exit /B 0
|
||||
|
81
build_scripts/Windows/env/tools/prepare-msys.bat
vendored
81
build_scripts/Windows/env/tools/prepare-msys.bat
vendored
@ -1,81 +0,0 @@
|
||||
:: Usage:
|
||||
:: call prepare-msys.bat [reinstall|clean]
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
if "%EnvMSYSPath%"=="" exit /B 1
|
||||
if not exist "%EnvRootPath%"=="" exit /B 1
|
||||
|
||||
copy "%~dp0root\update-msys.bat" "%EnvRootPath%" >nul
|
||||
|
||||
if "%~1"=="clean" (
|
||||
%cecho% info "Clean MSYS"
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvMSYSPath%"
|
||||
goto exit
|
||||
)
|
||||
|
||||
if exist "%EnvMSYSPath%\bin\mingw-get.exe" (
|
||||
if "%~1"=="reinstall" (
|
||||
choice /M "Found existing MSYS version. Do you want to proceed?"
|
||||
if !ERRORLEVEL!==2 goto exit
|
||||
) else (
|
||||
goto exit
|
||||
)
|
||||
)
|
||||
|
||||
set MSYSInstall=mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip
|
||||
set MSYSUrl=http://sourceforge.net/projects/mingw/files/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/%MSYSInstall%/download
|
||||
set CMakeInstall=cmake-3.1.0-win32-x86.zip
|
||||
set CMakeUrl=http://www.cmake.org/files/v3.1/%CMakeInstall%
|
||||
set CMakeUnpackPath=%EnvMSYSPath%\msys\1.0
|
||||
|
||||
%cecho% info "Remove previous MSYS version"
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvMSYSPath%"
|
||||
|
||||
%cecho% info "Download installation files"
|
||||
if not exist "%EnvDownloadPath%\%MSYSInstall%" call "%ToolsPath%\download-file.bat" "%MSYSUrl%" "%EnvDownloadPath%\%MSYSInstall%"
|
||||
if not exist "%EnvDownloadPath%\%MSYSInstall%" %cecho% error "Cannot download MSYS" & goto error
|
||||
|
||||
if not exist "%EnvDownloadPath%\%CMakeInstall%" call "%ToolsPath%\download-file.bat" "%CMakeUrl%" "%EnvDownloadPath%\%CMakeInstall%"
|
||||
if not exist "%EnvDownloadPath%\%CMakeInstall%" %cecho% error "Cannot download CMake" & goto error
|
||||
|
||||
%cecho% info "Unpack MSYS"
|
||||
"%EnvSevenZipExe%" x -o"%EnvMSYSPath%" "%EnvDownloadPath%\%MSYSInstall%"
|
||||
|
||||
%cecho% info "Install MSYS"
|
||||
if not exist "%EnvMSYSPath%\var\lib\mingw-get\data\profile.xml" copy "%EnvMSYSPath%\var\lib\mingw-get\data\defaults.xml" "%EnvMSYSPath%\var\lib\mingw-get\data\profile.xml"
|
||||
pushd "%EnvMSYSPath%\bin"
|
||||
mingw-get.exe install mingw32-mingw-get
|
||||
mingw-get.exe install msys-coreutils
|
||||
mingw-get.exe install msys-base
|
||||
mingw-get.exe install msys-autoconf
|
||||
mingw-get.exe install msys-automake
|
||||
mingw-get.exe install msys-autogen
|
||||
mingw-get.exe install msys-mktemp
|
||||
rem Use own wget binary, because MSYS version of wget is to old
|
||||
rem mingw-get.exe install msys-wget
|
||||
popd
|
||||
|
||||
%cecho% info "Unpack CMake"
|
||||
"%EnvSevenZipExe%" x -o"%CMakeUnpackPath%" "%EnvDownloadPath%\%CMakeInstall%"
|
||||
|
||||
%cecho% info "Install CMake"
|
||||
set CMakeVersion=
|
||||
for /D %%F in (%CMakeUnpackPath%\cmake*) do set CMakeVersion=%%~nxF
|
||||
if "%CMakeVersion%"=="" %cecho% error "CMake version not found." & goto :exit
|
||||
%cecho% info "Found CMake version %CMakeVersion%"
|
||||
|
||||
set FoundProfile=
|
||||
for /f "tokens=3" %%F in ('find /c /i "%CMakeVersion%" "%EnvMSYSPath%\msys\1.0\etc\profile"') do set FoundProfile=%%F
|
||||
|
||||
if "%FoundProfile%"=="0" (
|
||||
echo export PATH="${PATH}:/%CMakeVersion%/bin">>"%EnvMSYSPath%\msys\1.0\etc\profile"
|
||||
)
|
||||
|
||||
:exit
|
||||
endlocal
|
||||
exit /B 0
|
||||
|
||||
:error
|
||||
endlocal
|
||||
exit /B 1
|
85
build_scripts/Windows/env/tools/prepare-msys2.bat
vendored
Normal file
85
build_scripts/Windows/env/tools/prepare-msys2.bat
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
:: Usage:
|
||||
:: call prepare-msys2.bat [reinstall|clean]
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
if "%EnvMSYS2Path%"=="" exit /B 1
|
||||
if "%MSYS2Architecture%"=="" exit /B 1
|
||||
if "%MSYS2Base%"=="" exit /B 1
|
||||
if not exist "%EnvRootPath%"=="" exit /B 1
|
||||
|
||||
copy "%~dp0root\update-msys2.bat" "%EnvRootPath%" >nul
|
||||
|
||||
if "%~1"=="clean" (
|
||||
%cecho% info "Clean MSYS2"
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvMSYS2Path%"
|
||||
goto exit
|
||||
)
|
||||
|
||||
if exist "%EnvMSYS2Path%\msys%MSYS2Base%\usr\bin\pacman.exe" (
|
||||
if "%~1"=="reinstall" (
|
||||
choice /M "Found existing MSYS2 version. Do you want to proceed?"
|
||||
if !ERRORLEVEL!==2 goto exit
|
||||
) else (
|
||||
goto exit
|
||||
)
|
||||
)
|
||||
|
||||
set MSYS2Install=msys2-base-%MSYS2Architecture%-20190524.tar.xz
|
||||
set MSYS2Url=http://sourceforge.net/projects/msys2/files/Base/%MSYS2Architecture%/%MSYS2Install%/download
|
||||
set CMakeInstall=cmake-3.1.0-win32-x86.zip
|
||||
set CMakeUrl=http://www.cmake.org/files/v3.1/%CMakeInstall%
|
||||
set CMakeUnpackPath=%EnvMSYS2Path%\msys%MSYS2Base%
|
||||
|
||||
if exist "%EnvMSYS2Path%\msys%MSYS2Base%" (
|
||||
%cecho% info "Remove previous MSYS2 version"
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvMSYS2Path%\msys%MSYS2Base%"
|
||||
)
|
||||
|
||||
%cecho% info "Download installation files"
|
||||
if not exist "%EnvDownloadPath%\%MSYS2Install%" call "%ToolsPath%\download-file.bat" "%MSYS2Url%" "%EnvDownloadPath%\%MSYS2Install%"
|
||||
if not exist "%EnvDownloadPath%\%MSYS2Install%" %cecho% error "Cannot download MSYS" & goto error
|
||||
|
||||
if not exist "%EnvDownloadPath%\%CMakeInstall%" call "%ToolsPath%\download-file.bat" "%CMakeUrl%" "%EnvDownloadPath%\%CMakeInstall%"
|
||||
if not exist "%EnvDownloadPath%\%CMakeInstall%" %cecho% error "Cannot download CMake" & goto error
|
||||
|
||||
%cecho% info "Unpack MSYS2"
|
||||
"%EnvSevenZipExe%" x -so "%EnvDownloadPath%\%MSYS2Install%" | "%EnvSevenZipExe%" x -y -si -ttar -o"%EnvMSYS2Path%"
|
||||
|
||||
%cecho% info "Unpack CMake"
|
||||
"%EnvSevenZipExe%" x -o"%CMakeUnpackPath%" "%EnvDownloadPath%\%CMakeInstall%"
|
||||
|
||||
%cecho% info "Install CMake"
|
||||
set CMakeVersion=
|
||||
for /D %%F in (%CMakeUnpackPath%\cmake*) do set CMakeVersion=%%~nxF
|
||||
if "%CMakeVersion%"=="" %cecho% error "CMake version not found." & goto :exit
|
||||
%cecho% info "Found CMake version %CMakeVersion%"
|
||||
|
||||
set FoundProfile=
|
||||
for /f "tokens=3" %%F in ('find /c /i "%CMakeVersion%" "%EnvMSYS2Path%\msys%MSYS2Base%\etc\profile"') do set FoundProfile=%%F
|
||||
|
||||
if "%FoundProfile%"=="0" (
|
||||
echo export PATH="${PATH}:/%CMakeVersion%/bin">>"%EnvMSYS2Path%\msys%MSYS2Base%\etc\profile"
|
||||
)
|
||||
|
||||
set MSYS2SH=%EnvMSYS2Path%\msys%MSYS2Base%\usr\bin\sh
|
||||
|
||||
%cecho% info "Update keyring"
|
||||
"%MSYS2SH%" -lc "curl -O http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
|
||||
"%MSYS2SH%" -lc "pacman --noconfirm -U msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
|
||||
|
||||
%cecho% info "Initialize MSYS2"
|
||||
"%MSYS2SH%" -lc "pacman -Sy"
|
||||
"%MSYS2SH%" -lc "pacman --noconfirm --needed -S bash pacman pacman-mirrors msys2-runtime"
|
||||
|
||||
call "%EnvMSYS2Path%\msys%MSYS2Base%\autorebase.bat"
|
||||
call "%EnvRootPath%\update-msys2.bat"
|
||||
call "%EnvRootPath%\update-msys2.bat"
|
||||
|
||||
:exit
|
||||
endlocal
|
||||
exit /B 0
|
||||
|
||||
:error
|
||||
endlocal
|
||||
exit /B 1
|
204
build_scripts/Windows/env/tools/prepare-qt.bat
vendored
204
build_scripts/Windows/env/tools/prepare-qt.bat
vendored
@ -1,204 +0,0 @@
|
||||
:: Usage:
|
||||
:: call prepare-qt.bat version [reinstall|clean]
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
if "%EnvQtBasePath%"=="" exit /B 1
|
||||
if not exist "%EnvRootPath%"=="" exit /B 1
|
||||
|
||||
set EnvQtVersion=%~1
|
||||
if "%EnvQtVersion%"=="" (
|
||||
%cecho% error "Please specify Qt version"
|
||||
goto error
|
||||
)
|
||||
|
||||
for /f "tokens=1,2 delims=." %%A in ("%EnvQtVersion%") do set EnvQtMainVersion=%%A& set EnvQtBaseVersion=%%A.%%B
|
||||
set EnvQtPath=%EnvQtBasePath%\%EnvQtVersion%
|
||||
|
||||
if "%~2"=="clean" (
|
||||
%cecho% info "Clean Qt %EnvQtVersion%"
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvQtPath%"
|
||||
goto exit
|
||||
)
|
||||
|
||||
set CheckQmakeExe=
|
||||
if "%EnvQtMainVersion%"=="4" (
|
||||
set CheckQmakeExe=%EnvQtPath%\Qt\bin\qmake.exe
|
||||
) else (
|
||||
if "%EnvQtMainVersion%" GEQ "5" (
|
||||
call :get_mingw_version EnvQtMinGWVersion "%EnvQtPath%\%EnvQtBaseVersion%"
|
||||
if "!EnvQtMinGWVersion!" NEQ "" (
|
||||
set CheckQmakeExe=%EnvQtPath%\%EnvQtBaseVersion%\!EnvQtMinGWVersion!\bin\qmake.exe
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
if "%CheckQmakeExe%" NEQ "" (
|
||||
if exist "%CheckQmakeExe%" (
|
||||
if "%~2"=="reinstall" (
|
||||
choice /M "Found existing Qt %EnvQtVersion% version. Do you want to proceed?"
|
||||
if !ERRORLEVEL!==2 goto exit
|
||||
) else (
|
||||
goto exit
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
set QtInstall=qt-opensource-windows-x86-mingw-%EnvQtVersion%.exe
|
||||
set QtInstallWildcard=qt-opensource-windows-x86-mingw*-%EnvQtVersion%.exe
|
||||
set QtUrl=http://download.qt.io/official_releases/qt/%EnvQtBaseVersion%/%EnvQtVersion%
|
||||
|
||||
%cecho% info "Remove previous Qt %EnvQtVersion% version"
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvQtPath%"
|
||||
|
||||
%cecho% info "Download Qt installation files"
|
||||
if not exist "%EnvDownloadPath%\%QtInstall%" (
|
||||
call "%ToolsPath%\download-file-wildcard.bat" "%QtUrl%" "%QtInstallWildcard%" "%EnvDownloadPath%" QtInstallDownload
|
||||
if "!QtInstallDownload!"=="" %cecho% error "Cannot download Qt %EnvQtVersion%" & goto error
|
||||
ren "%EnvDownloadPath%\!QtInstallDownload!" "%QtInstall%"
|
||||
)
|
||||
if not exist "%EnvDownloadPath%\%QtInstall%" %cecho% error "Cannot download Qt %EnvQtVersion%" & goto error
|
||||
|
||||
mkdir "%EnvQtPath%"
|
||||
|
||||
if "%EnvQtMainVersion%"=="4" (
|
||||
rem Qt 4
|
||||
goto install_qt4
|
||||
)
|
||||
if "%EnvQtMainVersion%" GEQ "5" (
|
||||
rem Qt >= 5
|
||||
goto install_qt5
|
||||
)
|
||||
|
||||
%cecho% error "Unknown Qt version %EnvQtVersion%"
|
||||
|
||||
:error
|
||||
endlocal & set QtDir=& set MinGWDir=
|
||||
exit /B 1
|
||||
|
||||
:exit
|
||||
set QtDir=
|
||||
set MinGWDir=
|
||||
|
||||
if "%EnvQtMainVersion%"=="4" (
|
||||
rem Qt 4
|
||||
set QtDir=%EnvQtBasePath%\%EnvQtVersion%\Qt
|
||||
set MinGWDir=%EnvQtBasePath%\%EnvQtVersion%\mingw32
|
||||
) else (
|
||||
if "%EnvQtMainVersion%" GEQ "5" (
|
||||
call :get_mingw_version EnvQtToolsMinGWVersion "%EnvQtPath%\Tools"
|
||||
|
||||
set QtDir=%EnvQtPath%\%EnvQtBaseVersion%\!EnvQtMinGWVersion!
|
||||
set MinGWDir=%EnvQtPath%\Tools\!EnvQtToolsMinGWVersion!
|
||||
)
|
||||
)
|
||||
|
||||
endlocal & set QtDir=%QtDir%& set MinGWDir=%MinGWDir%
|
||||
exit /B 0
|
||||
|
||||
:get_mingw_version
|
||||
setlocal enabledelayedexpansion
|
||||
set Variable=%~1
|
||||
set Result=
|
||||
|
||||
for /D %%A in (%~2\*) do set Name=%%~nA& if "!Name:~0,5!"=="mingw" set Result=!Name!
|
||||
endlocal & set %Variable%=%Result%
|
||||
goto :EOF
|
||||
|
||||
:replace
|
||||
set InFile=%~1
|
||||
set InFileName=%~nx1
|
||||
set OutFile=%~1.tmp
|
||||
set SearchText=%~2
|
||||
set ReplaceText=%~3
|
||||
|
||||
if exist "%OutFile%" del /Q "%OutFile%"
|
||||
|
||||
for /f "tokens=1* delims=]" %%A in ('find /n /v ""^<%InFile%') do (
|
||||
set string=%%B
|
||||
|
||||
if "!string!"=="" (
|
||||
echo.>>%OutFile%
|
||||
) else (
|
||||
set modified=!string:%SearchText%=%ReplaceText%!
|
||||
echo !modified!>> %OutFile%
|
||||
)
|
||||
)
|
||||
del "%InFile%"
|
||||
rename "%OutFile%" "%InFileName%"
|
||||
goto :EOF
|
||||
|
||||
:install_qt4
|
||||
set MinGWInstall=i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z
|
||||
set MinGWUrl=http://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win32/Personal Builds/mingw-builds/4.8.2/threads-posix/dwarf/%MinGWInstall%/download
|
||||
|
||||
%cecho% info "Download MinGW installation files"
|
||||
if not exist "%EnvDownloadPath%\%MinGWInstall%" call "%ToolsPath%\download-file.bat" "%MinGWUrl%" "%EnvDownloadPath%\%MinGWInstall%"
|
||||
if not exist "%EnvDownloadPath%\%MinGWInstall%" %cecho% error "Cannot download MinGW" & goto error
|
||||
|
||||
%cecho% info "Unpack Qt %EnvQtVersion%"
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
mkdir "%EnvTempPath%"
|
||||
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%QtInstall%" $_14_
|
||||
move "%EnvTempPath%\$_14_" "%EnvQtPath%\Qt"
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
|
||||
%cecho% info "Unpack MinGW"
|
||||
"%EnvSevenZipExe%" x -o"%EnvQtPath%" "%EnvDownloadPath%\%MinGWInstall%"
|
||||
|
||||
echo Prepare Qt %EnvQtVersion%
|
||||
echo [Paths]>"%EnvQtPath%\Qt\bin\qt.conf"
|
||||
echo Prefix=..>>"%EnvQtPath%\Qt\bin\qt.conf"
|
||||
|
||||
goto exit
|
||||
|
||||
:install_qt5
|
||||
set EnvQtInstallerFrameworkVersion=2.0.3
|
||||
|
||||
set QtInstallerFrameworkInstall=QtInstallerFramework-%EnvQtInstallerFrameworkVersion%-win-x86.exe
|
||||
set QtInstallerFrameworkUrl=http://download.qt.io/official_releases/qt-installer-framework/%EnvQtInstallerFrameworkVersion%/QtInstallerFramework-win-x86.exe
|
||||
|
||||
%cecho% info "Download QtInstallerFramework installation files"
|
||||
if not exist "%EnvDownloadPath%\%QtInstallerFrameworkInstall%" call "%ToolsPath%\download-file.bat" "%QtInstallerFrameworkUrl%" "%EnvDownloadPath%\%QtInstallerFrameworkInstall%"
|
||||
if not exist "%EnvDownloadPath%\%QtInstallerFrameworkInstall%" %cecho% error "Cannot download Qt Installer Framework %EnvQtInstallerFrameworkVersion%" & goto error
|
||||
|
||||
%cecho% info "Unpack Qt Installer Framework"
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
mkdir "%EnvTempPath%"
|
||||
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%QtInstallerFrameworkInstall%" bin\devtool.exe
|
||||
move "%EnvTempPath%\bin\devtool.exe" "%EnvQtPath%"
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
|
||||
%cecho% info "Unpack Qt %EnvQtVersion%"
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
mkdir "%EnvTempPath%"
|
||||
"%EnvQtPath%\devtool.exe" "%EnvDownloadPath%\%QtInstall%" --dump "%EnvTempPath%"
|
||||
|
||||
pushd "%EnvTempPath%"
|
||||
del /S *vcredist*.7z
|
||||
del /S *qtcreator*.7z
|
||||
del /S *1installer-changelog.7z
|
||||
for /R %%F in (*.7z) do "%EnvSevenZipExe%" x -y -o"%EnvQtPath%" "%%F"
|
||||
popd
|
||||
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
|
||||
call :get_mingw_version EnvQtMinGWVersion "%EnvQtPath%\%EnvQtBaseVersion%"
|
||||
|
||||
%cecho% info "Prepare Qt %EnvQtVersion%"
|
||||
echo [Paths]>"%EnvQtPath%\%EnvQtBaseVersion%\%EnvQtMinGWVersion%\bin\qt.conf"
|
||||
echo Documentation=../../Docs/Qt-%EnvQtBaseVersion%>>"%EnvQtPath%\%EnvQtBaseVersion%\%EnvQtMinGWVersion%\bin\qt.conf"
|
||||
echo Examples=../../Examples/Qt-%EnvQtBaseVersion%>>"%EnvQtPath%\%EnvQtBaseVersion%\%EnvQtMinGWVersion%\bin\qt.conf"
|
||||
echo Prefix=..>>"%EnvQtPath%\%EnvQtBaseVersion%\%EnvQtMinGWVersion%\bin\qt.conf"
|
||||
|
||||
call :replace "%EnvQtPath%\%EnvQtBaseVersion%\%EnvQtMinGWVersion%\mkspecs\qconfig.pri" "Enterprise" "OpenSource"
|
||||
|
||||
for /R "%EnvQtPath%\%EnvQtBaseVersion%\%EnvQtMinGWVersion%\lib" %%A in (*.pc) do (
|
||||
call :replace "%%A" "c:/Users/qt/work/install" "%EnvQtPath:\=\\%\%EnvQtBaseVersion%\\%EnvQtMinGWVersion%"
|
||||
call :replace "%%A" "c:\Users\qt\work\install" "%EnvQtPath:\=/%\%EnvQtBaseVersion%/%EnvQtMinGWVersion%"
|
||||
)
|
||||
for /R "%EnvQtPath%\%EnvQtBaseVersion%\%EnvQtMinGWVersion%\lib" %%A in (*.prl) do (
|
||||
call :replace "%%A" "c:/Users/qt/work/install" "%EnvQtPath:\=\\%\%EnvQtBaseVersion%\\%EnvQtMinGWVersion%"
|
||||
call :replace "%%A" "c:\Users\qt\work\install" "%EnvQtPath:\=/%\%EnvQtBaseVersion%/%EnvQtMinGWVersion%"
|
||||
)
|
||||
goto exit
|
122
build_scripts/Windows/env/tools/prepare-tools.bat
vendored
122
build_scripts/Windows/env/tools/prepare-tools.bat
vendored
@ -4,36 +4,24 @@ if "%EnvRootPath%"=="" exit /B 1
|
||||
|
||||
set CEchoUrl=https://github.com/lordmulder/cecho/releases/download/2015-10-10/cecho.2015-10-10.zip
|
||||
set CEchoInstall=cecho.2015-10-10.zip
|
||||
set SevenZipUrl=https://sourceforge.net/projects/sevenzip/files/7-Zip/18.05/7z1805.msi/download
|
||||
set SevenZipInstall=7z1805.msi
|
||||
::set CurlUrl=https://bintray.com/artifact/download/vszakats/generic/curl-7.50.1-win32-mingw.7z
|
||||
::set CurlInstall=curl-7.50.1-win32-mingw.7z
|
||||
set WgetUrl=https://eternallybored.org/misc/wget/1.19.4/32/wget.exe
|
||||
set WgetInstall=wget.exe
|
||||
set JomUrl=http://download.qt.io/official_releases/jom/jom.zip
|
||||
set JomInstall=jom.zip
|
||||
set SevenZipUrl=https://sourceforge.net/projects/sevenzip/files/7-Zip/19.00/7z1900.msi/download
|
||||
set SevenZipInstall=7z1900.msi
|
||||
set DependsUrl=http://www.dependencywalker.com/depends22_x86.zip
|
||||
set DependsInstall=depends22_x86.zip
|
||||
set UnixToolsUrl=http://unxutils.sourceforge.net/UnxUpdates.zip
|
||||
set UnixToolsInstall=UnxUpdates.zip
|
||||
set NSISUrl=http://prdownloads.sourceforge.net/nsis/nsis-3.0-setup.exe?download
|
||||
set NSISInstall=nsis-3.0-setup.exe
|
||||
set NSISInstall=nsis-3.05-setup.exe
|
||||
set NSISUrl=http://prdownloads.sourceforge.net/nsis/%NSISInstall%?download
|
||||
set NSISInstallPath=%EnvToolsPath%\NSIS
|
||||
set MinGitInstall=MinGit-2.19.1-32-bit.zip
|
||||
set MinGitUrl=https://github.com/git-for-windows/git/releases/download/v2.19.1.windows.1/%MinGitInstall%
|
||||
set MinGitInstall=MinGit-2.28.0-32-bit.zip
|
||||
set MinGitUrl=https://github.com/git-for-windows/git/releases/download/v2.28.0.windows.1/%MinGitInstall%
|
||||
set MinGitInstallPath=%EnvToolsPath%\MinGit
|
||||
set SigcheckInstall=Sigcheck.zip
|
||||
set SigcheckUrl=https://download.sysinternals.com/files/%SigcheckInstall%
|
||||
|
||||
if not exist "%EnvToolsPath%\wget.exe" (
|
||||
echo Download Wget installation
|
||||
|
||||
if not exist "%EnvDownloadPath%\%WgetInstall%" call "%ToolsPath%\winhttpjs.bat" %WgetUrl% -saveTo "%EnvDownloadPath%\%WgetInstall%"
|
||||
if not exist "%EnvDownloadPath%\%WgetInstall%" %cecho% error "Cannot download Wget installation" & goto error
|
||||
|
||||
echo Copy Wget
|
||||
copy "%EnvDownloadPath%\wget.exe" "%EnvToolsPath%"
|
||||
)
|
||||
set CMakeVersion=cmake-3.1.0-win32-x86
|
||||
set CMakeInstall=%CMakeVersion%.zip
|
||||
set CMakeUrl=http://www.cmake.org/files/v3.1/%CMakeInstall%
|
||||
set CMakeInstallPath=%EnvToolsPath%\cmake
|
||||
set TorProjectUrl=https://www.torproject.org
|
||||
set TorDownloadIndexUrl=%TorProjectUrl%/download/tor
|
||||
|
||||
if not exist "%EnvToolsPath%\7z.exe" (
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
@ -68,45 +56,13 @@ if not exist "%EnvToolsPath%\cecho.exe" (
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
)
|
||||
|
||||
::if not exist "%EnvToolsPath%\curl.exe" (
|
||||
:: call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
:: mkdir "%EnvTempPath%"
|
||||
::
|
||||
:: echo Download Curl installation
|
||||
::
|
||||
:: if not exist "%EnvDownloadPath%\%CurlInstall%" call "%ToolsPath%\winhttpjs.bat" %CurlUrl% -saveTo "%EnvDownloadPath%\%CurlInstall%"
|
||||
:: if not exist "%EnvDownloadPath%\%CurlInstall%" echo Cannot download Curl installation& goto error
|
||||
::
|
||||
:: echo Unpack Curl
|
||||
:: "%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%CurlInstall%"
|
||||
:: copy "%EnvTempPath%\curl-7.50.1-win32-mingw\bin\curl.exe" "%EnvToolsPath%"
|
||||
::
|
||||
:: call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
::)
|
||||
|
||||
if not exist "%EnvToolsPath%\jom.exe" (
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
mkdir "%EnvTempPath%"
|
||||
|
||||
%cecho% info "Download jom installation"
|
||||
|
||||
if not exist "%EnvDownloadPath%\%JomInstall%" call "%ToolsPath%\winhttpjs.bat" %JomUrl% -saveTo "%EnvDownloadPath%\%JomInstall%"
|
||||
if not exist "%EnvDownloadPath%\%JomInstall%" %cecho% error "Cannot download jom installation" & goto error
|
||||
|
||||
%cecho% info "Unpack jom"
|
||||
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%JomInstall%"
|
||||
copy "%EnvTempPath%\jom.exe" "%EnvToolsPath%"
|
||||
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
)
|
||||
|
||||
if not exist "%EnvToolsPath%\depends.exe" (
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
mkdir "%EnvTempPath%"
|
||||
|
||||
%cecho% info "Download Dependency Walker installation"
|
||||
|
||||
if not exist "%EnvDownloadPath%\%DependsInstall%" call "%ToolsPath%\winhttpjs.bat" %DependsUrl% -saveTo "%EnvDownloadPath%\%DependsInstall%"
|
||||
if not exist "%EnvDownloadPath%\%DependsInstall%" call "%ToolsPath%\download-file.bat" %DependsUrl% "%EnvDownloadPath%\%DependsInstall%"
|
||||
if not exist "%EnvDownloadPath%\%DependsInstall%" %cecho% error "Cannot download Dependendy Walker installation" & goto error
|
||||
|
||||
%cecho% info "Unpack Dependency Walker"
|
||||
@ -122,7 +78,7 @@ if not exist "%EnvToolsPath%\cut.exe" (
|
||||
|
||||
%cecho% info "Download Unix Tools installation"
|
||||
|
||||
if not exist "%EnvDownloadPath%\%UnixToolsInstall%" call "%ToolsPath%\winhttpjs.bat" %UnixToolsUrl% -saveTo "%EnvDownloadPath%\%UnixToolsInstall%"
|
||||
if not exist "%EnvDownloadPath%\%UnixToolsInstall%" call "%ToolsPath%\download-file.bat" %UnixToolsUrl% "%EnvDownloadPath%\%UnixToolsInstall%"
|
||||
if not exist "%EnvDownloadPath%\%UnixToolsInstall%" %cecho% error "Cannot download Unix Tools installation" & goto error
|
||||
|
||||
%cecho% info "Unpack Unix Tools"
|
||||
@ -138,7 +94,7 @@ if not exist "%EnvToolsPath%\sed.exe" (
|
||||
|
||||
%cecho% info "Download Unix Tools installation"
|
||||
|
||||
if not exist "%EnvDownloadPath%\%UnixToolsInstall%" call "%ToolsPath%\winhttpjs.bat" %UnixToolsUrl% -saveTo "%EnvDownloadPath%\%UnixToolsInstall%"
|
||||
if not exist "%EnvDownloadPath%\%UnixToolsInstall%" call "%ToolsPath%\download-file.bat" %UnixToolsUrl% "%EnvDownloadPath%\%UnixToolsInstall%"
|
||||
if not exist "%EnvDownloadPath%\%UnixToolsInstall%" %cecho% error "Cannot download Unix Tools installation" & goto error
|
||||
|
||||
%cecho% info "Unpack Unix Tools"
|
||||
@ -148,8 +104,12 @@ if not exist "%EnvToolsPath%\sed.exe" (
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
)
|
||||
|
||||
if not exist "%EnvDownloadPath%\%NSISInstall%" call "%ToolsPath%\remove-dir.bat" "%NSISInstallPath%"
|
||||
if not exist "%NSISInstallPath%\nsis.exe" (
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
|
||||
if exist "%NSISInstallPath%" call "%ToolsPath%\remove-dir.bat" "%NSISInstallPath%"
|
||||
|
||||
mkdir "%EnvTempPath%"
|
||||
|
||||
%cecho% info "Download NSIS installation"
|
||||
@ -175,14 +135,45 @@ if not exist "%MinGitInstallPath%\cmd\git.exe" (
|
||||
"%EnvSevenZipExe%" x -o"%MinGitInstallPath%" "%EnvDownloadPath%\%MinGitInstall%"
|
||||
)
|
||||
|
||||
if not exist "%EnvToolsPath%\sigcheck.exe" (
|
||||
%cecho% info "Download Sigcheck installation"
|
||||
if not exist "%EnvDownloadPath%\%CMakeInstall%" call "%ToolsPath%\remove-dir.bat" "%CMakeInstallPath%"
|
||||
if not exist "%CMakeInstallPath%\bin\cmake.exe" (
|
||||
%cecho% info "Download CMake installation"
|
||||
|
||||
if not exist "%EnvDownloadPath%\%SigcheckInstall%" call "%ToolsPath%\download-file.bat" "%SigcheckUrl%" "%EnvDownloadPath%\%SigcheckInstall%"
|
||||
if not exist "%EnvDownloadPath%\%SigcheckInstall%" %cecho% error "Cannot download Sigcheck installation" & goto error
|
||||
if exist "%CMakeInstallPath%" call "%ToolsPath%\remove-dir.bat" "%CMakeInstallPath%"
|
||||
|
||||
%cecho% info "Unpack Sigcheck"
|
||||
"%EnvSevenZipExe%" x -o"%EnvToolsPath%" "%EnvDownloadPath%\%SigcheckInstall%" sigcheck.exe
|
||||
mkdir "%EnvTempPath%"
|
||||
|
||||
if not exist "%EnvDownloadPath%\%CMakeInstall%" call "%ToolsPath%\download-file.bat" "%CMakeUrl%" "%EnvDownloadPath%\%CMakeInstall%"
|
||||
if not exist "%EnvDownloadPath%\%CMakeInstall%" %cecho% error "Cannot download CMake installation" & goto error
|
||||
|
||||
%cecho% info "Unpack CMake"
|
||||
"%EnvSevenZipExe%" x -o"%EnvTempPath%" "%EnvDownloadPath%\%CMakeInstall%"
|
||||
|
||||
move "%EnvTempPath%\%CMakeVersion%" "%CMakeInstallPath%"
|
||||
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
)
|
||||
|
||||
rem Tor
|
||||
rem Get download link and filename from download page
|
||||
mkdir "%EnvTempPath%"
|
||||
call "%ToolsPath%\download-file.bat" "%TorDownloadIndexUrl%" "%EnvTempPath%\index.html"
|
||||
if not exist "%EnvTempPath%\index.html" %cecho% error "Cannot download Tor installation" & goto error
|
||||
|
||||
for /F "tokens=1,2 delims= " %%A in ('%EnvSedExe% -r -n -e"s/.*href=\"^(.*^)^(tor-win32.*\.zip^)\".*/\2 \1\2/p" "%EnvTempPath%\index.html"') do set TorInstall=%%A& set TorDownloadUrl=%TorProjectUrl%%%B
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
if "%TorInstall%"=="" %cecho% error "Cannot download Tor installation" & goto error
|
||||
if "%TorDownloadUrl%"=="" %cecho% error "Cannot download Tor installation" & goto error
|
||||
|
||||
if not exist "%EnvDownloadPath%\%TorInstall%" call "%ToolsPath%\remove-dir.bat" "%EnvTorPath%"
|
||||
if not exist "%EnvTorPath%\Tor\tor.exe" (
|
||||
%cecho% info "Download Tor installation"
|
||||
|
||||
if not exist "%EnvDownloadPath%\%TorInstall%" call "%ToolsPath%\download-file.bat" "%TorDownloadUrl%" "%EnvDownloadPath%\%TorInstall%"
|
||||
if not exist "%EnvDownloadPath%\%TorInstall%" %cecho% error "Cannot download Tor installation" & goto error
|
||||
|
||||
%cecho% info "Unpack Tor"
|
||||
"%EnvSevenZipExe%" x -o"%EnvTorPath%" "%EnvDownloadPath%\%TorInstall%"
|
||||
)
|
||||
|
||||
:exit
|
||||
@ -190,5 +181,6 @@ endlocal
|
||||
exit /B 0
|
||||
|
||||
:error
|
||||
call "%ToolsPath%\remove-dir.bat" "%EnvTempPath%"
|
||||
endlocal
|
||||
exit /B 1
|
||||
|
@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
|
||||
setlocal
|
||||
|
||||
set MSYSPath=%~dp0msys
|
||||
|
||||
if not exist "%MSYSPath%\bin\mingw-get.exe" echo MSYS is not installed& exit /B 0
|
||||
|
||||
echo Update MSYS
|
||||
pushd "%MSYSPath%\bin"
|
||||
mingw-get.exe update
|
||||
mingw-get.exe upgrade
|
||||
popd
|
||||
|
||||
exit /B %ERRORLEVEL%
|
19
build_scripts/Windows/env/tools/root/update-msys2.bat
vendored
Normal file
19
build_scripts/Windows/env/tools/root/update-msys2.bat
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
@echo off
|
||||
|
||||
setlocal
|
||||
|
||||
if exist "%~dp0msys2\msys32" call :update 32
|
||||
if exist "%~dp0msys2\msys64" call :update 64
|
||||
|
||||
goto :EOF
|
||||
|
||||
:update
|
||||
set MSYSSH=%~dp0msys2\msys%~1\usr\bin\sh
|
||||
|
||||
echo Update MSYS2 %~1
|
||||
"%MSYSSH%" -lc "pacman -Sy"
|
||||
"%MSYSSH%" -lc "pacman --noconfirm -Su"
|
||||
|
||||
:exit
|
||||
endlocal
|
||||
goto :EOF
|
@ -1,5 +1,7 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Instal·la ${APPNAME} i els components necessaris."
|
||||
!insertmacro LANG_STRING Section_Tor "Tor"
|
||||
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
|
||||
!insertmacro LANG_STRING Section_Data "Pells"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Instal·la pells."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Icones d'accés directe"
|
||||
|
@ -1,5 +1,7 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Installiert ${APPNAME} und die benötigten Komponenten."
|
||||
!insertmacro LANG_STRING Section_Tor "Tor"
|
||||
!insertmacro LANG_STRING Section_Tor_Desc "Installiert Tor."
|
||||
!insertmacro LANG_STRING Section_Data "Skins"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Skins installieren."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Verknüpfungssymbole"
|
||||
|
@ -1,5 +1,7 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Installs ${APPNAME} and required components."
|
||||
!insertmacro LANG_STRING Section_Tor "Tor"
|
||||
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
|
||||
!insertmacro LANG_STRING Section_Data "Skins"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Installs skins."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Shortcut icons"
|
||||
|
@ -1,5 +1,7 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Instala ${APPNAME} y los componentes requeridos."
|
||||
!insertmacro LANG_STRING Section_Tor "Tor"
|
||||
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
|
||||
!insertmacro LANG_STRING Section_Data "Coberturas (skins)"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Instalar coberturas"
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Iconos de accesos directos"
|
||||
|
@ -1,5 +1,7 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Installe ${APPNAME} et les composants requis."
|
||||
!insertmacro LANG_STRING Section_Tor "Tor"
|
||||
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
|
||||
!insertmacro LANG_STRING Section_Data "Habillages"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Installe des habillages."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Icônes de raccourci"
|
||||
|
@ -1,5 +1,7 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Instaluje ${APPNAME} oraz wymagane komponenty."
|
||||
!insertmacro LANG_STRING Section_Tor "Tor"
|
||||
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
|
||||
!insertmacro LANG_STRING Section_Data "Skórki"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Instaluje skórki."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Ikony skrótów"
|
||||
|
@ -1,5 +1,7 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Установка ${APPNAME} и необходимых компонентов."
|
||||
!insertmacro LANG_STRING Section_Tor "Tor"
|
||||
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
|
||||
!insertmacro LANG_STRING Section_Data "Оболочки"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Установка оболочек."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Ярлыки"
|
||||
|
@ -1,5 +1,7 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "${APPNAME} ve gerekli bileşenleri kurar."
|
||||
!insertmacro LANG_STRING Section_Tor "Tor"
|
||||
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
|
||||
!insertmacro LANG_STRING Section_Data "Temalar"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "Tema yükleyin."
|
||||
!insertmacro LANG_STRING Section_Shortcuts "Kısayol simgeleri"
|
||||
|
@ -8,6 +8,20 @@
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Tor</name>
|
||||
<message>
|
||||
<source>Tor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Tor_Desc</name>
|
||||
<message>
|
||||
<source>Installs Tor.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Section_Data</name>
|
||||
<message>
|
||||
|
@ -1,5 +1,7 @@
|
||||
!insertmacro LANG_STRING Section_Main "${APPNAME}"
|
||||
!insertmacro LANG_STRING Section_Main_Desc "Installs ${APPNAME} and required components."
|
||||
!insertmacro LANG_STRING Section_Tor "Tor"
|
||||
!insertmacro LANG_STRING Section_Tor_Desc "Installs Tor."
|
||||
!insertmacro LANG_STRING Section_Data "皮肤"
|
||||
!insertmacro LANG_STRING Section_Data_Desc "安装皮肤"
|
||||
!insertmacro LANG_STRING Section_Shortcuts "快捷方式图标"
|
||||
|
@ -22,6 +22,9 @@
|
||||
!ifndef MINGWDIR
|
||||
!error "MINGWDIR is not defined"
|
||||
!endif
|
||||
!ifndef ARCHITECTURE
|
||||
!error "Architecture is not defined"
|
||||
!endif
|
||||
|
||||
# Check optional defines
|
||||
!ifdef OUTDIR
|
||||
@ -53,7 +56,17 @@
|
||||
!endif
|
||||
|
||||
# Date
|
||||
!define /date Date "%Y%m%d"
|
||||
!ifndef DATE
|
||||
!define /date DATE "%Y%m%d"
|
||||
!endif
|
||||
|
||||
# Tor
|
||||
!ifdef TORDIR
|
||||
${!defineifexist} TOR_EXISTS "${TORDIR}\tor.exe"
|
||||
!ifndef TOR_EXISTS
|
||||
!error "tor.exe not found"
|
||||
!endif
|
||||
!endif
|
||||
|
||||
# Application name and version
|
||||
!define APPNAME "RetroShare"
|
||||
@ -61,7 +74,12 @@
|
||||
!define PUBLISHER "RetroShare Team"
|
||||
|
||||
# Install path
|
||||
!define INSTDIR_NORMAL "$ProgramFiles\${APPNAME}"
|
||||
!if ${ARCHITECTURE} == "x86"
|
||||
!define INSTDIR_NORMAL "$ProgramFiles32\${APPNAME}"
|
||||
!endif
|
||||
!if ${ARCHITECTURE} == "x64"
|
||||
!define INSTDIR_NORMAL "$ProgramFiles64\${APPNAME}"
|
||||
!endif
|
||||
!define INSTDIR_PORTABLE "$Desktop\${APPNAME}"
|
||||
|
||||
!define DATADIR_NORMAL "$APPDATA\${APPNAME}"
|
||||
@ -70,7 +88,7 @@
|
||||
# Main Install settings
|
||||
Name "${APPNAMEANDVERSION}"
|
||||
InstallDirRegKey HKLM "Software\${APPNAME}" ""
|
||||
OutFile "${OUTDIR_}RetroShare-${VERSION}-${Date}-${REVISION}-Qt-${QTVERSION}${INSTALLERADD}-setup.exe"
|
||||
OutFile "${OUTDIR_}RetroShare-${VERSION}-${DATE}-${REVISION}-Qt-${QTVERSION}-${ARCHITECTURE}${INSTALLERADD}-setup.exe"
|
||||
BrandingText "${APPNAMEANDVERSION}"
|
||||
RequestExecutionlevel highest
|
||||
# Use compression
|
||||
@ -104,7 +122,7 @@ Var StyleSheetDir
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\retroshare.exe"
|
||||
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\changelog.txt
|
||||
!define MUI_FINISHPAGE_SHOWREADME_TEXT changelog.txt
|
||||
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
|
||||
;!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
|
||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"
|
||||
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
|
||||
;!define MUI_LANGDLL_REGISTRY_ROOT HKLM
|
||||
@ -175,7 +193,7 @@ Section $(Section_Main) Section_Main
|
||||
; Main binaries
|
||||
SetOutPath "$INSTDIR"
|
||||
File /oname=retroshare.exe "${RELEASEDIR}\retroshare-gui\src\release\retroshare.exe"
|
||||
File /oname=retroshare-nogui.exe "${RELEASEDIR}\retroshare-nogui\src\release\retroshare-nogui.exe"
|
||||
File /oname=retroshare-service.exe "${RELEASEDIR}\retroshare-service\src\release\retroshare-service.exe"
|
||||
|
||||
; Qt binaries
|
||||
File "${QTDIR}\bin\Qt5Core.dll"
|
||||
@ -202,18 +220,33 @@ Section $(Section_Main) Section_Main
|
||||
; MinGW binaries
|
||||
SetOutPath "$INSTDIR"
|
||||
File "${MINGWDIR}\bin\libstdc++-6.dll"
|
||||
File "${MINGWDIR}\bin\libgcc_s_dw2-1.dll"
|
||||
!if ${ARCHITECTURE} == "x86"
|
||||
File "${MINGWDIR}\bin\libgcc_s_dw2-1.dll"
|
||||
!endif
|
||||
!if ${ARCHITECTURE} == "x64"
|
||||
File "${MINGWDIR}\bin\libgcc_s_seh-1.dll"
|
||||
!endif
|
||||
File "${MINGWDIR}\bin\libwinpthread-1.dll"
|
||||
|
||||
; External binaries
|
||||
File "${EXTERNAL_LIB_DIR}\bin\miniupnpc.dll"
|
||||
File "${EXTERNAL_LIB_DIR}\bin\libeay32.dll"
|
||||
File "${EXTERNAL_LIB_DIR}\bin\ssleay32.dll"
|
||||
!if ${ARCHITECTURE} == "x86"
|
||||
File "${EXTERNAL_LIB_DIR}\bin\libcrypto-1_1.dll"
|
||||
File "${EXTERNAL_LIB_DIR}\bin\libssl-1_1.dll"
|
||||
!endif
|
||||
!if ${ARCHITECTURE} == "x64"
|
||||
File "${EXTERNAL_LIB_DIR}\bin\libcrypto-1_1-x64.dll"
|
||||
File "${EXTERNAL_LIB_DIR}\bin\libssl-1_1-x64.dll"
|
||||
!endif
|
||||
|
||||
; Other files
|
||||
File "${SOURCEDIR}\retroshare-gui\src\changelog.txt"
|
||||
File "${RELEASEDIR}\changelog.txt"
|
||||
File "${SOURCEDIR}\libbitdht\src\bitdht\bdboot.txt"
|
||||
|
||||
; License
|
||||
SetOutPath "$INSTDIR\license"
|
||||
File "${SOURCEDIR}\retroshare-gui\src\license\*.*"
|
||||
|
||||
; Image formats
|
||||
SetOutPath "$INSTDIR\imageformats"
|
||||
File /r "${QTDIR}\plugins\imageformats\qgif.dll"
|
||||
@ -236,19 +269,26 @@ Section $(Section_Main) Section_Main
|
||||
File /r "${QTDIR}\translations\qt_*.qm"
|
||||
File /r "${QTDIR}\translations\qtbase_*.qm"
|
||||
File /r "${QTDIR}\translations\qtscript_*.qm"
|
||||
File /r "${QTDIR}\translations\qtquick1_*.qm"
|
||||
File /r "${QTDIR}\translations\qtmultimedia_*.qm"
|
||||
File /r "${QTDIR}\translations\qtxmlpatterns_*.qm"
|
||||
|
||||
; WebUI
|
||||
SetOutPath "$INSTDIR\webui"
|
||||
File /r "${SOURCEDIR}\libresapi\src\webui\*.*"
|
||||
; SetOutPath "$INSTDIR\webui"
|
||||
; File /r "${SOURCEDIR}\libresapi\src\webui\*.*"
|
||||
|
||||
; License
|
||||
SetOutPath "$INSTDIR\license"
|
||||
File /r "${SOURCEDIR}\retroshare-gui\src\license\*.*"
|
||||
SectionEnd
|
||||
|
||||
# Tor
|
||||
!ifdef TOR_EXISTS
|
||||
Section /o $(Section_Tor) Section_Tor
|
||||
SetOutPath "$INSTDIR"
|
||||
File /r "${TORDIR}\*"
|
||||
SectionEnd
|
||||
!endif
|
||||
|
||||
# Plugins
|
||||
${!defineifexist} PLUGIN_FEEDREADER_EXISTS "${RELEASEDIR}\plugins\FeedReader\release\FeedReader.dll"
|
||||
${!defineifexist} PLUGIN_VOIP_EXISTS "${RELEASEDIR}\plugins\VOIP\release\VOIP.dll"
|
||||
@ -363,6 +403,7 @@ SectionEnd
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Plugin_VOIP} $(Section_Plugin_VOIP_Desc)
|
||||
; !insertmacro MUI_DESCRIPTION_TEXT ${Section_Link} $(Section_Link_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_AutoStart} $(Section_AutoStart_Desc)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section_Tor} $(Section_Tor_Desc)
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
# Uninstall
|
||||
|
@ -1,27 +0,0 @@
|
||||
:: Usage:
|
||||
:: call qt-cmd.bat <Qt version> [command]
|
||||
|
||||
@echo off
|
||||
|
||||
setlocal
|
||||
|
||||
set QtVersion=%~1
|
||||
|
||||
:: Initialize environment
|
||||
call "%~dp0env.bat"
|
||||
if errorlevel 1 goto error_env
|
||||
call "%EnvPath%\env-qt.bat" %QtVersion%
|
||||
if errorlevel 1 goto error_env
|
||||
|
||||
if "%~2"=="" (
|
||||
"%ComSpec%"
|
||||
) else (
|
||||
"%ComSpec%" /c %2 %3 %4 %5 %6 %7 %8 %9
|
||||
)
|
||||
|
||||
exit /B %ERRORLEVEL%
|
||||
|
||||
:error_env
|
||||
echo Failed to initialize environment.
|
||||
endlocal
|
||||
exit /B 1
|
@ -1,46 +0,0 @@
|
||||
:: Usage:
|
||||
:: call download-file-wildcard.bat url file-wildcard download-path variable
|
||||
|
||||
if "%~4"=="" (
|
||||
echo.
|
||||
echo Parameter error.
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
if "%EnvTempPath%"=="" (
|
||||
echo.
|
||||
echo Environment error.
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
setlocal
|
||||
|
||||
set Url=%~1
|
||||
set FileWildcard=%~2
|
||||
set DownloadPath=%~3
|
||||
set Var=%~4
|
||||
set File=
|
||||
|
||||
call "%~dp0remove-dir.bat" "%EnvTempPath%"
|
||||
mkdir "%EnvTempPath%"
|
||||
|
||||
"%EnvWgetExe%" --recursive --continue --no-directories --no-parent -A "%FileWildcard%" --directory-prefix="%EnvTempPath%" "%Url%"
|
||||
|
||||
if errorlevel 1 (
|
||||
call "%~dp0remove-dir.bat" "%EnvTempPath%"
|
||||
endlocal & set %Var%=
|
||||
exit /B %ERRORLEVEL%
|
||||
)
|
||||
|
||||
for %%A in (%EnvTempPath%\%FileWildcard%) do set File=%%~nxA
|
||||
if "%File%"=="" (
|
||||
call "%~dp0remove-dir.bat" "%EnvTempPath%"
|
||||
endlocal & set %Var%=
|
||||
exit /B %ERRORLEVEL%
|
||||
)
|
||||
|
||||
move "%EnvTempPath%\%File%" "%DownloadPath%"
|
||||
call "%~dp0remove-dir.bat" "%EnvTempPath%"
|
||||
|
||||
endlocal & set %Var%=%File%
|
||||
exit /B 0
|
@ -7,7 +7,6 @@ if "%~2"=="" (
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
::"%EnvCurlExe%" -L -k "%~1" -o "%~2"
|
||||
"%EnvWgetExe%" --no-check-certificate --continue "%~1" --output-document="%~2"
|
||||
powershell -NoLogo -NoProfile -Command (New-Object System.Net.WebClient).DownloadFile(\""%~1\"", \""%~2\"")
|
||||
|
||||
exit /B %ERRORLEVEL%
|
||||
|
50
build_scripts/Windows/tools/generate-changelog.bat
Normal file
50
build_scripts/Windows/tools/generate-changelog.bat
Normal file
@ -0,0 +1,50 @@
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
if "%~2"=="" (
|
||||
echo.
|
||||
echo Parameter error.
|
||||
echo Usage %~n0 sourcepath outputfile
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
:: Check git executable
|
||||
set GitPath=
|
||||
call "%~dp0find-in-path.bat" GitPath git.exe
|
||||
if "%GitPath%"=="" echo Git executable not found in PATH.& exit /B 1
|
||||
|
||||
set logfile=%~2
|
||||
copy nul %logfile% > nul
|
||||
|
||||
pushd %~1
|
||||
|
||||
set last=HEAD
|
||||
for /f %%t in ('git tag --sort=-taggerdate --merged ^| findstr v') do (
|
||||
echo generating changelog for !last!..%%t
|
||||
echo ----------------------------------------------- >> %logfile%
|
||||
if !last! neq HEAD (
|
||||
git tag -n !last! >> %logfile%
|
||||
) else (
|
||||
echo HEAD >> %logfile%
|
||||
)
|
||||
rem echo !last! ---^> %%t >> %logfile%
|
||||
echo ----------------------------------------------- >> %logfile%
|
||||
echo. >> %logfile%
|
||||
git log %%t..!last! --no-merges "--pretty=format:%%h %%ai %%<(10,trunc)%%an %%s" >> %logfile%
|
||||
echo. >> %logfile%
|
||||
echo. >> %logfile%
|
||||
set last=%%t
|
||||
)
|
||||
|
||||
echo generating changelog for %last%
|
||||
echo ----------------------------------------------- >> %logfile%
|
||||
git tag -n %last% >> %logfile%
|
||||
echo ----------------------------------------------- >> %logfile%
|
||||
echo. >> %logfile%
|
||||
git log %last% --no-merges "--pretty=format:%%h %%ai %%<(10,trunc)%%an %%s" >> %logfile%
|
||||
|
||||
popd
|
||||
|
||||
endlocal enabledelayedexpansion
|
||||
|
||||
exit /B 0
|
@ -1,42 +1,37 @@
|
||||
:: Usage:
|
||||
:: call get-gcc-version.bat variable
|
||||
:: call get-gcc-version.bat version architecture
|
||||
|
||||
setlocal
|
||||
|
||||
set Var=%~1
|
||||
if "%Var%"=="" (
|
||||
set VarVersion=%~1
|
||||
if "%VarVersion%"=="" (
|
||||
echo.
|
||||
echo Parameter error.
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
set VarArchitecture=%~2
|
||||
if "%VarArchitecture%"=="" (
|
||||
echo.
|
||||
echo Parameter error.
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
set GCCVersion=
|
||||
set GCCArchitecture=
|
||||
set _Architecture=
|
||||
|
||||
call "%~dp0find-in-path.bat" GCCPath gcc.exe
|
||||
if "%GCCPath%"=="" (
|
||||
echo.
|
||||
echo Cannot find gcc.exe in PATH.
|
||||
goto exit
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
gcc --version >"%~dp0gccversion.tmp"
|
||||
for /F "tokens=1*" %%A in (%~sdp0gccversion.tmp) do (
|
||||
if "%%A"=="gcc" (
|
||||
call :find_version %%B
|
||||
goto exit
|
||||
)
|
||||
)
|
||||
for /F "tokens=1-8* delims= " %%A in ('gcc --version') do if "%%A"=="gcc" set _Architecture=%%B& set GCCVersion=%%G
|
||||
|
||||
:exit
|
||||
if exist "%~dp0gccversion.tmp" del /Q "%~dp0gccversion.tmp"
|
||||
if "%_Architecture:~1,4%"=="i686" set GCCArchitecture=x86
|
||||
if "%_Architecture:~1,6%"=="x86_64" set GCCArchitecture=x64
|
||||
|
||||
endlocal & set %Var%=%GCCVersion%
|
||||
goto :EOF
|
||||
|
||||
:find_version
|
||||
:loop
|
||||
if "%2" NEQ "" (
|
||||
shift
|
||||
goto loop
|
||||
)
|
||||
set GCCVersion=%1
|
||||
endlocal & set %VarVersion%=%GCCVersion%& set %VarArchitecture%=%GCCArchitecture%
|
||||
exit /B 0
|
||||
|
@ -18,7 +18,7 @@ call "%~dp0find-in-path.bat" GitPath git.exe
|
||||
if "%GitPath%"=="" (
|
||||
echo.
|
||||
echo Git executable not found in PATH.
|
||||
goto exit
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
set GitParameter=
|
||||
|
@ -16,19 +16,10 @@ call "%~dp0find-in-path.bat" QMakePath qmake.exe
|
||||
if "%QMakePath%"=="" (
|
||||
echo.
|
||||
echo Cannot find qmake.exe in PATH.
|
||||
goto exit
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
qmake.exe -version >"%~dp0qtversion.tmp"
|
||||
for /F "tokens=1,2,3,4" %%A in (%~sdp0qtversion.tmp) do (
|
||||
if "%%A"=="Using" (
|
||||
set QtVersion=%%D
|
||||
goto exit
|
||||
)
|
||||
)
|
||||
|
||||
:exit
|
||||
if exist "%~dp0qtversion.tmp" del /Q "%~dp0qtversion.tmp"
|
||||
for /F "tokens=1,2,3,4 delims= " %%A in ('qmake.exe -version') do if "%%A"=="Using" set QtVersion=%%D
|
||||
|
||||
endlocal & set %Var%=%QtVersion%
|
||||
exit /B 0
|
32
build_scripts/Windows/tools/get-rs-date.bat
Normal file
32
build_scripts/Windows/tools/get-rs-date.bat
Normal file
@ -0,0 +1,32 @@
|
||||
REM Usage:
|
||||
REM call get-rs-date.bat SourcePath Variable
|
||||
|
||||
setlocal
|
||||
|
||||
set SourcePath=%~1
|
||||
set Variable=%~2
|
||||
if "%Variable%"=="" (
|
||||
echo.
|
||||
echo Parameter error
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
:: Check git executable
|
||||
set GitPath=
|
||||
call "%~dp0find-in-path.bat" GitPath git.exe
|
||||
if "%GitPath%"=="" (
|
||||
echo.
|
||||
echo Git executable not found in PATH.
|
||||
exit /B 1
|
||||
)
|
||||
|
||||
set Date=
|
||||
|
||||
pushd "%SourcePath%"
|
||||
rem This doesn't work: git log -1 --date=format:"%Y%m%d" --format="%ad"
|
||||
for /F "tokens=1,2,3* delims=-" %%A in ('git log -1 --date^=short --format^="%%ad"') do set Date=%%A%%B%%C
|
||||
popd
|
||||
|
||||
:exit
|
||||
endlocal & set %Variable%=%Date%
|
||||
exit /B 0
|
@ -27,7 +27,7 @@ set VersionMinor=
|
||||
set VersionMini=
|
||||
set VersionExtra=
|
||||
|
||||
for /F "tokens=1,2,3,* delims=.-" %%A in ('%EnvToolsPath%\sigcheck.exe -nobanner -n %Executable%') do (
|
||||
for /F "USEBACKQ tokens=1,2,3,* delims=.-" %%A in (`powershell -NoLogo -NoProfile -Command ^(Get-Item "%Executable%"^).VersionInfo.FileVersion`) do (
|
||||
set VersionMajor=%%A
|
||||
set VersionMinor=%%B
|
||||
set VersionMini=%%C
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user