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.
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.
The UI currently is dependent on browser source files being present,
when in actuality the files may not have been fetched (i.e. not fetching
submodules). This fixes that by using a macro to detect whether it's
available or not.
Closesobsproject/obs-studio#1490
Allows specifying a release candidate version, and outputs release
candidate version variables to libobs/obs-config.h. Useful for using
cmake to specify a release candidate version.
This policy was introduced in CMake version 3.11.
The FindOpenGL module provides an OpenGL::GL target and an
OPENGL_LIBRARIES variable for projects to use for legacy GL interfaces.
When both a legacy GL library (e.g. libGL.so) and GLVND libraries for
OpenGL and GLX (e.g. libOpenGL.so and libGLX.so) are available, the
module must choose between them. It documents an OpenGL_GL_PREFERENCE
variable that can be used to specify an explicit preference. When no
such preference is set, the module must choose a default preference.
The default behavior is to default to legacy (OLD) and is deprecated.
https://cmake.org/cmake/help/v3.11/policy/CMP0072.htmlhttps://github.com/NVIDIA/libglvnd
Makes it so that the scripting cmake variable ENABLE_SCRIPTING is a user
variable rather than a global internal cmake variable, and defers the
internal global cmake variable to SCRIPTING_ENABLED instead.
This prevents issues with using standard C functions, where microsoft
would otherwise spit out pointless warnings to encourage using
microsoft-specific functions instead.
This allows installing the architecture independent data outside the
prefix, for example on a multiarch layout where the prefix is
/usr/{host-triplet}.
Closesjp9000/obs-studio#552
This warning is somewhat insignificant for most of what we do; just
warns about missing braces for sub-structures, but most of the time it
wrongly triggers on = {0}, which is a standard way of initializing a
structure to 0 in C.
Because libobs-opengl is a public library, it's customary to have SONAME
embedded in the library file. Also remove the prefix override and
remove the prefixing "lib" from the output name. This also requires us
to pass the library file name to dlopen invocations.
If the cmake user variable COPY_DEPENDENCIES is set, this script will
make it so that a windows build will automatically copy all required
dependencies (FFmpeg, x264, and Qt5) to the respective
additional_install_files\exec(32|64) directory. This makes it much
easier to set up a development environment on windows, and much easier
to make usable test builds.
It will also copy the appropriate Direct3D compiler DLL, along with
dependencies of dependencies (the icu*.dll and EGL/GLES files for Qt)
There were a *lot* of warnings, managed to remove most of them.
Also, put warning flags before C_FLAGS and CXX_FLAGS, rather than after,
as -Wall -Wextra was overwriting flags that came before it.