Commit graph

44 commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks
07182d2f89 templates: Exit-early if the user aborts the removal of an older version 2023-05-20 19:24:06 +02:00
Michael Fabian 'Xaymar' Dirks
5a3954ae0e project: Fix License, License headers and Copyright information
Fixes several files incorrectly stated a different license from the actual project, as well as the copyright headers included in all files. This change has no effect on the licensing terms, it should clear up a bit of confusion by contributors. Plus the files get a bit smaller, and we have less duplicated information across the entire project.

Overall the project is GPLv2 if not built with Qt, and GPLv3 if it is built with Qt. There are no parts licensed under a different license, all have been adapted from other compatible licenses into GPLv2 or GPLv3.
2023-04-05 18:59:08 +02:00
Michael Fabian 'Xaymar' Dirks
79bd387972 templates/windows/installer: Don't offer path selection for System & User mode
The location for System-wide and User-only installation depend on Windows-managed locations, which means that they will never require a user to select the correct location. Therefore it is best to hide the page in all modes except for Portable, which should still offer a path to extract to.
2023-04-05 18:58:52 +02:00
Michael Fabian 'Xaymar' Dirks
0390fbb05f templates/windows/installer: Default to appending default directory name 2023-04-05 18:58:52 +02:00
Michael Fabian 'Xaymar' Dirks
79e736bc75 templates/windows/installer: Opt for built-in Registry functions 2023-04-05 18:58:51 +02:00
Michael Fabian 'Xaymar' Dirks
53ceddd784 cmake, templates: Remove code signing integration
Time has unfortunately broken this integration beyond the point of usefulness.
2023-04-05 18:58:51 +02:00
Michael Fabian 'Xaymar' Dirks
df12d2fb80 templates/windows/installer: Add command line flag for portable installation
Users of the Installer can now specify the `/Portable` flag in addition to other flags to install as Portable.
2023-04-05 18:58:51 +02:00
Michael Fabian 'Xaymar' Dirks
761f741c56 templates/windows/installer: Don't create Icons in Portable mode 2023-04-05 18:58:50 +02:00
Michael Fabian 'Xaymar' Dirks
6701263e10 templates/windows/installer: Add current user installation method
Thanks to the PR by @abcdw (https://github.com/obsproject/obs-studio/pull/4067) we can support 'local user' installations. These will allow end users to install StreamFX without requiring Administrator rights, or learning how to use OBS Studio in portable mode.
2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks
3ce695bccc templates/windows/installer: Install System-wide installations to ProgramData
With OBS Studio 0.15.0 came a better location for plugins to install to, which solves many of the current issues. While this location still requires Administrator rights to write to, it is a much safer location than writing directly into the OBS Studio installation directory.
2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks
12c9fe51fb templates/windows/installer: Enable split binary and data installation
This is not something InnoSetup is designed for, but hey, it does work!
2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks
63540faf3d templates/windows/installer: Formatting 2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks
c9239405e2 templates/windows/installer: Don't warn about existing directories
Also don't append default directory name if possible.
2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks
a15d2d3c89 templates/windows/installer: Always show install directory selection 2023-04-05 18:58:48 +02:00
Michael Fabian 'Xaymar' Dirks
242a5dcac2 templates/windows/installer: Extract uninstaller to portable installations
It is now possible to properly uninstall StreamFX from portable installations, without any registry being necessary.
2023-04-05 18:58:47 +02:00
Michael Fabian 'Xaymar' Dirks
454f8eff83 templates/windows/installer: Check for the correct Mutexes 2023-04-05 18:58:47 +02:00
Michael Fabian 'Xaymar' Dirks
bfd8155ddc templates: Prefer per-user installations on MacOSX
With OBS Studio 28.0 comes another restriction: Per-User Plugins. This is currently only enforced on ARM64, but may soon be enforced on all architectures. Adjusting the Packages installer to generate the correct files is relatively easy.

Unfortunately the MacOS Package Installer has some problems figuring out if it should show the user the correct step or not, and may even ignore our settings entirely. This bug has been first reported in 2010, and has since then been re-reported in 2016, 2017, 2018, 2019, and 2020 where it was finally turned into a community wiki on StackOverflow.
2023-04-05 18:58:45 +02:00
Michael Fabian 'Xaymar' Dirks
2451c8418e templates: Add error message if MacOSX is below 10.15 2023-04-05 18:58:44 +02:00
Michael Fabian 'Xaymar' Dirks
d4ef043043 cmake: Export Loadable Bundles on MacOS
With OBS Studio 28.0.0 a new requirement was added to MacOS plugin: Loadable Bundles. These bundles are similar to Application Bundles, and have many of the same features, but are designed to be loaded by Applications instead of being the Application. This allows for almost all of the advantages to persist, with some minimal drawbacks.
2023-04-05 18:58:44 +02:00
Michael Fabian 'Xaymar' Dirks
9adc49b164 templates: Move MacOS-only files into dedicated folder 2023-04-05 18:58:43 +02:00
Michael Fabian 'Xaymar' Dirks
4382ad469f templates: Move Windows-only files into dedicated folder 2023-04-05 18:58:42 +02:00
Michael Fabian 'Xaymar' Dirks
08544b4116 cmake, code: Abuse pre-processor to disable/enable warnings 2023-04-05 18:58:39 +02:00
Michael Fabian 'Xaymar' Dirks
8e52bbf88b code: Ignore warnings from external code
May need to find a better solution such as disabling all warnings on third party code.
2023-04-05 18:58:38 +02:00
Michael Fabian 'Xaymar' Dirks
c1b832c03a cmake: Fix bad version strings
PROJECT_VERSION is defined by CMake, and can't be relied on.
2023-04-05 18:58:35 +02:00
Michael Fabian 'Xaymar' Dirks
f10096da98 cmake: Unify project metadata across platforms 2023-04-05 18:58:28 +02:00
Michael Fabian 'Xaymar' Dirks
a149531fb8 cmake: Upgrade version code to shared cmake-version module
This module handles parsing, generating, modifying and comparing of versions with pure CMake.
2023-04-05 18:58:28 +02:00
Michael Fabian 'Xaymar' Dirks
e9283aec37 project: Add support for multi stage release cycles
To ensure better stability of future releases, we need to adopt multiple stages in the release cycle. As we already label Alpha, Beta, Candidate and Stable differently, simply adopting this classification system already does everything for us. This also allows us to maintain compatibility with the existing system, while offering something new entirely.
2023-04-05 18:58:27 +02:00
Michael Fabian 'Xaymar' Dirks
0e26018cd3 ci: Sign builds with the provided key automatically 2023-04-05 18:51:39 +02:00
Michael Fabian 'Xaymar' Dirks
de5fb35544 templates: Don't check for 32-bit OBS Studio 2023-04-05 18:51:27 +02:00
Michael Fabian 'Xaymar' Dirks
e7b459fc6e templates: Windows Uninstaller should have StreamFX icon
Fixes #670
2023-04-05 18:51:27 +02:00
Michael Fabian 'Xaymar' Dirks
8cdadd6924 templates: Recommend 'Static' over 'Portable' installation
Fixes #671
2023-04-05 18:51:27 +02:00
Michael Fabian 'Xaymar' Dirks
f0c878aa3e templates: Don't hide path selection on first 'Static' install
Fixes #669
2023-04-05 18:51:26 +02:00
Michael Fabian 'Xaymar' Dirks
2f79f30e5b templates: Add option to extract to Windows installer
Adds back the removed portable installation method, but in a different way that shouldn't be possible to mess up. The original method had to be removed due to an excessive amount of poor video guides on how to install StreamFX, many of which went out of their way to ignore the Installation Guide.

Fixes #542
2023-04-05 18:51:25 +02:00
Christopher P Yarger
483e3a5f2d cmake: (MacOS) Add .pkg installer generation
Enables users of the Mac Operating System to use an automated installer instead of the manual installation method which is prone to user errors. This is done via the use of "Packages", which generates a .pkg file according to the requirements we present it.
2023-03-28 13:11:16 +02:00
Michael Fabian 'Xaymar' Dirks
b1b6fa2cf9 cmake: Add packaging support for Windows, Linux and Mac
Also adds packaging for the proposed unified plugin format.
2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks
5ac894c59c cmake: Refactor component and dependency system
A complete redesign of the component and dependency system is necessary in order to support additional platforms, such as MacOS and other Linux platforms. Additionally it results in a much cleaner code base, which is less confusing overall.

Eventually it might be necessary to push components of StreamFX into their own CMake projects, as it is getting kind of complex now. Especially with the push for a proper plugin manager, things get dicey for big plugins like StreamFX.
2023-03-28 13:11:10 +02:00
Michael Fabian 'Xaymar' Dirks
569fa56b1d templates/installer: Refactor installer code for easier changes 2023-03-28 13:11:06 +02:00
Michael Fabian 'Xaymar' Dirks
e7ed40a69d third-party/msvc-redist-helper: Add submodule for msvc-redist-helper 2023-03-28 13:11:06 +02:00
Michael Fabian 'Xaymar' Dirks
67227f2c03 cmake: Improve readability 2023-03-28 13:10:59 +02:00
Michael Fabian 'Xaymar' Dirks
01b7d09196 templates: Fix installation path and 64-bit installations 2023-03-28 13:10:59 +02:00
Michael Fabian 'Xaymar' Dirks
5500e436b7 templates/version: Fix missing quotes around suffix 2023-03-28 12:52:27 +02:00
Michael Fabian 'Xaymar' Dirks
8cd45c262d templates: Clean up license headers 2023-03-28 12:52:27 +02:00
Michael Fabian 'Xaymar' Dirks
c20ac4a413 templates: Add generated configuration file 2023-03-28 12:52:21 +02:00
Michael Fabian 'Xaymar' Dirks
0ecf971446 templates: Move template files to better directory 2023-03-28 12:52:21 +02:00