Commit graph

361 commits

Author SHA1 Message Date
derrod 8d33da1fab cmake: Disable char8_t when using C++20 2023-07-05 09:39:41 -07:00
PatTheMav 61bed7a828 cmake: Fix copy to rundir in Release and MinSizeRel configurations
Generated post build action batch scripts retained an empty token to
the copy command with the used generator expression (as PDBs are only
generated for Debug and RelWithDebInfo configurations).

Moving their copy step into its own command (and using the `true`
CMake command, which is a no-op) ensures that builds in Release and
MinSizeRel correctly finish this step.
2023-07-02 14:48:25 +02:00
PatTheMav 1660e2536f cmake: Add flags for reproducible builds on Windows
Compiler and linker flags for reproducible builds on Windows were
omitted from the recent CMake rework in error. This commit adds those
flags back.
2023-06-30 16:16:17 -04:00
Norihiro Kamae 75805eaecb cmake: Remove ObsPluginHelpers.cmake 2023-06-30 12:45:48 -04:00
PatTheMav a01e2e9ced CI: Update main workflow to enable building with macOS 13 runners 2023-06-29 10:48:15 -04:00
PatTheMav 850976eba9 cmake: Add Windows component to CMake build framework 3.0 2023-06-29 10:11:32 -04:00
PatTheMav 0b325c0e34 cmake: Add separate function to set Xcode-based target properties 2023-06-17 12:23:33 -04:00
PatTheMav 9805b706d1 cmake: Remove legacy files for macOS builds 2023-06-17 12:23:33 -04:00
PatTheMav 50a4e83251 cmake: Remove Info.plist template files for macOS builds
Creation of Info.plist files through Xcode is more canonical and
future-proof, as it will automatically pick up changes/updates
introduced by Apple. Non-standard keys can still be added via a
template file, which will then be extended by Xcode with the default
keys.
2023-06-17 12:23:33 -04:00
PatTheMav eb3d9963a0 cmake: Update macOS compiler configuration
Compiler extensions are disabled before the first `project` call to
force CMake into considering compilers to not support GNU extensions
(even though clang and gcc do).

Also sets common clang compiler options so they can be used across all
supported platforms.

`openmp-simd` support is enabled by default as there is no performance
penalty on x86_64 systems and intrinsics are enabled on arm64.

Also implements CMake's `CMAKE_COMPILE_WARNING_AS_ERROR` flag to
enable the desired behavior and configuration time.
2023-06-17 12:23:33 -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 887b537d56 cmake: Update buildspec and presets for macOS 2023-06-17 12:23:33 -04:00
PatTheMav 4d5b6eb50f
cmake: Disable automatic sorting of compiler flags
Also restores original order of compiler flags and more explicitly
splits up flags for the specific languages in which they take effect.

Notice that ObjC and ObjC++ follow a slightly stricter set of rules
than C and C++, which is reflected by this fix.
2023-06-16 23:21:35 +02:00
PatTheMav e9972f5198
cmake: Fix truncation warning being treated as an error with Ninja 2023-06-16 20:48:49 +02:00
PatTheMav 29dc42decd cmake: Enable suggested default Xcode build settings for macOS builds
Also updates Ninja-based clang settings to ensure builds fail on same
compilation issues.
2023-06-16 14:12:58 -04:00
PatTheMav c7ec604df1 cmake: Disable Framework code signing at build time
Frameworks should be archived and exported (where they will be
codesigned by Xcode) or shipped within an App bundle where Xcode will
also take care of it.
2023-06-16 14:12:58 -04:00
gxalpha 6e7e4acb93 mac-syphon: Update Syphon, use obs-deps framework
Updates the syphon to use the Syphon.framework from obs-deps instead of
the submodule.
The submodule however was not updated in 9 years and additionally had
custom patches, compared to the obs-deps release that's built on the
current git commit of Syphon, meaning that some code changes are
necessary. It would be nice to split the code and cmake changes into
multiple commits (where the first would update the submodule and contain
the plugin code changes, and the second switch the cmake away from the
submodule to the obs-deps release), but it really doesn't make sense to
update the submodule first if it gets removed anyways.

Adds a subclass for SyphonClientBase that is responsible for receiving
the frames. This has the advantage that it doesn't need an OpenGL
context like the existing SyphonOpenGLClient, and can just return an
IOSurface directly (without some kind of middleman).
2023-06-15 13:08:41 -04:00
Sean DuBois 19a297f81a CI: Update deps to 2023-06-01 release
Notable changes:
 * deps.ffmpeg: Add libdatachannel
 * deps.macos: Add Syphon Framework

