Commit Graph

493 Commits

Author SHA1 Message Date
Martin Piatka
bd20894c11 CI: ARM: remove old rpi hwaccel flag 2024-03-12 13:39:37 +01:00
Martin Pulec
448c19f69b CI Windows: add include path for MSVC
src/libavcodec/*cuda* includes FFmpeg headers, so provide them also for
MSVC (which is used to compile CUDA).
2024-03-08 16:11:47 +01:00
Martin Pulec
d74922e443 CI: install gcc 10 only in U20.04
This modifies the commit 7f166a2411. Although Linux CI is run with U20.04,
Coverity workflow uses ubuntu-latest, which is currently 22.04, where
default gcc is actually 11 and this breaks GPUJPEG compilation with
error starting with:
```
-- The C compiler identification is GNU 10.5.0
CMake Error at /usr/local/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:780 (message):
  Compiling the CUDA compiler identification source file
  "CMakeCUDACompilerId.cu" failed.

  Compiler: /usr/bin/nvcc
```

fixes failed run <https://github.com/CESNET/UltraGrid/actions/runs/7968323068>
2024-02-28 12:15:39 +01:00
Martin Pulec
bcef2372d6 CI Mac GLFW patches: host again in main repo
This is perhaps better than hosting it aside, the patches are UG-specific,
anyways.
2024-02-16 15:23:35 +01:00
Martin Pulec
bf09d1cdca CI: add sountfont, not download
The size is only some 90 kB when compressed so it is perhaps not worth
downloading from external source and depend on it.

It could be even bundled directly, not by CI. Now it is actually the case
in Linux (create-appimage.sh) but it is also possible for other platforms.
2024-02-13 16:44:31 +01:00
Martin Pulec
5ef864729d CI mac install_others.sh: ensure vars visibility
Make some variables, which may be adjusted by subsequent commands,
visible outside the subshell.
2024-02-13 16:42:43 +01:00
Martin Pulec
bbed291a95 CI mac: remove NDI 4 compat
unneeded and removing will ease refactor
2024-02-13 16:04:37 +01:00
Martin Piatka
0fac525e6f CI: MacOS: Fix deltacast install 2024-02-13 14:00:26 +01:00
Martin Piatka
7f166a2411 CI: Ubuntu install gcc-10
FFmpeg refuses to build on gcc 9, because of missing intrinsic
_mm256_loadu2_m128i
2024-02-13 13:59:04 +01:00
Martin Piatka
6bd76fcb4c CI: Fix Win jack download 2024-02-13 13:05:15 +01:00
Martin Pulec
3ff011341e CI mac: enforce /Library/Frameworks for Syphon
In CI on x86_64, for some reason, the path defaults to
/Library/Frameworks, while otherwhere to @rpath. So enforce to
/Library/Frameworks to be deterministic.
2024-02-12 14:18:47 +01:00
Martin Pulec
93f9dd074f build/CI macOS: do not handle Syphon specially
\+ build x86_64 from source as well to:

   1. be consistent with the arm64 build
   2. the binary x86_64 already had hardcoded the path @loader_path/../Frameworks/
   instead of @rpath, which would require yet another handling
2024-02-12 11:57:48 +01:00
Martin Pulec
1cce11666e CI mac: do not handle VideoMasterHD manually
Use the installer and rely on dylibbundler v2 to deploy the framework
correctly.

Note: in the macOS/install_others.sh script, make sure that the env var
modification is global (== not just in the subshell) in order to be updated
by subsequent commands in the same script.
2024-02-12 11:57:48 +01:00
Martin Pulec
4ed7421276 CI mac: use mac dylib bundler v2 again
see the comment in the changed script for details
2024-02-12 09:55:52 +01:00
Martin Pulec
bea0ee1b64 CI mac: signing docu updates
\+ do not check $apple_key_p12_b64 in sign.sh but $KEY_CHAIN and
$KEY_CHAIN_PASS presence, which are used directly
2024-02-09 17:05:28 +01:00
Martin Pulec
86b4c0696d CI mac: move signing key import to environment.sh
The signing key is actually needed in the ccpp.yml workflow earlier than
`prepare.sh` is run, namely in cache-macos-nonfree-sdks step.
2024-02-09 16:44:26 +01:00
Martin Pulec
1ef26af0e6 CI mac arm64: enable Deltacast
disabled in 3a076d24

The VideoMasterHD[_audio] did have invalid signature because of tweaked
internal paths, which caused Apple runtime to kill the process. Removing
the signature is not sufficient (the runtime requires signature) so we
sign it by our key.
2024-02-09 16:44:26 +01:00
Martin Pulec
d82c10a7b1 CI mac: videomasterhd preparation improvement
Remove absolute path from library location - we are in the directory
anyways.

This will be useful for local use (to copy and paste) when the library
is already copied to `$(xcrun --show-sdk-path)..` etc.

\+ early return
2024-02-09 16:44:26 +01:00
Martin Pulec
58741e3d91 CI mac: import the key in prepare.sh
We will need to sign VideoMasterHD frameworks with our key.
2024-02-09 16:44:25 +01:00
Martin Pulec
dbe6fff795 CI mac: added arch string
to identify if the build is arm64 or x86_64
2024-02-09 12:46:03 +01:00
Martin Pulec
e7c2379fef Revert "Revert "Revert "CI: macOS compilation fix (Vulkan missing hdr)"""
hopefully no longer needed

This reverts commit 4e5de7279c.
2024-02-09 12:46:03 +01:00
Martin Pulec
f54382d44e CI mac: use -msse4.2 only on x86_64 2024-02-09 12:45:49 +01:00
Martin Pulec
98d55eb316 CI mac arm64: added rpath needed for libjuice
otherwise linking fails with following error:

    dyld[34092]: Library not loaded: @rpath/libjuice.1.3.4.dylib
2024-02-09 12:14:22 +01:00
Martin Pulec
87e9438751 CI mac: select AJA arch
in order to work on arm64 as well
2024-02-09 12:14:22 +01:00
Martin Pulec
183ac67990 gh/scripts/macOS/prepare.sh: paths for arm64 Homebrew
Homebrew uses /opt/homebrew on arm64
2024-02-09 12:14:22 +01:00
Martin Pulec
e38af98538 CI mac: small updates for arm64
- missing sudo
- /usr/local/include mkdir for EWS
2024-02-09 12:14:22 +01:00
Martin Pulec
3a076d2482 CI mac arm64: disable cineform+Deltacast
- cineform seems to be unsupported altogether
- Deltacast should work but it doesn't seem so
2024-02-09 12:14:22 +01:00
Martin Pulec
d25d80939c CI mac: build Syphon for ARM 2024-02-09 12:14:21 +01:00
Martin Pulec
b73edbf575 scripts: remove SC2140 disable
It is not needed to split the string like this:
```
a="potentially long string on"\
"multiple lines"
```
but it is better rather to put the '\' inside the string:
```
a="potentially long string on\
multiple lines"
```
2024-02-09 12:14:21 +01:00
Martin Pulec
b8f4d15df4 CI FFmpeg Linux: pin Vulkan-Headers
FFmpeg doesn't currently build with current version of Vulkan-Headers.

See failed run:
<https://github.com/CESNET/UltraGrid/actions/runs/7842879019/job/21402069840>
2024-02-09 12:12:47 +01:00
Martin Pulec
cfd8009380 gh/scripts/macOS/install_others.sh: fixed local path
fixed local installation when `cd` was executed (eg. for aja)
2024-02-09 08:41:48 +01:00
Martin Pulec
5a0772b400 added .github/scripts/macOS/install_others.sh
separated from prepare.sh (in a similar way as it already is for Linux)

Useful for standalone installation, eg. on development machines.
2024-02-06 16:38:45 +01:00
Martin Pulec
c4b13ba642 sign.sh: added --sign-only (and --help)
to allow notariation skipping
2024-02-06 16:15:02 +01:00
Martin Pulec
6d17c7274d gh/.github/scripts/macOS/prepare.sh: dl installers
Download installers if not present. They usually are, because are cached
by the workflow. However, this change is mainly to allow the installation
not by CI but on some local computer for debugging purposes by C&P.
2024-02-06 13:28:27 +01:00
Martin Pulec
111a3a6911 CI Linux FFmpeg: updated libde265 patch
ceased to apply with FFmpeg master
2024-01-25 17:07:43 +01:00
Martin Pulec
89c01b0c7e Revert "CI: SVT-HEVC patch temporary workaround"
This reverts commit 354d169e29.

no longer needed, the patch has been updated in upstream
2024-01-25 17:07:43 +01:00
Martin Pulec
9ec041255a gh/scripts/install-common-deps.sh: improve sudo compat
simplified when sudo is not used (MSW or with root) by creating empty
alias and call it as usual.
2024-01-25 17:07:42 +01:00
Martin Pulec
be84cf8ab0 CI: limit CMake build with logical cores
This fixes all occurences of `cmake --build` as it already was in one
case with commit HEAD~7.

If omitted, CMake leaves the number of processes used on underlying
implementation, which turns out to `make -j`, thus unlimited number of
cores, which is undesirable.
2024-01-25 17:07:42 +01:00
Martin Pulec
fdd4fc1283 CI macos: limit number of threads for GLFW make
Using `cmake --build . --parallel` actually doesn't limit the number
of processes because it just passes the number (here none) to make,
resulting in `make -j`.

This is a possible explanations of macOS runner freezes, as eg. here:
<https://github.com/MartinPulec/UltraGrid/actions/runs/7641831068>
(last relevant message in log is `[100%] Built target joysticks`).
2024-01-25 17:07:41 +01:00
Martin Pulec
683718a285 CI Linux FFmpeg: do not build VPL tools
tools are not required, reducing dependencies and build time

see failed run:
<https://github.com/CESNET/UltraGrid/actions/runs/7386262548/job/20092516404>
2024-01-03 09:17:11 +01:00
Martin Pulec
354d169e29 CI: SVT-HEVC patch temporary workaround 2024-01-03 09:12:54 +01:00
Martin Pulec
5782dfd3cf CI ARM: enforce Pipewire + Vulkan (64b only) 2023-12-04 13:23:59 +01:00
Martin Pulec
07e452c778 CI+make: use system location for Syphon 2023-12-04 10:50:56 +01:00
Martin Pulec
0c2a074c28 Revert "CI Linux: fixed failed run (Vulkan)"
VulkanLoader has been updated, with the CUDA _EXT prefix, which is on
contrary incompatible with Vulkan-Headers v1.3.270.

This reverts commit 62ae77117d.
2023-11-28 08:39:43 +01:00
Martin Pulec
62ae77117d CI Linux: fixed failed run (Vulkan)
fixed failed run:
<https://github.com/CESNET/UltraGrid/actions/runs/7002907554/job/19047571995>

Vulkan-Loader seem to be (temporarily?) incompatible with current Vulkan
Headers, which suffix VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV with
_EXT in v1.3.271.
2023-11-27 10:54:07 +01:00
Martin Pulec
040a6797f2 CI scripts: ennsure that really copying to dir
Following to the previous commit, ensure that we are really copying to
an existing dir, where it is expected by appending '/' to the path.
2023-11-20 08:09:13 +01:00
Martin Pulec
8d9b9964d9 CI Win Cineform: do not copy .pc file
After previous commit, UG configure finds the .pc file because
the file was copied incorrectly before - it is copied to
/usr/local/lib/pkgconfig, which was perhaps not a directory, creating
file _named_ pkgconfig instead the file inside that dir. Interestingly
this didn't look like it influenced other libraries, that might also
want to copy its files to something, that was then file.

But the contents is not usable without adjustnments:
1. prefix is C:/Program Files/CineFormSDK
2. lib is set to -lCFHDCodecShared in the PC file, but generated
library has name just CFHDCodec (something similar as already solved
by 0001-CMakeList.txt-remove-output-lib-name-force-UNIX.patch)

While the pkg-config file was not used previously, it is perhaps easiest
to leave it as it used to be instead of trying to fix the .pc file.
2023-11-20 08:09:11 +01:00
Martin Pulec
424d62eedd CI Win: install natpmp with pkg 2023-11-16 16:26:11 +01:00
Martin Pulec
e92385abcc CI Win: cache CineForm build
This saves some 2.5 minute from the Windows runner run time.

There is also commented-out code to download the Release Asset directly
from CineForm GH. This unfortunatelly doesn't work right now (commented
in the file).
2023-11-16 16:26:10 +01:00
Martin Pulec
9eab706d6d .github/scripts/Windows/prepare_msys.sh: delta+gpujpeg to fn
Moved the components to its respective functions to be consistent with
the rest of the code.
2023-11-16 14:53:20 +01:00