labstreaminglayer / AppTemplate_cpp_qt

An example application to stream data from a device via the Labstreaminglayer
Other
5 stars 1 forks source link

[WIP] add github actions CI #4

Closed tstenner closed 4 years ago

tstenner commented 4 years ago

The current CI landscape looks as follows:

I've grown a bit attached to Azure Pipelines and its 10 free concurrent CI jobs, but I wouldn't want to explain anyone how to use it. Despite the shortcomings, most labs still use Windows and OSX so that rules out Appveyor and Travis and only github actions is left.

tstenner commented 4 years ago

All three platforms are built, but the MacOS artifacts are huge (~90MB). Are there any switches to macdeployqt to leave out parts we don't need @cboulay?

cboulay commented 4 years ago

A couple points:

Here is the macdeployqt help text:

bin $./macdeployqt
Usage: macdeployqt app-bundle [options]

Options:
   -verbose=<0-3>     : 0 = no output, 1 = error/warning (default), 2 = normal, 3 = debug
   -no-plugins        : Skip plugin deployment
   -dmg               : Create a .dmg disk image
   -no-strip          : Don't run 'strip' on the binaries
   -use-debug-libs    : Deploy with debug versions of frameworks and plugins (implies -no-strip)
   -executable=<path> : Let the given executable use the deployed frameworks too
   -qmldir=<path>     : Scan for QML imports in the given path
   -qmlimport=<path>  : Add the given path to the QML module search locations
   -always-overwrite  : Copy files even if the target file exists
   -codesign=<ident>  : Run codesign with the given identity on all executables
   -appstore-compliant: Skip deployment of components that use private API
   -libpath=<path>    : Add the given path to the library search path
   -fs=<filesystem>   : Set the filesystem used for the .dmg disk image (defaults to HFS+)

macdeployqt takes an application bundle as input and makes it
self-contained by copying in the Qt frameworks and plugins that
the application uses.

Plugins related to a framework are copied in with the
framework. The accessibility, image formats, and text codec
plugins are always copied, unless "-no-plugins" is specified.

Qt plugins may use private API and will cause the app to be
rejected from the Mac App store. MacDeployQt will print a warning
when known incompatible plugins are deployed. Use -appstore-compliant 
to skip these plugins. Currently two SQL plugins are known to
be incompatible: qsqlodbc and qsqlpsql.
tstenner commented 4 years ago

The install code in LSLCMake.cmake isn't quite right for MacOS, but our department Mac is currently in use.

The CI code here works, and as soon as I've fixed the MacOS install logic in liblsl it will include the bundled Qt libs.