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.
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.
\+ 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
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.
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.
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
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"
```
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.
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`).
This makes the script reentrant, allowing to run it also interactively
repeatedly, provided that the `apple_key_p12_b64` and
`notarytool_credentials` environment variables are correctly set.
Following to previous commit, we can build with Qt 6 (even thought that
a workaround is neeeded).
qt package (version 6) is installed anyways as a dependency of opencv
Install vulkan headers prior to updating homebrew tree.
the version 1.3.264 seem to be temporarily broken (see [1]), producing
error:
/usr/local/include/vulkan/vulkan.hpp:15:10: fatal error: 'vulkan/vulkan_hpp_macros.hpp' file not found
#include <vulkan/vulkan_hpp_macros.hpp>
[1]:
https://github.com/MartinPulec/UltraGrid/actions/runs/6184953701/job/16789584064
the version 4.1.7 in GH runner is unsolicitedly producing
relocatable install names as it would with (in recent HB version)
HOMEBREW_RELOCATABLE_INSTALL_NAMES=1
see failed run:
<https://github.com/CESNET/UltraGrid/actions/runs/6147222102/job/16745596096>
The relocatable install names like:
$ otool -L /usr/local/opt/qt/lib/QtGui.framework/QtGui | grep png
@loader_path/../../../../../../../opt/libpng/lib/libpng16.16.dylib
Makes significant problems to macdylibbundler (it doesn't copy the library
to the bundle at all neither chantes the name).
\+ reinstall freetype (see failed build
<https://github.com/MartinPulec/UltraGrid/actions/runs/6185513000/job/16791263362>)
fixes failed run
<https://github.com/CESNET/UltraGrid/actions/runs/5925739298/job/16065753514>
From some point, it seems that Qt6 (Homebrew port _qt_) is already
installed but it doesn't bundle successfully. So enforce using Qt5
(previous symlink command didn't replace the `/usr/local/opt/qt` symlink
if already present).
\+ copy the link instead of linking it to prevent:
Error: /usr/local/opt/qt@5 is not a valid keg
Copy sounfont to known path for macOS and Windows CI builds (in Linux,
this is already handled with a environment var SDL_SOUNDFONTS). And also
use that location if there is any soundfont.