Commit Graph

87 Commits

Author SHA1 Message Date
Davide Beatrici
c176974ea3
Merge PR #3589: Crossbuild fix 2019-01-26 21:07:59 +01:00
Davide Beatrici
b427333257 Auto-update LICENSE.header in source files 2019-01-25 04:56:19 +01:00
Chris Knadle
bb61d40b2a main.pro: use PKG_CONFIG instead of hardcoding call to pkg-config
Patch supplied by Helmut Grohne <helmut@subdivi.de> in Debian bug #919453
https://bugs.debian.org/919453

Use set variable PKG_CONIFG to allow calling the pkg-config for the
architecture supplied in the build environment to allow cross building.
2019-01-19 05:39:36 +00:00
main()
8060171958 Add RNNoise support 2018-07-07 00:40:05 +02:00
davidebeatrici
e348e47f4a Remove leftover includes from "main" and "macx" project files 2018-01-12 18:08:15 +01:00
Mikkel Krautz
f6ba3a52bf Auto-update LICENSE.header in source files. 2018-01-01 23:05:37 +01:00
Mikkel Krautz
828d9301f5 Remove DIST directive from all .pro files.
We used to use DIST for referencing extra files that should be included
in our tarballs created by 'make dist'.

However, we've since migrated away relying on 'make dist' in release.pl.
Instead, we include everything, and have a list of items to exclude, such
as IETF RFC drafts distributed in 3rdparty/speex-src that do not adhere to
the Debian Free Software Guidelines.
2017-08-06 20:38:14 +02:00
Mikkel Krautz
1a953fceb3 main.pro: use qmake/compiler.pri -- the compiler.pri in the root does not exist.
Apparenty, a lot of our builders didn't catch this, apparently because
they don't clean the Git repo on every build.
2017-03-12 20:07:52 +01:00
Mikkel Krautz
617247738b Add make target 'check' to the build.
This commits adds a 'make check' target to Mumble's build.

To enable tests, add CONFIG+=tests when configuring the
Mumble build.

It's all based on Qt's existing support for this.
To add a testcase, simply add CONFIG+=testcase to its .pro file.
Then, that test will automatically be built and run when 'make check'
is run.

This commit also adds the recent TestCryptographicHash test to the
test suite, as the -- for now -- only test.
2017-02-26 00:42:09 +01:00
Davide Beatrici
f1ba1df6b8
main.pro: don't build minhook if "no-overlay" option specified
We use minhook only for the overlay. Therefore, If the option "no-overlay" is present, we shouldn't build it.
2017-01-22 22:26:01 +01:00
Davide Beatrici
920244c1b8
main.pro: fix no-overlay to actually work on Windows 2017-01-22 21:59:51 +01:00
Davide Beatrici
fda85f4331
main.pro: ensure we don't build overlay_gl on Windows. 2017-01-22 21:57:41 +01:00
Davide Beatrici
e42e6ca984
Make "no-overlay" option available also for Windows
The option currently works only on Linux, since there was no need in Windows, until now.
During a MinGW build test we noticed that minhook can be compiled only with MSVC, for various macros and probably other things.
2017-01-22 21:32:27 +01:00
Mikkel Krautz
91ebb8b0b5 Update tree copyrights to 2017. 2017-01-08 21:05:57 +01:00
Mikkel Krautz
66693d8db8 main.pro: don't build overlay on OpenBSD.
Accomplish this by automatically setting CONFIG+=no-overlay
on OpenBSD.
2016-11-27 04:21:51 +01:00
Mikkel Krautz
84d88b3749 main.pro: include compiler.pri to make CONFIG(buildenv) check in macx section work. 2016-11-17 23:26:11 +01:00
Mikkel Krautz
d2c0cc3881 main.pro: use CONFIG(buildenv) instead of custom buildenv-detection logic. 2016-11-13 20:41:12 +01:00
Mikkel Krautz
ce9e4c7ba3 *.pri: update to use LICENSE.header. 2016-05-10 22:42:03 +02:00
Tim Cooper
edcd4cde27 grpc: require protobuf>=3 2016-05-08 16:45:52 +02:00
Mikkel Krautz
7666447df6 grpc: rename murmur_grpc_wrapper_gen to murmur_grpcwrapper_protoc_plugin.
Also, rename the binary to protoc-plugin-murmur-grpcwrapper.
2016-05-08 16:45:52 +02:00
Tim Cooper
ff109d96f0 grpc: integrate murmur_grpc_wrapper_gen into qmake build 2016-05-08 16:45:52 +02:00
Tim Cooper
7c7ccfb4cb grpc: change "no-grpc" build flag to "grpc" 2016-05-08 16:45:52 +02:00
Tim Cooper
e953933f85 grpc: move grpc protobuf into separate sub-project 2016-05-08 16:45:52 +02:00
Mikkel Krautz
6f1331b2e6 GlobalShortcutWin: Exclude XInput devices from DirectInput.
This adds a dependency on a small library, XInputCheck, which is
a function abstracted away from SDL. All it does is check whether
a given DirectInput guidProduct is an XInput device.
2016-03-03 16:13:26 +01:00
Mikkel Krautz
329afa3740 main.pro, 3rdparty: remove fx11 from the Mumble build.
It is no longer used.