Library added to support WHIP (WebRTC) output.
2023-06-09 20:20:49 -05:00
Lain 106c7aa61f Update copyrights/names 2023-05-20 01:31:18 -07:00
PatTheMav 3c28d3a2bc cmake: Remove use of CPack and generate packaging AppleScript directly 2023-05-18 14:41:08 -04:00
PatTheMav 3f85e447a8 mac-virtualcam: Add Camera Extension to main CMake plugin project
Camera Extensions require specific entitlements for the hosting app,
which also require a provisioning profile. To avoid breaking local
builds that do not require the camera extension, an additional
entitlements file that will not trigger the provisioning profile
requirement will be used if the virtualcam (but not the Camera
Extension) is configured.
2023-05-18 14:41:08 -04:00
tytan652 6e887f8158 obs-ffmpeg,cmake: Replace external folder by obs-deps headers 2023-05-13 17:06:39 -07:00
tytan652 12ad59f31f cmake: Enforce -Wmaybe-uninitialized to never turn into an error 2023-05-05 16:46:59 -04:00
derrod 4a8e8644e0 cmake,UI: Remove unused legacy DSA public key 2023-04-29 16:10:45 -07:00
PatTheMav f1aba10dc0 cmake: Fix version detection for FFmpeg find module 2023-04-29 16:06:33 -07:00
derrod 90b8e3585e cmake: Set C11 for CMake < 3.21 2023-04-17 14:55:44 -04:00
PatTheMav 9f191b5101 cmake: Fix buildspec version parsing for dependencies
VERSION comparison requires semver-compliant version strings, but
obs-deps versions are based on dates, which are not compliant. Fix
version strings to semver variants before comparison.
2023-04-14 20:10:19 -04:00
PatTheMav df4c8d21ad cmake: Remove generated libobs export header from install interface 2023-04-12 17:17:00 +00:00
PatTheMav d6a5532394 cmake: Skip dependency setup for CEF when using universal architectures 2023-04-08 16:33:18 -07:00
PatTheMav e4ff8fab7a cmake: Fix discovery of existing pre-built dependencies
As there will be multiple directories containing obs-deps (non-Qt and
Qt variants), the search needs to continue after a first failed attempt
and not abort it entirely.
2023-04-08 16:33:18 -07:00
derrod 35d42f77d6 cmake: Set C standard to ISO C17
- 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
2023-04-08 19:30:12 -04:00
PatTheMav 3bfaf6661b cmake: Fix parsing of OBS_VERSION_OVERRIDE cache variable 2023-04-07 21:11:37 +02:00
derrod 8a2305fd9a cmake: Fix parsing BETA version cache variable 2023-04-07 20:59:30 +02:00
PatTheMav a0000412fa cmake: Add changes required to use Xcode archiving 2023-03-29 10:31:57 -04:00
gxalpha 712a6c3b33 cmake: Ignore all Qt darwin permission plugins 2023-03-27 16:08:22 -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
PatTheMav bbeea0972a cmake: Add Xcode component to CMake build framework 3.0
Adds necessary macOS-specific implementation of the framework, focusing
on native Xcode builds.
2023-03-26 18:20:38 -04:00
PatTheMav ae6e9c875b cmake: Add OBS CMake build framework 3.0
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.
2023-03-26 18:20:38 -04:00
tytan652 8c11b0caad cmake: Add finders for Asio and WebSocket++
WebSocket++ does provide a CMake package, but version check is broken.
2023-03-20 19:00:24 -04:00
derrod 11f88af880 cmake: Add libuuid finder 2023-03-12 01:11:38 +01:00
derrod f06b2ccf55 cmake: Set PDBALTPATH manually 2023-03-07 18:13:24 -05:00
derrod d2f0dfa341 cmake: Set /Brepro compiler/linker options 2023-03-07 18:13:24 -05:00
tytan652 f4e90a5bd7 obs-ffmpeg,cmake: Add a finder for AMF headers 2023-03-07 14:55:03 -05:00
derrod b7f6ae7d7b cmake: Enable stricter MSVC compiler options 2023-03-01 20:39:53 +01:00
Ryan Foster 2b84155da4 cmake: Remove FindRSSDK
Follow-up to PR #7371 (commit a1a98f9cfd).

