Age | Commit message (Collapse) | Author |
|
This commit explicitly excludes certain targets from being built in a
unity build (or rather they continue to get built normally) as they
cause compilation errors in these kind of builds.
|
|
This was done by running scripts/updateLicenseHeaders.py and then
manually editing the LICENSE file.
|
|
The build number can be specified through the new "BUILD_NUMBER" variable.
This change is very important on Windows, for two reasons:
- It allows to easily identify binaries simply by looking at their version.
More specifically, we can guess what build they're part of.
- Right now snapshots can not be updated without uninstalling first, because the version is the same (i.e. 1.4.0).
By increasing the 4th digit of the version for every build we can solve the issue.
This commit also takes care of renaming a few variables so that they're consistent and also clearer.
For example, "version" is now "RELEASE_ID".
|
|
Installation paths can now be fine-tuned by setting the respective
MUMBLE_INSTALLATION_* variables when invoking cmake.
Additionally some components that only had install rules for a certain
OS are now installed on all OSes as these components should be needed
there as well.
|
|
Installation paths can now be fine-tuned by setting the respective
MUMBLE_INSTALLATION_* variables when invoking cmake.
Additionally some components that only had install rules for a certain
OS are now installed on all OSes as these components should be needed
there as well.
|
|
If the library is not explicitly specified, the compiler will choose a
version automatically. This chosen version however can easily conflict
with the one we set for the overlay-executables which would then cause a
conflict to arise (2 different versions of the library referenced) about
which MSVC will then warn us:
defaultlib 'MSVCRT' conflicts with use of other libs;
use /NODEFAULTLIB:library
Ref: https://stackoverflow.com/q/3007312/3907364
|
|
|
|
Furthermore this commit replaced the deprecated time.h header with ctime
|
|
|
|
Instead of having to change the version number and the build year in all
those files manually, we let cmake do the work by replacing the
respective values in templates.
|
|
This commit removes all qmake-related build-files from the system. We
have now migrated to cmake and are no longer maintaining qmake anyways
and therefore there is no reason to keep it.
Removing it also clearly states to any potential user/programmer that
this project is no longer intended to be compiled with qmake.
Given that the .pri files no longer exist, the mumble-version.py script
had to be adapted to read the version from the CMakeLists.txt file
instead.
Furthermore a few of the submodules support cmake natively and therefore
we no longer need the src/buid-directory approach in order to build
them. The respective build dirs have been removed and the src-dirs have
been renamed.
|
|
We are working on adding a 32 bit Windows build to Azure Pipelines and noticed that it was failing due to "IUnknown" not being defined.
The issue was quickly fixed by including <unknwn.h>, however we wondered why we didn't encounter it with the 64 bit Windows build (which compiles the overlay library as 64 bit and 32 bit).
Turns out minhook was used for the 32 bit overlay library due to the if() logic missing a crucial condition: "BUILD_OVERLAY_XCOMPILE" must be false, because "64_BIT" is true due to it being defined outside of the cross-compile environment.
|
|
|
|
|
|
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".
|
|
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.
|
|
|
|
|
|
This commit also changes <math.h> to <cmath>, because the former is deprecated and causes build errors.
|
|
This changes all occurances of NULL in the overlay source
dir to nullptr. Additionally explicit comparisons with NULL were
removed.
|
|
|
|
|
|
1.3.0 has been released. master now represents the current state of
development towards the next feature release 1.4.0.
Bugfixes for 1.3 will happen in the 1.3.x branch.
Compared to earlier version bumps we bump a lot more files because of
we produce more artifacts; overlay process, dll and exe split, etc.
This should have happened right after the 1.3.x branch was split off.
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
Consistently use single space before assignment operator.
|
|
Use correct types for handling pointer size/memory addresses.
Make use of boost optional as GetFnOffsetInModules return type. The
unsigned return type does not allow for negative error values anymore,
which we did not make use of anyway, and optional is more explicit.
Replaces workaround/error detection from the commits
114495e59f002531ac9bb02070a1bcbd6652669e
a3e7958f1605339560679cbbd3a27de4fd12066c
Fixes #1924
|
|
|
|
It is better to be explicit and API correct, even if the resulting
types ended up to be the same through typedefs or the implementation
reinterpret-casting to a memory address pointer.
|
|
|
|
As provided by Remadan in mumble-voip/mumble#3029.
LaunchPad is Daybreak Games's own launcher, used for games such as
PlanetSide 2 (Standalone) and others.
|
|
See #3043, fix if the itch user does not use the sandboxing feature of
the itch launcher.
|
|
This was originally implemented in
2f07778a0eaf349b6a80489007ac31b7e54064f2.
This change was a mistake. We use the WH_CBT hook to inject our DLL into
potential targets. That means that every mouse/keyboard event will trigger
an attempt to load our overlay DLL, if it isn't already loaded.
That, combined with the new ability for the overlay to decline being
injected caused problems for processes that are blacklisted by Mumble:
Every mouse/keyboard event would attempt to load the DLL, go through the
exclusion checks (query the process tree, query the registry, find out
that the process is blacklisted, unload the DLL...).
We can't have that, so let's just revert this.
|
|
This is useful for cases like GTA V.
Its launcher is available via Steam, or via Rockstar Social Club/Retail.
Before this change (if it wasn't already in the blacklist), the GTA V
Launcher, when launched through Steam, would show the overlay.
Now, since we treat it as a launcher, it'll be implicitly blacklisted.
|
|
|
|
|
|
The original launcher filter PR only added the 32-bit Guild Wars 2 client.
This adds the 64-bit client.
|
|
This commit hooks up the 'excludecheck' module into the Windows overlay.
|
|
excludecheck.cpp/excludecheck.h.
This commit adds an 'excludecheck' module to the Windows overlay DLL that
implements the exclusion logic for the Mumble overlay.
It implements the new launcher filter mode, as well as the traditional
whitelist and blacklist-based approaches.
The rules for the launcher filter mode are:
- Is the process blacklisted? Don't allow the overlay.
- Is the process whitelisted? Allow the overlay.
- Does the process's executable live in a whitelisted path? Allow the
overlay.
- Is one of the process's ancestors in the launcher whitelist? Allow the overlay.
- Otherwise, disallow overlaw.
These simple rules, along with some sane defaults allow much finer-grained
control over the overlay -- and it allows us to ship a default profile
where we practically only inject into games.
|
|
These were removed when we removed all the legacy exclusion logic.
This commit re-adds them in a more sensible way.
|
|
This is a small code-cleanup commit that moves the
procname parsing to a separate function. This makes
the code clearer, and we're able to properly document it.
|
|
Returning FALSE From DllMain when fdwReason is DLL_PROCESS_ATTACH
means you're declining to be loaded.
This allows us to be fully unloaded from program that we've decided
(via exclusion rules) we don't want to be in.
|
|
This removes the old white/blacklist exclusion code
from the overlay DLL.
This is done in a separte commit to aid in reviewability.
|
|
This change is a small refactoring in the overlay DLL.
We rename bBlacklisted to bEnableOverlay, because the
bEnableOverlay naming is clearer in a world where we
have the launcher filter exclusion mode.
|
|
settings.
This adds accessors for the new launcher-filter settings.
|
|
This new module exposes the GetProcessAncestorChain() function.
This function is going to be used by the new exclusion check module
to implement the launcher filter.
|