Commit Graph

8341 Commits

Author SHA1 Message Date
Nik Reist
b30ee28acb cmake: add include file containing CPack-specific stuff 2020-07-11 23:33:21 +02:00
Nik Reist
45e2241560 src/mumble: replace target_link_libraries() for Opus and CELT
target_link_libraries() automatically adds the library's include directories to the specified target and marks it as dependency.

Both steps are fine, however there's a third we don't need: linking to the library, because we load Opus and CELT at runtime.

To make it clear that we don't link to the libraries, this commit replaces target_link_libraries() with add_dependencies() and target_include_directories().
2020-07-11 19:37:21 +02:00
Septarius
c82d3aa419 overlay: add CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to overlay-xcompile
CMake prioritizes MinGW over MSVC, which means that the first is used if found in PATH.

Since overlay-xcompile is only meant to be used with MSVC (MinGW provides "-m32" to build as 32 bit), this commit forces the use of "cl".
2020-07-11 19:37:21 +02:00
Nik Reist
13e61b4dc3 overlay: build 32 bit library also in 64 bit builds on Windows
GCC and Clang provide the "-m32" and "-m64" options, which tell the compiler to build as 32 bit and 64 bit, respectively.

Unfortunately MSVC doesn't provide similar options, thus this commit converts "overlay" from a subdirectory to a project.

If the build is 32 bit, the project is processed a single time and compiles a 32 bit library.

If the build is 64 bit, the project is processed two times and compiles a 64 bit and a 32 bit library.
2020-07-11 19:37:21 +02:00
Davide Beatrici
2ee48b07c0 macx/scripts: allow to specify custom source and binary directories
Our qmake project forcibly put binaries into the "release" folder, inside the repository.

With the CMake project this is not the case: the source and binary directories can even reside on different drives.

Unfortunately the binary directory was hardcoded in both "build-overlay-installer" and "osxdist.py".
As for the source directory, both scripts simply expected to be run from the repository's root.

This commit adds the "--source-dir" and "--binary-dir" options to "osxdist.py". Default values: "." and "build", respectively.

"build-overlay-installer" now expects its working directory to be the binary folder.
No options are added; they are not required because the script is executed by "osxdist.py", which takes care of setting the working directory.

Extra change: "build-overlay-installer" now uses "PlistBuddy" rather than "defaults", because the latter doesn't support reading from a file anymore in macOS Catalina (10.15).
2020-07-11 19:37:18 +02:00
Davide Beatrici
31eb467b30 macx/osax: add CMakeLists.txt 2020-07-11 19:34:50 +02:00
Davide Beatrici
2cd227e245 overlay_gl: add CMakeLists.txt 2020-07-11 19:34:50 +02:00
Davide Beatrici
ede86a5abc overlay: add CMakeLists.txt files 2020-07-11 19:34:49 +02:00
Davide Beatrici
4d3a487b98 g15helper: add CMakeLists.txt 2020-07-11 19:34:49 +02:00
Davide Beatrici
6b87ac6221 Plugins: add CMakeLists.txt files 2020-07-11 19:34:49 +02:00
Davide Beatrici
abc04159f5 Tests: add CMakeLists.txt files 2020-07-11 19:34:49 +02:00
Davide Beatrici
4100d8db4f Server: add CMakeLists.txt files 2020-07-11 19:34:49 +02:00
Davide Beatrici
d6847fdaac Client: add CMakeLists.txt files 2020-07-11 19:34:49 +02:00
Davide Beatrici
73617917c7 Add main CMakeLists.txt files 2020-07-11 19:34:49 +02:00
Davide Beatrici
f08cfe5fa4 Add CMake functions and modules 2020-07-11 19:34:49 +02:00
Davide Beatrici
cf73a35657 3rdparty/mach-override-build: add CMake project 2020-07-11 19:34:49 +02:00
Davide Beatrici
9e78075cd0 3rdparty/xinputcheck-build: add CMake project 2020-07-11 19:34:49 +02:00
Davide Beatrici
2fc3c01f0c 3rdparty/speex-build: add CMake project 2020-07-11 19:34:49 +02:00
Davide Beatrici
369c855570 3rdparty/rnnoise-build: add CMake project 2020-07-11 19:34:49 +02:00
Davide Beatrici
dc235efe2a 3rdparty/celt-0.7.0-build: add CMake project 2020-07-11 19:34:49 +02:00
Davide Beatrici
9ddad2bbe4 3rdparty: update "opus-src" submodule 2020-07-11 19:34:49 +02:00
Davide Beatrici
dcd49e79cb Templatize Windows resource files (.rc) 2020-07-11 19:34:49 +02:00
Davide Beatrici
fc00f8ee2b PAAudio.h: add missing include for QWaitCondition 2020-07-11 19:34:49 +02:00
Davide Beatrici
ca21e276d1 overlay: remove unnecessary _WIN32_WINNT definition, add missing includes
This commit also changes <math.h> to <cmath>, because the former is deprecated and causes build errors.
2020-07-11 19:34:49 +02:00
Davide Beatrici
a8685afe56 src/mumble/WASAPI.cpp: fix redefinition with MinGW in protobuf's "strutil.h"
<shlwapi.h> defines "StrCat", resulting in the following issue when compiling WASAPI.cpp with MinGW:

In file included from /usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/google/protobuf/message_lite.h:50:0,
                 from /usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/google/protobuf/generated_enum_util.h:36,
                 from /usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/google/protobuf/map.h:48,
                 from /usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/google/protobuf/generated_message_table_driven.h:34,
                 from src/Mumble.pb.h:26,
                 from ../src/mumble/MainWindow.h:17,
                 from ../src/mumble/WASAPI.cpp:9:
/usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/google/protobuf/stubs/strutil.h:706:31: error: expected unqualified-id before 'const'
 PROTOBUF_EXPORT string StrCat(const AlphaNum& a, const AlphaNum& b);
                               ^
/usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/google/protobuf/stubs/strutil.h:706:31: error: expected ')' before 'const'
In file included from ../src/mumble/WASAPI.h:18:0,
                 from ../src/mumble/WASAPI.cpp:6:
/usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/google/protobuf/stubs/strutil.h:707:24: error: redefinition of 'std::__cxx11::string google::protobuf::StrCat_instead_use_StringCbCat_or_StringCchCat'
 PROTOBUF_EXPORT string StrCat(const AlphaNum& a, const AlphaNum& b,
                        ^
/usr/lib/mxe/usr/x86_64-w64-mingw32.static/include/google/protobuf/stubs/strutil.h:706:24: note: 'std::__cxx11::string google::protobuf::StrCat_instead_use_StringCbCat_or_StringCchCat' previously declared here
 PROTOBUF_EXPORT string StrCat(const AlphaNum& a, const AlphaNum& b);
                        ^
2020-07-11 19:34:49 +02:00
Davide Beatrici
401bceeb32 mumble/main.cpp: include <shellapi.h> for ShellExecuteEx()
src\mumble\main.cpp(647): error C2065: 'SHELLEXECUTEINFO': undeclared identifier
src\mumble\main.cpp(647): error C2146: syntax error: missing ';' before identifier 'si'
src\mumble\main.cpp(647): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(648): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(648): error C2065: 'SHELLEXECUTEINFO': undeclared identifier
src\mumble\main.cpp(649): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(649): error C2065: 'SHELLEXECUTEINFO': undeclared identifier
src\mumble\main.cpp(650): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(651): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(653): error C2065: 'si': undeclared identifier
src\mumble\main.cpp(653): error C3861: 'ShellExecuteEx': identifier not found
2020-07-11 19:34:49 +02:00
Robert Adam
bca041e2b2
Merge pull request #4358: FIX(shortcuts-ui): Clear selection after remove
Right now after having removed a shortcut from the UI, the next shortcut
in the list is selected automatically. This could cause the user to
accidentally delete this next shortcut by accident as the mouse is
hovering over the remove button anyways.

This change makes mass-removing of shortcuts a bit tedious but I don't
think that this is a common thing to do. Given that you can't undo the
deletion of a shortcut, we should better be safe than sorry with this.
2020-07-11 18:19:42 +02:00
Robert Adam
6a2610c24a
Merge pull request #4352: FEAT(manual-plugin): Show speaker's position
With this change the positions of other speakers are also displayed in
the UI of the ManualPlugin (next to your own position) as red dots. This
allows for better understanding of the positional audio feature.

It is also possible to specify a time for these dots to persist even if
the corresponding speaker has stopped talking. In this time the
respective dot will start to fade out until it gets removed completely.

This does not show the names of the associated speakers in order to not
clutter the UI too much. If this information is needed, the TalkingUI
can be opened alongside the ManualPlugin to get an overview of who's
currently talking.
2020-07-11 17:18:45 +02:00
Robert Adam
fc0a7cef8d
Merge pull request #4360: FIX(translation): Make "Ignore"-string translatable
For some reason the "Ignore" String in the ConnectDialogEdit was not
marked as translatable. This is fixed by this commit.

Fixes #4359
2020-07-10 20:15:38 +02:00
Robert Adam
a0b823c70a Translation update
Updating 'mumble_en.ts'...
    Found 1886 source text(s) (1 new and 1885 already existing)
2020-07-10 19:39:44 +02:00
Robert Adam
cdac8facb4 FIX(translation): Make "Ignore"-string translatable
For some reason the "Ignore" String in the ConnectDialogEdit was not
marked as translatable. This is fixed by this commit.

Fixes #4359
2020-07-10 19:39:44 +02:00
Robert Adam
f07636ad84
Merge pull request #4342: MAINT(readme): Rework READMEs
We had several README files at the project's root. This PR merges and/or moves them around so that we end up with only a single one that's left at the project root.
2020-07-10 19:28:55 +02:00
Robert Adam
8b845341b4 FIX(shortcuts-ui): Clear selection after remove
Right now after having removed a shortcut from the UI, the next shortcut
in the list is selected automatically. This could cause the user to
accidentally delete this next shortcut by accident as the mouse is
hovering over the remove button anyways.

This change makes mass-removing of shortcuts a bit tedious but I don't
think that this is a common thing to do. Given that you can't undo the
deletion of a shortcut, we should better be safe than sorry with this.
2020-07-10 16:49:40 +02:00
Robert Adam
7fb1f8fbc5 MAINT(readme): Added info about reporting issues 2020-07-09 16:33:35 +02:00
Robert Adam
5670cb9964 MAINT(readme): Add link to wiki 2020-07-09 16:31:05 +02:00
Robert Adam
bdbd5663fd Translation update
Updating 'mumble_en.ts'...
    Found 1886 source text(s) (3 new and 1883 already existing)
2020-07-09 16:07:23 +02:00
Robert Adam
f71adb5072 FEAT(manual-plugin): Show speaker's position
With this change the positions of other speakers are also displayed in
the UI of the ManualPlugin (next to your own position) as red dots. This
allows for better understanding of the positional audio feature.

It is also possible to specify a time for these dots to persist even if
the corresponding speaker has stopped talking. In this time the
respective dot will start to fade out until it gets removed completely.

This does not show the names of the associated speakers in order to not
clutter the UI too much. If this information is needed, the TalkingUI
can be opened alongside the ManualPlugin to get an overview of who's
currently talking.
2020-07-09 16:03:23 +02:00
Robert Adam
180f44fbac
Merge pull request #4316: Allow disabling the public-server-list
This implements #4070 and makes it possible to hide the public-server-list from the connect dialog.
The save location was left under ui for backwards compatibility.

This is a follow-up on #4305
2020-07-09 07:56:36 +02:00
Robert Adam
9d244227aa
Merge pull request #4147: FEAT(server): Add rememberduration option
This option allows to set a threshold on how long a user's channel
should be remembered. This is useful for scenarios where users usually
don't want their channel to be remembered by the server unless they had
a disconnect (aka have ot re-connect after a short period of time).

Implements #4143
2020-07-08 19:21:27 +02:00
Tim-Marek Thomas
40bf15b8bd Translation update
Updating 'mumble_en.ts'...
    Found 1884 source text(s) (2 new and 1882 already existing)
2020-07-08 18:22:20 +02:00
Tim-Marek Thomas
0ada48fb2b FEAT(settings): Allow disabling of the public server list
This commit makes it possible to hide the public server list from the connect dialog.
The setting's group was left to be "ui" for backwards compatibility (even though the
actual setting is part of the network settings in the UI).