Goodbye.
2015-11-28 10:05:07 +01:00
Stefan Hacker
d8889f8bde Extract Ice compilation to murmur_ice lib
This allows us to suppress the warnings the auto-generated
code produces.
2015-10-25 18:19:33 +01:00
Stefan Hacker
75feffb302 Suppress protobuf warnings in unix builds
The protobuf code creates lots of spurious warnings
throughout our compile which we can do nothing about.
This patch changes the way we integrate the generated
code in our build to work around this.

We now run protoc and generated code compilation as a seperate
mumble_proto target producing a static lib. This lib is then
linked by mumble and murmur.

The folder of this module is added to the include paths so
Mumble.pb.h is available. On Unix platforms a -isystem entry
is added for the directory.

The advantages of this approach is that we can disable warnings
for the compilation of this target like we do for 3rd party modules.
Additionally we no longer generate and compile the protobuf files
twice.
2015-07-04 15:12:49 +02:00
Evan Purkhiser
c005fe3486 Remove tabs from the project file 2015-05-09 10:51:37 +02:00
Stefan Hacker
2c0d37f9ef Switch from old speex to new speex and speexdsp
The speex library has been split into a codec part
(speex) and a dsp part (speex-dsp). As we still need
the codec for compatibility with 3rd party clients
only sending speex but still want the updates that
went into the dsp and codec since then this patch
modifies our build to enable that. To achieve that
we combined the two libraries back together. Doing
it this way might brittle but is only a temporary
solution until we can actually drop the codec part.
2015-05-06 20:22:11 +02:00
Mikkel Krautz
3a6c4f0fee Build two separate Windows overlays - one for x86 and one for x86_64.
This splits fx11 into an x86 variant and an x64 variant.
This creates effects11_x86.lib and effects11_x64.lib, instead
of the single effects11.lib we had previously.

The minhook build is also tweaked. However, since minhook
is only used on x86_64, it is only built for x86_64.
Consequently, the library is still called minhook.lib.

The overlay itself is split into mumble_ol.dll and mumble_ol.exe
for x86, and mumble_ol_x64.dll and mumble_ol_x64.exe for x86_64.
2015-04-22 21:03:39 +02:00
Mikkel Krautz
f0ff84f6c0 Unify overlay code for Unix and OS X.
This commit removes macx/overlay and merges
the OS X overlay into the Unix overlay in
overlay_gl.

Most of the overlay logic is exactly the same,
with most of the differences being in the
initialization code and the addition of few new
messages for the interactive client-in-overlay
feature that the OS X overlay suports.

The initialization code is factored out into
init_unix.c for Unix-likes and init_mac.c
for OS X.

These init files are #included by overlay.c.
That is, they're not separate translation
units. Doing it this way cuts down on the
total LOC count and overall complexity of the
code.

The interactive overlay support is ported
directly from the OS X overlay. It's mostly
a matter of supporting a few new message types:
OVERLAY_MSGTYPE_PID and OVERLAY_MSGTYPE_INTERACTIVE.

The overlay_gl.pro file in this commit is mostly
just a combination of the .pro files of the two
overlays, with a minor difference in the CFLAGS
for the OS X overlay. In old OS X overlay, the
overlay had an ".m" file extension, signalling
that it is an Objective-C source file to the
C compiler. Since the combined overlay has a
".c" extension, "-x objective-c" is added to
CFLAGS on OS X to tell the compiler to compile
the overlay as Objective-C code.
2015-02-07 23:24:47 +01:00
Mikkel Krautz
403aedb35d Add mach_override as a 3rdparty dep and hook it into the OS X overlay.
Prior versions of mach_override were small (a single file),
and we just had its source live in the OS X overlay directory.

Newer versions of mach_override use libudis86, so the file count
goes up a fair bit. So much so that it doesn't make sense to
have it live inside the OS X overlay anymore.

Because of that, this commit moves it into 3rdparty.
2015-02-05 23:11:28 +01:00
Mikkel Krautz
9f1e60507b Move Windows overlay setup and injection to mumble_ol.exe.
This changes Mumble on Windows to run a helper process,
mumble_ol.exe, instead of loading mumble_ol.dll itself.

Prior to this change, Mumble would load mumble_ol.dll and
call PrepareD3D9() and PrepareDXGI() to set up the overlay.
Then, if the overlay was enabled, it would call InstallHooks()
to enable automatic injection of the overlay into new processes.
Similarly, it would call RemoveHooks() to disable automatic
overlay injection when the overlay was disabled in Mmuble.

With this change, Mumble instead runs a helper process called
mumble_ol.exe. This process sets up the overlay (equivalent
to calling PrepareD3D9(), PrepareDXGI() and calling InstallHooks()).
While running, it'll automatically inject the overlay into new
processes, just like Mumble itself did previously. On normal exit,
the helper process calls RemoveHooks() to ensure automatic overlay
injection is disabled.

To enable the overlay, Mumble starts the helper process.
To disable the overlay, Mumble terminates the helper process.
If the helper process dies when it is supposed to be running,
Mumble restarts it to ensure that overlay injection keeps
working as intended.

