Commit graph

100 commits

Author SHA1 Message Date
Ryan Foster cf5f6b6796 cmake: Deprecate legacy CMake for all platforms
We now support the new, modern CMake path on all platforms. Encourage
everyone to migrate by deprecating the legacy CMake path. The legacy
CMake path will be removed in a future update.
2024-04-17 15:24:57 -04:00
PatTheMav e77b12820f cmake: Add Linux component to CMake build framework 3.0 2024-04-13 23:48:38 -04:00
Ryan Foster e82a0aede0 cmake: Update CMake minimum to 3.22
Since Ubuntu 22.04 is now our minimum supported Ubuntu version, and it
has CMake 3.22, let's make CMake 3.22 the minimum CMake version.
2023-08-05 16:45:46 -07:00
deadmeu 17f2b9aadb cmake: Fix missing space between sentences
This whitespace character between two sentences in a cmake error message
was accidentally removed in 349372b3b3
2023-07-15 16:44:30 -07:00
PatTheMav 5f7a8d8e70 test-input: Update CMakeLists for updated CMake path
Also adds the subdirectory to the project with the updated CMake path,
as it was missed originally.
2023-07-06 18:26:28 +02:00
PatTheMav db895092ed cmake: Add changes for CMake build framework 3.0
New code path only taken if OBS_CMAKE_VERSION is set to 3.0.0 or
greater, old functionality remains unchanged.
2023-06-29 10:11:32 -04:00
PatTheMav e2e3c9e102 cmake: Fix CMake policy scopes and add include guards
Include guards ensure that bootstrap includes happen only once for the
entire project. Moving all policy changes into an included file without
its own policy scope ensures that the policy is applied to the project.
2023-06-17 12:23:33 -04:00
PatTheMav 349372b3b3 cmake: Add changes for CMake build framework 3.0
New code path only taken if OBS_CMAKE_VERSION is set to 3.0.0 or
greater, old functionality remains unchanged.
2023-03-26 18:20:38 -04:00
derrod 9d71d2f7fd cmake: Remove ENABLE_SPARKLE_UPDATER option
Since public key and appcast are now options we simply rely on those to
decide whether or not to enable Sparkle.
2023-02-19 01:35:56 +01:00
jpark37 1aae05bd70 cmake: Enable ENABLE_HEVC by default 2022-07-23 17:26:24 -07:00
tytan652 9a33e49087 cmake: Fix enabling PulseAudio monitoring
Also adds a warning if null monitoring is "enabled".
2022-05-28 18:36:36 -04:00
jpark37 53f4bf3430 cmake: Define ENABLE_HEVC globally if set 2022-04-28 08:59:53 -07:00
Jim 3883c9e120 cmake: Add option to build hardware HEVC encoders
Allows the ability to enable HEVC encoders whenever we add them.
Disabled by default for now for obvious reasons.
2022-04-22 17:39:43 -07:00
PatTheMav c993b6059a
CI: Update build scripts and Github actions workflow
Also updates main CMakeLists.txt and CMakeLists.txt for unit tests,
also adds additional build directories to .gitignore file
2022-03-16 23:13:26 +01:00
jp9000 1655ebf18f libobs, UI: Add support for beta builds
Allows the ability to specify beta builds in addition to release
candidate builds
2021-12-27 10:01:07 -08:00
Norihiro Kamae 93ee7c4775 libobs/util: Add type test in darray macros for GCC
Previously darray macros did not test the types of arguments so that
developers cannot notice even if a wrong type of a variable is passed.
This commit add a type test that relys on GCC's extension. Since OBS
Studio is built with GCC for Ubuntu, testing only under GCC is
sufficient to catch future bugs.
2021-10-01 13:00:00 +09:00
jpark37 f9dbde51a7 cmake: Require Windows 10 SDK 20348 2021-09-11 13:00:28 -07:00
Richard Stanway a82bb12848 cmake: Enable full optimizations for RelWithDebInfo MSVC builds
Adds compiler flag:
/Ob2 (automatic inline expansion)

And linker flags:
/OPT:ICF (identical COMDAT folding)

Ref: https://gitlab.kitware.com/cmake/cmake/-/issues/20812
2021-07-04 05:26:38 -07:00
Ryan Foster a7b20fcd2a cmake: Remove outdated osxbundle files
These files have been superseded by files in CI/scripts/macos. They are
no longer used, and keeping them around creates confusion and makes
people think they are still used. Let's remove them to prevent further
confusion.

This commit also removes the CMake function `obs_finish_bundle` that was
only used with the osxbundle resources and removes calls to that
function.
2021-05-08 18:57:14 -07:00
Ryan Foster dfe2f40902 cmake: Require Qt if UI is enabled
In CMakeLists.txt, FIND_MODE is not defined here. This was moved from
UI/CMakeLists.txt in commit cb4d2ff7fa. In
UI/CMakeLists.txt, FIND_MODE is REQUIRED if DISABLE_UI is false or
undefined and ENABLE_UI is true. Since the same booleans are required
for the if-else branch in CMakeLists.txt where we try to find Qt, we can
set find_package to REQUIRED here as well.
2021-03-10 20:05:24 -08:00
Georges Basile Stavracas Neto 2b3cb54771 libobs: Add a Wayland platform
Introduce the OBS_NIX_PLATFORM_WAYLAND enum value, and try to detect
it when OBS Studio runs by looking into the platform name.
2021-02-09 09:39:04 -03:00
Michael R. Crusoe 1e96573328 libobs: Update to SIMDe 0.7.1
c3d7abfaba