Implements #4070
2020-07-08 18:21:37 +02:00
Robert Adam
83ccd89396 MAINT(readme): Reorganize README
This re-organizes the README file by splitting it up by OS.

Furthermore this commit has merged the contents of README.Linux into the
main README file in order to have all in one place.
2020-07-08 17:55:46 +02:00
Robert Adam
47d32fde44 MAINT(readme): Deleted README in favor of README.md
Mainting 2 README files that should basically contain the same content
is very error prone in case someone edits one and forgets about the
other.

Thus the Windows installer will now ship the markdown version of the
README as well. It should still be readable - just a little less pretty
if no Markdown-viewer is available.
2020-07-08 17:55:46 +02:00
Robert Adam
870f0c3cfe MAINT(readme): Move READMEs for static server into docs/ 2020-07-08 17:55:46 +02:00
Robert Adam
f45d8245a1 MAINT(readme): Drop "for gamers" from README 2020-07-08 17:55:39 +02:00
Robert Adam
ee1eb75cf5
Merge pull request #4345: FIX(cert, mac): Avoid adding key pairs into system's keychain of MacOS.
One unexpected behavior of Qt's SSL backend is: it will add the key pair
it uses in a connection into the default keychain, and when access the private
key afterward, a pop up will show up asking for the user's permission.
In some case (OS X 10.15.5), this pop up will be suppressed somehow and no private
key is returned.
This env variable will avoid Qt directly adding the key pair into the default keychain,
using a temporary keychain instead.
See #4298 and https://codereview.qt-project.org/c/qt/qtbase/+/184243

