Commit Graph

8351 Commits

Author SHA1 Message Date
Davide Beatrici
54e313481d
Merge PR #4252: Introduce CMake as build system 2020-07-12 19:17:21 +02:00
Robert Adam
7c048b75d3 Added experimental check for g++-multilib when compiling 32bit overlay 2020-07-11 23:33:25 +02:00
Robert Adam
4010db10c2 Error on unknown architecture 2020-07-11 23:33:25 +02:00
Robert Adam
50305d9119 Remove "primarily intended for gamers" from project description 2020-07-11 23:33:25 +02:00
Robert Adam
cd67b90bf7 Make version RegEx more robust 2020-07-11 23:33:25 +02:00
Davide Beatrici
0b26fc7d3d CI: Build with CMake 2020-07-11 23:33:25 +02:00
Nik Reist
5c735e186b CMakeLists.txt: add "packaging" option, disabled by default 2020-07-11 23:33:25 +02:00
Nik Reist
2581534c04 scripts: add PowerShell script to build multilanguage installer
This is basically a replacement for our old Perl script ("build_installer.pl").

Aside from using CPack instead of MSBuild, there's not much difference in terms of methodology.

The Perl script exclusively uses Windows SDK tools; the PowerShell one uses a COM object, a WiX tool and an extra one from FireGiant (WiX's developers).

In future we should investigate whether using the "WindowsInstaller.Installer" COM object (used to replace "msiinfo.exe") we can replace FireGiant's EmbedTransform, so that WiX remains the only dependency.

Co-authored-by: Davide Beatrici <git@davidebeatrici.dev>
2020-07-11 23:33:25 +02:00
Nik Reist
fd6569d1e6 installer: add WiX files for CPack 2020-07-11 23:33:25 +02:00
Nik Reist
261756a7e2 Add install() directives, for "install" step and CPack 2020-07-11 23:33:25 +02:00
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