Simplify usage of the SIMDe header

This obviates the need for sse2neon as well and fixes compilation of all
plugins that referenced sse-intrin.h on all architectures, not just
arm*.
2021-01-02 04:07:55 -08:00
pkubaj 1eda236aff cmake: Add ARCH_SIMD_DEFINES variable
It's necessary on ppc64 for plugins that use cmake.
2020-12-31 06:31:25 -08:00
Colin Edwards 7b0d7c6357 Remove BUILD_CAPTIONS build flag 2020-11-02 22:46:55 -06:00
jp9000 18486853a5 obs-ffmpeg: Add ability to debug ffmpeg-mux subprocess
Adds a cmake variable (DEBUG_FFMPEG_MUX) which enables FFmpeg debug
output in the ffmpeg-mux subprocess, and if on Windows, shows the
console window of the ffmpeg-mux subprocess so the current output can be
seen.
2020-10-14 18:42:22 -07:00
makise-homura 006443b8c3 cmake: Discard excess warnings for e2k 2020-08-18 16:50:46 +03:00
makise-homura ad1978a31f cmake: Enable SIMD for Elbrus architecture 2020-08-18 15:57:05 +03:00
makise-homura d7e36f9f5b cmake: Conditionalize -fopenmp-simd 2020-08-18 15:50:50 +03:00
Colin Edwards 35088e0d9e libobs: Add sample unit tests leveraging cmocka 2020-06-25 15:21:58 -07:00
Jim 0d7b4e1ced
Merge pull request #3006 from mr-c/simde_20200529
libos: Freshen SIMDe code copy
2020-06-21 05:34:38 -07:00
Joel Bethke e10d3be804 cmake: Update minimum Windows SDK version 2020-06-03 17:06:31 -05:00
Michael R. Crusoe 3778086f04
cmake: SIMDe & GCC? then enable OpenMP 4 SIMD
There is no run time library required with -fopenmp-simd
2020-05-29 12:37:21 +02:00
jp9000 7993179466 cmake: Add cmake folders 2020-05-13 06:52:37 -07:00
Colin Edwards 55e2985026
Merge pull request #1944 from WizardCM/windows-rc-definition
CMake: Build Windows modules with file descriptors
2020-04-18 18:27:22 -05:00
jpark37 f3e6bfdc59 CMake: Disable incremental linking on Windows
Not compatible with /OPT:REF, and caused warnings.
2020-03-03 23:13:03 -08:00
jpark37 9abdf2eec7 CMake: Enable /OPT:REF for Windows 2020-03-03 20:18:43 -08:00
jp9000 cc5918fdb4 CMake: Add check for Win SDK 10.0.18362.0 or above
The graphics capture changes require Windows SDK version 10.0.18362.0 or
above to function, so check for that in CMake.
2020-02-22 21:02:33 -08:00
jp9000 039c08144a CMake: Rquire CMake 3.16
The recent graphics capture changes require CMake 3.16 or above to
function on Windows, so add a requirement check for 3.16 if on Windows.
2020-02-22 21:02:33 -08:00
jpark37 d6d27cfab1 libobs-winrt: Add module for WinRT functionality
Currently wraps Windows Graphics Capture API.
2020-02-22 21:02:33 -08:00
Jiaxun Yang 6366f6ab59 libobs: Build SIMDE on platforms without SSE2
SIMDE was introduced for aarch64 support, however, the library itself
supports non-SIMD fallback, which allows us provide support to other
platforms without code changes.

There is another world beyond x86. So we can simply enable SIMDE for
processors without SSE2 support.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
2020-01-22 15:41:15 +08:00
pkubaj 03ab727495 CMake: Fix build on ppc64
ppc64le was fixed before, but ppc64 (big-endian) was still failing.
2020-01-04 02:19:38 -08:00
jpark37 45d95282df cmake: Use C++17 for compilation
WinRT language projection requires C++17 to compile, which will be used
to incorporate Windows 10 features like ScreenCapture.
2019-10-15 21:08:45 -07:00
Matt Gajownik 51be039cf8 CMake: Build Windows modules with file descriptors 2019-10-15 21:34:12 +11:00
Florian Zwoch 9799a99238 cmake: no -Werror-implicit-function-declaration for C++
This flag was ignored for C++. Starting with GCC-9 this
flag is complained about.
2019-09-14 10:23:34 +02:00
SCG82 596dd54c0b cmake: Fix typo 2019-07-21 19:49:41 -07:00
Michael Fabian 'Xaymar' Dirks 8b346ade64 cmake: Generate obs.rc out-of-tree
Fixes the `obs.rc` file appearing in the UI source tree and moves it
into the out-of-tree build directories provided by CMake. Projects
requiring this can use it by adding `${obs-studio_BINARY_DIR}/obs.rc`
to their source list.
2019-04-06 15:35:08 +02:00
Matt Gajownik 4b9d050b33 UI: Automatically generate Windows file description
This defines the main OBS Windows executable with a resource file,
including a version number accessible externally and a File
description which appears in Windows Task Manager.
2019-02-02 11:22:31 +11:00
Colin Edwards cac03e3d76
cmake: Use multiprocessor compilation on Windows (#1605) 2019-01-30 22:57:42 -06:00
J Lynn 36a6629e6b Add support for building on PPC64LE using x86 Intrinsic Compat Shim 2018-12-17 05:33:16 +11:00
jp9000 cb4d2ff7fa cmake: Find Qt first before going to subdirectories 2018-09-18 10:03:07 -07:00