Commit Graph

352 Commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks bbcce86c47 Fix or disable some useless warnings 2023-10-05 09:11:53 +02:00
Michael Fabian 'Xaymar' Dirks e0ffe85a30 Simplify the CMake file even more
- target_sources(... PUBLIC ...) doesn't do what I thought it did, and has no useful purpose here.
- Experimental features are an Alpha only thing, and Unstable features should not be part of a Candidate release.
- ENABLE_LTO is not a flag anymore, as CMake has a global flag for it.

While we haven't split out Core from the main file yet, and we still keep running into strange duplicate symbol or undefined symbol errors, this will hopefully simplify the CMake file further. End goal is to eventually split StreamFX into smaller sub-plugins that can operate mostly independently. At some point, the goal is to be able to soft-depend on other components, i.e. Blur can softly depend on Dynamic Mask, and then have extra features if the component is installed. This is not quite fleshed out yet, and I have no clear idea on how to make it work.
2023-10-05 09:11:53 +02:00
Michael Fabian 'Xaymar' Dirks b373ba17d3 Fix up copyright headers once again 2023-10-04 07:32:33 +02:00
Isaac Nudelman 487769fd15 Fix link ordering errors with ld on Linux 2023-10-04 07:28:47 +02:00
Michael Fabian 'Xaymar' Dirks 0efbaa6afb Strip out unnecessary packaging logic 2023-10-04 07:28:36 +02:00
Michael Fabian 'Xaymar' Dirks 9a8be4d8e7 Fix up bundles for MacOS installation 2023-10-04 07:28:36 +02:00
Michael Fabian 'Xaymar' Dirks 54b6df0fd0 Potential fix for linker issues 2023-10-01 06:32:10 +02:00
Michael Fabian 'Xaymar' Dirks ef55651d9c nvidia: Fix missing includes 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 915c85e60e core: Frontend and Updater are default features 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 92ddbd1330 Fix up some dependency logic in component resolving 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 0e913edccf Update component logic to support required and optional resolving
This allows resolving a dependency tree up to 10 elements deep, but a different solution may be necessary in the future. A better alternative in the future might be to keep a copy of the unresolved entries and then compare every loop, instead of limiting to a fixed number of cycles.

This currently doesn't address cyclic dependencies, since I'm not quite sure how those would work with the current model anyway.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 434936baf6 Split Find/Resolve/Link component discovery stages 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 7c887c06e8 nvidia: Move into its own component
This component enables interactivity with NVIDIA libraries. Currently this is limited to NVIDIA Maxine only.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks e6c81ca71e Always build Frontend and Updater
We now require these features all the time, as they are becoming more of a core part of the StreamFX UI. Additionally several components rely on these already being present, so omitting them is not a great idea.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 72b0daca05 upscaling: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 484c790c2a virtual-greenscreen: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks e3ddbe4336 denoising: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks d7d8253518 autoframing: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 7ebe4f5631 sdf-effects: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 65e91fbbc4 mirror: Move into its own component
Soon to be replaced by Spout/Sink
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 5d5852c8f7 color-grade: Move into its own component
Another re-usable code section that never got reused. This one is actually more useful, so I might split it into its own component eventually.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 4f845ac996 blur: Move into its own component
This still contains some of the old reusable code, which was never used in the first place. I'm unsure what the end goal for it was, as nothing really ended up using it anywhere else.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 02f8ca8d83 transform: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks 792bf163b4 dynamic-mask: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks ecaf39bee1 shader: Move into its own component 2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks d5cf2d2ccf ffmpeg: Move into its own component
While we're at it, let's also fix the invalid destructor, as well as the NVENC HEVC encoder incorrectly using H264.Level to store H265.Level.
2023-09-30 09:25:30 +02:00
Michael Fabian 'Xaymar' Dirks ac307a4912 cmake: Add common include directories and fix Windows
Microsoft has some very annoying #define's which break most if not all of C++ at random spots. Best disable them globally so we don't have to ever deal with them. Also the MSVC CRT warnings are completely pointless, they are just whining that we use the standard instead of their non-portable functionality.
2023-09-07 03:43:24 +02:00
Michael Fabian 'Xaymar' Dirks 54cd3eef5b cmake: Actually add sources to the Core component 2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks d8a673a578 cmake: Always provide at least one file to a target
While this would normally work no questions asked in something like 'make', 'nmake' or similar, it is an impossible task in CMake without an empty file. So we'll just provide it with an empty file.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks efb6e9f0cb cmake: Only enable Qt on components, not on the module
The module only holds the resources file, so Qt is not needed here.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks 0ce977b9dd cmake: Uncomment still working code 2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks 98403126ad cmake: Fix missing public info, and remove PROJECT_NAME usage
Using PROJECT_NAME makes it incompatible with add_subdirectory, and it's really not necessary anyway. There are no plans to rename the project again.

