Copy libdatachannel DLL whether it's compiled on MSVC (and named
datachannel.dll) or cross-compiled on MinGW (and named
libdatachannel.dll).
Signed-off-by: pkv <pkv@obsproject.com>
- Sets CMAKE_C_STANDARD to 17
- Disables C extensions (e.g. gnu17) to force ISO C on macOS/Windows
- Fixes language properties in cmake 3.0 not being set correctly
- Sets Xcode attributes to c17
OBS CMake build framework 3.0 is a minor overhaul of version 2.0. Due
to close proximity of the 2.0 rework, the amount of actual changes to
project files are minimal and mostly concern application generation.
This commit contains the bootstrap elements only and requires
OS-specific implementations to be functional.
-Wformat-security is enabled, some Linux packages build system have it
enabled.
https://github.com/obsproject/obs-studio/pull/5766
-Wunused-parameter is enabled too.
Also ensure that null conversion (C++ only for GCC) is enabled because its
enablement by default can depend on the CMake generator.
-Wswitch is enabled but it is kept as a warning. It was already enabled
with Clang.
If Clang has -Wshorten-64-to-32 enabled, keep it as warnings.
The correct way to build debian package and also provide debug symbols
is to use additional `ddeb` packages served with the original `deb`
package.
This will implicitly still strip the binaries contained in the `deb`
package (per convention) but also create a `.ddeb` package with the
stripped symbols.
The environment variable DESTDIR is commonly used to specify an install-
time prefix for installation of build artifacts (e.g. for staging an
installation in a temporary directory while keeping the overall prefixes
intact).
This variable should be ignored by all targets but the install target,
which requires us to set it to an empty string/path when we use
`install` to set up our rundir.
Qt uses a default font size of 13pt for QWidgets on macOS. By setting
the default font size to 10pt, text becomes too small for comfortable
use on macOS.
This PR patches the font files copied into the macOS bundle to use a
larger font-size of 12pt. It also sets the fallback font to the more
modern SF Display-based `.AppleSystemUIFont` used by default in macOS
if Open Sans is not found.
For exported targets `INCLUDES DESTINATION` behaves in a specific way
when running `install`: It sets the `INTERFACE_INCLUDE_DIRECTORY` for
the target (relative to the `INSTALL_PREFIX` when a relative path is
given).
This is not implicitly done by CMake, which resulted in the exported
libobs Framework to miss the variable and as such targets linking to
libobs were not able to find the necessary headers anymore.
* If a valid team id is provided, automatic code sign management is
enabled
* Different deployment targets for x86_64 and arm64 are enabled for
Xcode-based builds
* Codesign identity and code-sign style are set globally
If the `git describe` command fails we want to fall back to a default
version. _OBS_DEFAULT_VERSION is not in the same format as the string
returned by `git describe` though. In the event that the command fails
just use _OBS_DEFAULT_VERSION directly rather than trying to parse it.
Fixes: cmake fails if git is not installed but .git/ exists #6940
SWIG uses the prefix target property to prefix generated Python
libraries with an underscore (so that obspython.py is loaded first,
which acts as a shim for the actual _obspython.pyd library on Windows).
Usually the prefix is set to an empty string on Windows (to avoid the
automatic "lib" prefix used by CMake), but this also removed the
necessary underscore prefix required for the Python library.