We forgot to remove the Finder that was only used for that plugin. Let's
remove it now.
2023-03-01 18:16:34 +01:00
derrod 77e4c1c305 cmake: Check if Sparkle options are non-empty 2023-02-27 13:06:26 -05: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
derrod 634fd3231c CI/cmake: Update Sparkle to 2.3.2 2023-02-19 01:35:56 +01:00
tytan652 d7fade2c44 cmake: Allow disabling deprecation errors on GCC/Clang 2023-01-28 23:20:41 -08:00
tytan652 ee144377dc cmake,obs-ffmpeg: Refactor Libva finder
This refactor adds Libva DRM, required for obs-ffmpeg
2023-01-25 13:14:41 -05:00
tytan652 aa97b7f1f1 cmake: Add workaround for GCC 12.1.0
Freedesktop Flatpaks 22.08 provide this version of GCC.
2023-01-19 13:08:46 -05:00
tytan652 541b3292e9 cmake: Add workaround for GCC on aarch64
GCC on aarch64 seems to found type-limits issue in the code where GCC
x86_64 does not.
2023-01-19 13:08:46 -05:00
tytan652 189c6939d1 cmake: Treat warnings as errors on Clang and GCC
-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.
2023-01-19 13:08:46 -05:00
Timo Gurr ad034bac0e cmake: Fix FindGio.cmake to find libgio
Find actual libgio-2.0.so instead of libgobject-2.0.so.
2022-12-05 14:22:14 -05:00
derrod cdc9313829 cmake/libobs: Set OBS_COMMIT based on git describe 2022-11-22 02:54:07 +01:00
Richard Stanway 510f0116a6 cmake: Specify utf-8 for MSVC builds
If there is no BOM, MSVC defaults to the user's code page which can
result in errors if UTF-8 characters are present in the source files.
2022-11-20 17:38:23 -05:00
tytan652 74b245431c obs-ffmpeg: Use Libva in FFmpeg VA-API
Libva is directly used to check if DRI devices support H264 encoding.
2022-11-20 11:30:40 +11:00
PatTheMav 358d706e38 cmake: Fix debian packages loosing all debug symbols
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.
2022-11-12 18:20:50 -05:00
PatTheMav 2c8a55f82b cmake: Fix rundir installation accepting DESTDIR environment variable
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.
2022-09-17 16:15:56 -07:00
PatTheMav e64b1117fc cmake: Fix CMake package files not being installed on FreeBSD
By default libraries and their CMake package files should be installed
on Linux and FreeBSD and omitted on Windows. This explicitly adds
FreeBSD.
2022-09-17 16:12:01 -07:00
derrod db766273b6 cmake: Fix Sparkle framework permissions 2022-09-06 01:49:46 +02:00
PatTheMav b81ab5a32b UI: Fix small font size on macOS and fallback font
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.
2022-08-25 18:02:22 +02:00
derrod d1a1a2c060 cmake: Set RELEASE_CANDIDATE/BETA based on git describe 2022-08-22 14:55:27 +02:00
PatTheMav 6c2860a4ec cmake: Fix missing interface include directory on Framework export
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.
2022-08-20 22:02:41 +02:00
PatTheMav ef2b0a0f52 cmake: Update pluginhelpers script from obs-plugintemplate 2022-08-10 02:05:27 +02:00
PatTheMav f31c1c124b cmake: Update Xcode project generation on macOS
* 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
2022-08-10 02:05:27 +02:00
PatTheMav 8e3f19722e cmake: Fix unwanted public header installation on macOS 2022-08-10 02:05:27 +02:00
PatTheMav c6ea39534f cmake: Remove workarounds for legacy obs-browser submodule 2022-08-10 02:05:27 +02:00
PatTheMav 2006092076 cmake: Fix missing header installation for libobs and obs-frontend-api 2022-08-10 02:05:27 +02:00
PatTheMav 3c3fdc7a70 cmake: Fix M1-based OBS.app appearing as being an "iOS" app
MacOS' system information checks the CFBundleSupportedPlatforms value
in the app's property list file for the type. This was correctly set
for plugin bundles, but not binary bundles so far.
2022-08-08 18:54:29 -04:00
PatTheMav 61f862d826 cmake: Fix broken pthread detection on Windows with CMake 3.24
Workaround for CMake issue
https://gitlab.kitware.com/cmake/cmake/-/issues/23829
2022-08-08 15:50:42 -07:00
PatTheMav 8db359d060 cmake: Fix plugin RPATH entry on Linux 2022-08-07 04:06:54 +02:00
Ed Maste 39269a7ae9 cmake: fix default version if git describe fails
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
2022-08-07 00:51:01 +02:00
Ryan Foster b4e056f39d CI: Use Qt6 by default when available 2022-07-31 13:45:57 -04:00
PatTheMav a70dd4d925 cmake: Remove prefix suppression for scripting plugins.
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.
2022-07-31 17:48:35 +02:00
PatTheMav 018f52bfab cmake: Switch file system used by CPack for disk image to APFS 2022-07-31 12:21:35 +02:00
PatTheMav c9859e5afc cmake: Add informal output of Qt version selected for current build 2022-07-30 18:04:15 +02:00
pkv e7d097cab8
obs-ffmpeg: Native SRT/RIST for mpegts output
Currently the ffmpeg_mpegts_muxer output is integrated with ffmpeg-mux.
Both use obs native encoders in contrast with obs-ffmpeg-output which
relies on avcodec library.
This allowed easy implementation of SRT, RIST & HLS protocols through
avformat library.
The main drawback is that obs-ffmpeg-mux exe doesn't allow for easy
debugging nor logging of the protocols.
It was written initially as a separate binary designed for recording so
that if obs fails for some reason, the recording can still terminate
gracefully.