Also needed to expose some information to be public, so that components could actually use it. Seems to be working as intended finally.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks 8fb37b8d21 cmake: Fix up missing sub-components due to add_subdirectory
add_subdirectory creates a new "stack" of variables, so PARENT_SCOPE points nowhere. Well it points to the outside of the function, which is not outside of the subproject.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks d82d3901e4 cmake: Remove remnants of AOM AV1 2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks f26565cf1e cmake: Remove clang integration, as it breaks on the new system 2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks 9021274297 cmake: Fix up missing linked objects in component system
We should always link the whole object, even if nothing is needed by the module itself.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks 50c85608c3 cmake: Initial work towards component-ification
The old fake component system is starting to be very annoying to work with, as it doesn't properly split things apart. The new system should aid with this significantly, and make errors easier to spot.
2023-09-03 15:32:46 +02:00
Michael Fabian 'Xaymar' Dirks e82823d49c cmake: Explicitly disable treating warnings as errors
As libOBS and OBS Studio unfortunately enforce treating warnings as errors, it is necessary to do the opposite. This may remove the need of having a patch for this exist at all, but I'll leave it be for now and just add this single line fix.
2023-07-31 15:28:39 +02:00
Michael Fabian 'Xaymar' Dirks ffb7a6c5d7 code: Add GoPro CineForm to FFmpeg Encoders 2023-05-20 19:54:46 +02:00
Michael Fabian 'Xaymar' Dirks 1c76169821 code: Migrate encoder::ffmpeg::nvenc to new loader 2023-05-16 15:19:11 +02:00
Michael Fabian 'Xaymar' Dirks 51282b7b85 code: Migrate encoder::ffmpeg::amf to new loader 2023-05-16 15:19:11 +02:00
Michael Fabian 'Xaymar' Dirks d8235bf504 code: Migrate encoder::ffmpeg::dnxhd to new loader 2023-05-16 15:19:11 +02:00
Michael Fabian 'Xaymar' Dirks fc8ebc7bf3 code: Rename encoder::ffmpeg::prores_aw 2023-05-16 15:19:11 +02:00
Michael Fabian 'Xaymar' Dirks 78310f9c63 code: Migrate encoder::ffmpeg::debug to new loader 2023-05-16 15:19:11 +02:00
Michael Fabian 'Xaymar' Dirks a1968b970b code: Migrate encoder::ffmpeg handlers into proper directory
Shouldn't have an effect on functionality, only affects location.
2023-05-16 15:19:11 +02:00
Michael Fabian 'Xaymar' Dirks 21f8a66c7f cmake: Mark encoder::ffmpeg::nvenc as Stable 2023-05-16 06:04:59 +02:00
Michael Fabian 'Xaymar' Dirks a8704e6028 cmake: Set some additional feature defaults 2023-05-14 16:54:45 +02:00
Michael Fabian 'Xaymar' Dirks d51847152c code, cmake: Remove legacy code 2023-05-14 09:14:29 +02:00
Michael Fabian 'Xaymar' Dirks 0439fddabd cmake: Generate properly formatted versions from git 2023-05-14 06:35:36 +02:00
Michael Fabian 'Xaymar' Dirks c000061758 cmake: Fix version(REQUIRE) statement 2023-05-14 03:25:07 +02:00