After this patch, the key pair won't be automatically added to the default keychain, therefore no annoying popup will show up. Also, #4298 is solved.

Fixes #4298
2020-07-08 17:36:17 +02:00
Terry Geng
8de96f5073
FIX(cert, mac): Avoid adding key pairs into system's keychain of MacOS.
One unexpected behavior of Qt's SSL backend is: it will add the key pair
it uses in a connection into the default keychain, and when access the private
key afterwards, a pop up will show up asking for user's permission.
In some case (OS X 10.15.5), this pop up will be suppressed somehow and no private
key is returned.
This env variable will avoid Qt directly adding the key pair into the default keychain,
using a temporary keychain instead.
See #4298 and https://codereview.qt-project.org/c/qt/qtbase/+/184243

Fixes #4298
2020-07-08 22:39:44 +08:00
Robert Adam
34dd6653e6
Merge pull request #4349: CI(azure): Fix brew-error for installed packages
If brew is asked to install a package that is already installed, it will
set a non-zero exit status that causes the CI to abort and fail.

The fix for that is to explicitly check every package for whether it is
already installed and only if they are not, ask brew to install them.

This fix is the same that has been applied in
3e0c506
2020-07-08 16:37:44 +02:00
Robert Adam
e28855e963 CI(azure): Fix brew-error for installed packages
If brew is asked to install a package that is already installed, it will
set a non-zero exit status that causes the CI to abort and fail.

The fix for that is to explicitly check every package for whether it is
already installed and only if they are not, ask brew to install them.

This fix is the same that has been applied in
3e0c5065d2
2020-07-08 15:57:08 +02:00
deluxghost
13b85a3ae2 FEAT(server): Add rememberduration option
This option allows to set a threshold on how long a user's channel
should be remembered. This is useful for scenarios where users usually
don't want their channel to be remembered by the server unless they had
a disconnect (aka have ot re-connect after a short period of time).

Implements #4143
2020-07-03 19:27:45 +02:00