In this commit the ffmpeg_mpegts_muxer is rewritten so that a pipe to
the ffmpeg-mux binary is not used any more.
The muxing to mpegts is still delegated to avformat.
But it can be traced more easily in all its steps.
Also the protocol part for SRT & RIST is implemented natively.
Custom avio_contexts for SRT & RIST are used to that end.
This allows to pass our own implementation of librist and libsrt
libraries instead of relying on avformat. This is very advantageous :
- this allows better logging.
- this allows better bug fixing and maintainance without having to rely
on hypothetical upstream fixes.

One immediate bonus of native implementation is that fixes bugs which
were not previously fixable.

Fixes: SRT & RIST auto-reconnect partly broken  #6749
Fixes: SRT: OBS unusable and uncloseable after starting stream to
invalid srt server #5791

Signed-off-by: pkv <pkv@obsproject.com>
2022-07-30 17:03:10 +02:00
tytan652 9c85ff8673 cmake,UI: Refactor find_qt macro
If QT_VERSION is not defined, it gets define with the AUTO value. And
its definition is moved to the helper file.

find_qt now:
- Check quietly for Qt5 and Qt6
- If QT_VERSION is set to AUTO. It checks firstly if Qt5 was found it
  will use it. If not it do the same for Qt6
- If QT_VERSION is set to 5 or 6, it checks if the choice was found and
  use it. And if not, it falls back to the other if found.
- If neither Qt5 or Qt6 are found, a fatal error is emitted.
- The macro saved the _QT_VERSION in the cache to replace QT_VERSION,
  so the process is not repeated each time that find_qt is used.
- When Qt::Gui is in the Linux component list, Qt::GuiPrivate is added.
  So using the versioned one is no longer required.
2022-07-26 17:34:26 +02:00
PatTheMav 4e206896b2
cmake: Fix public header files being installed to rundir
Fixes oversight from https://github.com/obsproject/obs-studio/pull/6768
2022-07-21 22:35:09 +02:00
PatTheMav c4f12f9055 cmake: Fix RPATH on Linux for frontend-tools to find obs-scripting
This will fix frontend-tools not being able to find the obs-scripting
library when OBS is compiled as a portable application.
2022-07-21 12:16:36 -04:00
PatTheMav 4afc2c8e6f cmake: Change desired Python3 DLL name to stable ABI variant 2022-07-21 12:16:36 -04:00
tytan652 4dd1da8a1e cmake: Add EXCLUDE_FROM_ALL to Linux install_headers
Even without it, we still need to run the following command for other
files:
`cmake --install . --component obs_libraries`
2022-07-20 15:08:30 -04:00
tytan652 2ba32763e5 cmake: Add PUBLIC_HEADER DESTINATION for development rundir
Fix a warning thrown by CMake.
2022-07-20 15:08:30 -04:00
PatTheMav 4252c8a069 cmake: Fix pkgconfig generation
Existing code didn't check for possible "empty" linked libraries
(e.g. Threads::Threads when compiler has built-in pthreads support).
Also adds support for compile options defined on linked dependencies.
2022-07-19 09:28:51 -03:00
jpark37 3f86354863 cmake: Treat warnings as errors on MSVC 2022-07-18 03:52:04 -07:00
PatTheMav 48c52c9d74 cmake: Fix libraries and header files being installed for packages
The `EXCLUDE_FROM_ALL` token, which is responsible for excluding
components from a "unspecified" installation (which we use to create
the distributed package) needs to be specified for _every_ destination
specified in an `install` call.

