Commit Graph

298 Commits

Author SHA1 Message Date
Robert Adam
02e99d187e BUILD(cmake): Ensure proper build order 2025-09-20 18:24:01 +02:00
Robert Adam
8618c0993d BUILD(overlay): Unify use of overlay-xcompile option across OSes 2025-09-20 18:24:01 +02:00
Robert Adam
3757bac1b0 REFAC(overlay): Get rid of goto 2025-08-05 18:37:13 +02:00
Robert Adam
4561d6ecd2 MAINT: Add missing header 2025-08-04 22:41:46 +02:00
Davide Beatrici
2a8198f4d6 FIX(cmake): Don't set WORKING_DIRECTORY for ExternalProject_Add()
This is a workaround for a bug that appeared in a recent version of CMake.

WORKING_DIRECTORY prepends the specified path to a list instead of using it directly, resulting in:

cd /D D:\a\1\b\overlay\overlay_xcompile-prefix;D:\a\1\b\overlay\overlay_xcompile-prefix\src\overlay_xcompile-build

For reference, this causes the build to fail on Windows with the following error:

"The filename, directory name, or volume label syntax is incorrect."

This commit simply removes the parameter from the ExternalProject_Add() call, since the default working directory is perfectly fine.
2024-11-28 15:52:08 +01:00
Robert Adam
330c356e71 MAINT: Remove copyright year from all copyright notices
Keeping these up-to-date is just super tedious and they don't really
fulfill any purpose these days.
2024-09-30 18:06:20 +02:00
Robert Adam
2e7e7ee666 BUILD(cmake): Module to fetch compiler-dependent flags
Using a separate module instead of encoding the different flags for
different compilers into our own cmake source code should clean things
up a bit and make the intention more clear (as the flags sometimes have
rather cryptic names).

This commit also contains a functional change in that it removes the
"fast-math" compile option (from optimized builds) as this is
incompatible with at least Opus.
2024-01-07 17:10:11 +01:00
Robert Adam
af14008025 BUILD: Auto-determine Windows xcompile triplet 2024-01-01 11:45:59 +01:00
Robert Adam
249d2c6298 MAINT: Update copyright headers to 2023 2023-01-08 15:54:35 +01:00
Robert Adam
406ce93b47 MAINT: Use separate directory for auxiliary files 2022-09-10 17:28:34 +02:00
Robert Adam
d100ff1467 MAINT: Update copyright to 2022 2022-01-04 20:17:33 +01:00
Robert Adam
6fdc8affc2 BUILD: Use build number instead of patch version
Using a four-segment version (major.minor.patch.build) is causing issues
on Windows, because it tends to ignore the fourth version number in most
cases. This can cause upgrades to fail and/or multiple entries being
created in the installed applications list.

For this reason, this commit changes the version format to be
major.minor.build.

Fixes #4921
2021-11-28 20:12:06 +01:00
Robert
56db3410c5 MAINT: Update copyright notice to 2021 (Part II)
Apparently the first commit (59ae429972)
did not include all files.

Furthermore the used script tended to produce funny results in certain
cases. This has been fixed and as a result thereof a few more changes
were made in this second run.
2021-04-09 15:41:49 +02:00
Robert Adam
b63adf6e86 BUILD(cmake): Make unity builds possible
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.
2021-03-06 18:57:22 +01:00
Robert Adam
59ae429972 MAINT: Update copyright notice to 2021
This was done by running scripts/updateLicenseHeaders.py and then
manually editing the LICENSE file.
2021-03-02 10:15:01 +01:00
Davide Beatrici
27471118b5 BUILD(versioning): Make use of the 4th part (build/tweak) of the version
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".
2021-01-06 19:42:48 +01:00
Robert Adam
bf9550a68e
Merge pull request #4503: BUILD(cmake): Revamp install paths
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.
2020-10-24 17:38:56 +02:00
Robert
b9b41621c5 BUILD(cmake): Revamp install paths
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.
2020-10-24 15:57:01 +02:00
Robert
c90c70acbc BUILD(cmake): Explicitly set CRT link library for minhook
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
2020-09-28 11:33:55 +02:00
Robert
af7dac72f4 FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Robert Adam
e6cb50bc49 FIX(code): Wrong include order in opengl.cpp
Furthermore this commit replaced the deprecated time.h header with ctime
2020-09-11 18:28:38 +02:00
Robert Adam
2908aa3acb FIX(code): Missing includes for ancestor.h 2020-09-11 18:28:38 +02:00
Robert Adam
40090d297f MAINT: Make use of cmake configure for version
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.
2020-09-02 18:30:33 +02:00
Robert Adam
34c602c85b BUILD(qmake): Remove
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.
2020-09-02 08:29:45 +02:00
Davide Beatrici
ca54653e43 FIX(overlay): only use minhook for 64 bit overlay library
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.
2020-07-25 03:43:33 +02:00
Davide Beatrici
582239319b FIX(overlay): add missing <unknwn.h> for 32 bit overlay library 2020-07-25 03:33:59 +02:00
Nik Reist
261756a7e2 Add install() directives, for "install" step and CPack 2020-07-11 23:33:25 +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
ede86a5abc overlay: add CMakeLists.txt files 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
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
Popkornium18
fd8386a206 REFAC(overlay): replace NULL with nullptr
This changes all occurances of NULL in the overlay source
dir to nullptr. Additionally explicit comparisons with NULL were
removed.
2020-06-28 19:04:21 +02:00
Davide Beatrici
542f4dbb91 Update copyright years in .plist and .rc files 2020-01-07 03:12:11 +01:00
Davide Beatrici
4e67a2fafb Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
Jan Klass
19b5702168 Bump version to 1.4.0
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.
2019-09-22 10:24:19 +02:00
Davide Beatrici
12cf9552c2 Update copyright years in .plist and .rc files 2019-01-25 04:56:19 +01:00
Davide Beatrici
b427333257 Auto-update LICENSE.header in source files 2019-01-25 04:56:19 +01:00
davidebeatrici
5477e8f999 overlay: set custom build directory in relation to the global one 2018-02-18 23:56:34 +01:00
Mikkel Krautz
23261e2959 Update copyright years in .plist and .rc files. 2018-01-01 23:09:16 +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
Jan Klass
23e763888f Fix assignment spacing in pro files
Consistently use single space before assignment operator.
2017-08-05 20:44:00 +02:00
Jan Klass
36fc0f1b67 overlay: Use size_t as correct type for memory addresses
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
114495e59f
a3e7958f16

Fixes #1924
2017-07-13 13:18:09 +02:00
Jan Klass
7689647a50 Remove type variable prefix 2017-07-13 13:12:45 +02:00
Jan Klass
ce864c77d7 Cast to correct API types
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.
2017-07-11 00:42:08 +02:00
Jan Klass
830ea8aa54 Initialize pointers in constructor 2017-04-25 21:57:42 +02:00
Mikkel Krautz
425a994354 overlay: add LaunchPad.exe (Daybreak Games's launcher) to the launcher list.
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.
2017-04-24 21:52:22 +02:00
Jan Klass
ee44430555 Add itch.exe as known overlay launcher
See #3043, fix if the itch user does not use the sandboxing feature of
the itch launcher.
2017-04-23 12:39:12 +02:00
Mikkel Krautz
557eacd1e7 overlay: remove ability for overlay to decline being attached to a process.
This was originally implemented in
2f07778a0e.

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.
2017-04-22 10:08:18 +02:00