This change is the first part of enabling both an x86 and an x64
overlay to be active in Mumble at the same time. Since we cannot
load a 32-bit DLL into a 64-bit process (or vice versa), we need
a helper process for each architecture to reach our goal.
Note however that this commit in itself does not make it possible
for Mumble to run both an x86 and an x64 overlay at the same time.
This will come later.
2015-01-15 16:48:27 +01:00
Mikkel Krautz
faa67303bd Move speex, celt-0.7.0, celt-0.11.0, opus and sbcelt to the 3rdparty directory. 2015-01-05 23:11:59 +01:00
Mikkel Krautz
93ad74b467 Add MinHook-based overlay for Windows x64.
This commit adds MinHook as a 3rd party
dependency and adds an alternative HardHook
implementation that makes use of MinHook.

This new MinHook-based HardHook implementation
allows us to provide an overlay for Mumble on
Windows x64.

The x64 overlay hasn't seen much testing in
real-world x64 games, except some minor testing
for World of Warcraft running in x64 mode, where
it works just fine.

There seems to be a compatibility with the Uplay
overlay, which causes Far Cry 4 to crash at the
"Press any key to continue" screen that is shown
just after launching the game. However,
Assassin's Creed: Unity works fine, so it might
just be a Far Cry 4 issue.

The x64 overlay also seems to interoperate with
the Steam overlay just fine.

I think this is a good starting point for the
feature. Let us get it into snapshots and let
us try to squash any addition bugs we find.
2015-01-03 19:44:02 +01:00
Mikkel Krautz
d55d944ebc g15helper: update G15 SDK paths for OS X.
The g15helper program is currently coded against Logitech's
legacy G15 SDK. Logitech's newer SDK, which is the only one
shipped in their newer versions of Logitech Gaming Software,
is not compatible.

For OS X, the legacy SDK is still available for download
if you download the version of LGS (GamePanel 3.x) that
supports OS X 10.4 through 10.6. However, the SDK shipped
in this version of their software uses slightly different
paths than we expect.

This commit changes the paths to make sense with the SDK
shipped with the GamePanel 3.x software.
2014-02-08 12:23:54 +01:00
Kissaki
9544bec1f9 Overlay: Add Direct3D 11 support
* Based on an initial patch by Benjamin Jemlich
* Effects11 code based on changes by nyet
2014-01-10 22:51:11 +01:00
Mikkel Krautz
6da29305b8 mumble, murmur: final adjustments for the win32-static buildenv.
With this change, CONFIG(static) on Windows will cause the Mumble client's
application logic to be built into a .DLL called mumble_app.dll
(based on pcgod's previous DLL changeset).

Since src/mumble will now be built as a DLL, a wrapper executable is available
in src/mumble_exe. This wrapper is currently implemented such that it will
load mumble_app.dll from the directory that it resides in.

This means that when building statically, src/mumble and src/mumble_exe will
now give us the following products:

  src/mumble:      mumble_app.dll
  src/mumble_exe:  mumble.exe

Along with the two major points above, this change also adds a Python script
to the build, 'gen-mumble_app-qt-def.py', whose job is to construct a module
definition (.def) file for mumble_app.dll. The generated module definition
lists the Qt symbols that are needed for the manual positioning plugin to work.

If we need to expose more symbols in the future (say we want to implement
more plugin kinds than the current positional audio plugins), we now have
the infrastructure in place to do that.
2013-08-25 13:22:38 +02:00
Mikkel Krautz
c2655fc265 Mumble: allow client to use SBCELT for CELT decoding via CONFIG(sbcelt). 2012-08-09 23:53:09 +02:00
Benjamin Jemlich
e0d031d220 Add (no-)bundled-opus config options 2012-07-09 12:04:13 +02:00
Benjamin Jemlich
1368cbb6cf Enable Opus by default 2012-07-04 13:39:21 +02:00
Mikkel Krautz
cde6c68838 Revert back to mumble-g15-helper-based G15 support on Windows. 2012-02-05 02:42:41 +01:00
Benjamin Jemlich
7586a61226 Add basic Opus support 2011-11-05 23:21:22 +01:00
Thorvald Natvig
1161c9a1c4 Remove 1.1.x - no longer maintained 2011-02-20 04:21:34 +01:00
Thorvald Natvig
685809cf83 Remove CELT 0.10.0 2011-02-07 02:00:47 +01:00
Benjamin Jemlich
58aba64e55 Add CELT 0.11.0 support 2011-02-04 18:54:11 +01:00
Thorvald Natvig
c61522e2e9 Remove older CELT 0.9.0 2011-01-23 02:31:06 +01:00
Benjamin Jemlich
83dcdc3fd9 Add CELT 0.10.0 2010-12-21 06:18:29 +01:00
Stefan Hacker
ca23daf003 Add no-vld and no-plugin qmake flags 2010-11-15 11:59:40 +01:00
Benjamin Jemlich
7186e61bd4 Replace CELT 0.8.1 with 0.9.0 2010-11-06 19:53:04 +01:00