This commit remedies the issue of missing tokens in these calls.
2022-07-13 15:52:13 -04:00
PatTheMav d940f21457 cmake: Fix build architectures and deployment target not set to defaults
CMake seems to set either `CMAKE_OSX_ARCHITECTURES` and
`CMAKE_OSX_DEPLOYMENT_TARGET` implicitly to empty cache variables when
not defined explicitly on the commandline or via a GUI.

Setting a default thus requires the `FORCE` flag to overwrite these
empty defaults with our desired results. The branches ensure that user-
provided non-empty values are not overwritten as well.
2022-07-06 19:19:43 +02:00
PatTheMav 04a06d10a6 cmake: Fix hardcoded SWIG_DIR path on macOS 2022-07-02 19:31:20 -04:00
PatTheMav aec31a9e6d cmake: Fix handling of optional debug wrapper libraries for obs-browser 2022-06-20 14:24:52 -04:00
Ryan Foster 6a2e2aba03 cmake: Use correct capitalization for Qt in messages 2022-05-16 20:28:01 -04:00
Ryan Foster 872c6cd58c cmake: Normalize path to QtCore_DIR
Resolve the relative path to an absolute path once and then use that for
all other Qt file paths.
2022-05-16 20:28:01 -04:00
Ryan Foster 4d741833f8 cmake: Teach CopyMSVCBins to use Qt 5 or 6
Make CopyMSVCBins.cmake work with either Qt 5 or Qt 6 depending on what
version the user has chosen.
2022-05-16 20:28:01 -04:00
tytan652 ed486b00e1 cmake: Fix headers installation
- Headers are now installed per default on Linux.
- `obs-hevc.h` is not installed if HEVC is disabled.
- OS exclusive headers are no longer installed on the wrong OS.
2022-05-07 16:13:21 -07:00
PatTheMav 90286a537b cmake: Fix cURL library handling for updated dependencies
Soon to be updated obs-deps built on CI will retain CMake package files
created while building dependencies. When CMake uses packages, the usual
triplet of variables from finders are not set. `CopyMSVCBins` relies
on one such variable.

This PR sets the `CURL_INCLUDE_DIR` if the cURL target is present, but
apparently imported as a CMake package, to ensure prior functionality is
restored.
2022-05-03 13:57:02 -04:00
Arthus b94e960d25 cmake: Rename variable in FindPipeWire for clarity
PIPEWIRE_DEFINITIONS contains ready-to-use compile flags. If used with
INTERFACE_COMPILE_DEFINITIONS, this can lead to a compile error.

Rename the variable to PIPEWIRE_COMPILE_FLAGS to be clear about that and
prevent accidental misuse.
2022-04-14 18:01:23 -04:00
Arthus 3dfb999c65 cmake: Fix compilation of targets using FindWayland
If WAYLAND_DEFINITIONS is set to "-I/usr/include/wayland", setting its
value as INTERFACE_COMPILE_DEFINITION leads to CMake emitting
"-D-I/usr/include/wayland" in the compiler flags. This breaks the
compilation of targets that call find_package(Wayland), such as libobs
and libobs-opengl, in gcc.

To avoid this, rename WAYLAND_DEFINITIONS to WAYLAND_COMPILE_FLAGS to
reflect that it contains ready-to-use compiler flags. Use
WAYLAND_COMPILE_FLAGS as INTERFACE_COMPILE_OPTIONS so it just gets
appended without adding the superfluous "-D".
2022-04-14 18:01:23 -04:00
PatTheMav 9c6897324a
cmake: Fixes plugins not being copied into application bundle on macOS
Makes the check for the number of plugins in the global list an explicit
length check (not relying on CMake implicit functionality), also moves
it in line with how the same was solved in `ObsHelpers.cmake` globally.
2022-04-05 11:11:14 +02:00
Zhao Zhili 255c4096a8 cmake: check empty OBS_MODULE_LIST for macOS 2022-04-02 21:46:52 +11:00
Zhao Zhili df4315103f cmake: Fix configure error on macOS when -DENABLE_SCRIPTING=OFF 2022-04-02 21:46:52 +11:00