Skip to content

Commit

Permalink
[Actions] Adding a MacOS build workflow, fixing several MacOS specifi…
Browse files Browse the repository at this point in the history
…c compilation errors and warnings (#327)

* Adding a macOS build template

* Add a workflow file for macOS build

* Remove the architecture specification from the build command

* Disabling DeviceIdentification plugin due to no platform backend 

CMake Error at DeviceIdentification/CMakeLists.txt:116 (message):
  There is no platform backend for device identifier plugin

* Mark all Message method from Publishers as overrides

* Bring Attach and Detach from PluginHost::JSONRPC into the MessageControl class

* Try to enable the const copy constructor of MonitorObject to see if that's the root cause

* The operators have to be deleted, bring it back

* Removing the proper copy and assignemtn operators with const instead

* Remove one instance of operator= deletion

* Make sure to include the fno-gnu-unique flag only for GCC

* Slight formatting changes

* Adding a missing override

* Adding overrides and marking member variable as not used

[18/34] Building CXX object OpenCDMi/CMakeFiles/ThunderOCDM.dir/CENCParser.cpp.o
FAILED: OpenCDMi/CMakeFiles/ThunderOCDM.dir/CENCParser.cpp.o 
/Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -DPROCESSCONTAINERS_ENABLED=1 -DTHUNDER_PLATFORM_PC_UNIX=1 -DThunderOCDM_EXPORTS -DWARNING_REPORTING_ENABLED -D_TRACE_LEVEL=0 -D__CORE_MESSAGING__ -D__CORE_NO_WCHAR_SUPPORT__ -D__CORE_WARNING_REPORTING__ -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder/processcontainers -Wall -Wextra -Wpedantic -Werror -O3 -DNDEBUG -std=gnu++11 -arch arm64 -isysroot /Applications/Xcode_15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT OpenCDMi/CMakeFiles/ThunderOCDM.dir/CENCParser.cpp.o -MF OpenCDMi/CMakeFiles/ThunderOCDM.dir/CENCParser.cpp.o.d -o OpenCDMi/CMakeFiles/ThunderOCDM.dir/CENCParser.cpp.o -c /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/CENCParser.cpp
In file included from /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/CENCParser.cpp:20:
In file included from /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/CENCParser.h:25:
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/Protobuf.h:466:18: error: 'Type' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        WireType Type() const {
                 ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/Protobuf.h:40:26: note: overridden virtual function is here
        virtual WireType Type() const = 0;
                         ^
1 error generated.
[19/34] Building CXX object Monitor/CMakeFiles/ThunderMonitor.dir/Monitor.cpp.o
[20/34] Building CXX object OpenCDMi/CMakeFiles/ThunderOCDM.dir/OCDM.cpp.o
[21/34] Building CXX object OpenCDMi/CMakeFiles/ThunderOCDM.dir/OCDMJsonRpc.cpp.o
[22/34] Building CXX object OpenCDMi/CMakeFiles/ThunderOCDM.dir/FrameworkRPC.cpp.o
FAILED: OpenCDMi/CMakeFiles/ThunderOCDM.dir/FrameworkRPC.cpp.o 
/Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -DPROCESSCONTAINERS_ENABLED=1 -DTHUNDER_PLATFORM_PC_UNIX=1 -DThunderOCDM_EXPORTS -DWARNING_REPORTING_ENABLED -D_TRACE_LEVEL=0 -D__CORE_MESSAGING__ -D__CORE_NO_WCHAR_SUPPORT__ -D__CORE_WARNING_REPORTING__ -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder/processcontainers -Wall -Wextra -Wpedantic -Werror -O3 -DNDEBUG -std=gnu++11 -arch arm64 -isysroot /Applications/Xcode_15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT OpenCDMi/CMakeFiles/ThunderOCDM.dir/FrameworkRPC.cpp.o -MF OpenCDMi/CMakeFiles/ThunderOCDM.dir/FrameworkRPC.cpp.o.d -o OpenCDMi/CMakeFiles/ThunderOCDM.dir/FrameworkRPC.cpp.o -c /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp
In file included from /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp:25:
In file included from /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/CENCParser.h:25:
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/Protobuf.h:466:18: error: 'Type' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        WireType Type() const {
                 ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/Protobuf.h:40:26: note: overridden virtual function is here
        virtual WireType Type() const = 0;
                         ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp:953:35: error: 'GetSecureStopIds' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
            Exchange::OCDM_RESULT GetSecureStopIds(
                                  ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder/interfaces/IOCDM.h:229:25: note: overridden virtual function is here
    virtual OCDM_RESULT GetSecureStopIds(const string& keySystem,
                        ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp:980:35: error: 'CommitSecureStop' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
            Exchange::OCDM_RESULT CommitSecureStop(
                                  ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder/interfaces/IOCDM.h:240:25: note: overridden virtual function is here
    virtual OCDM_RESULT CommitSecureStop(const string& keySystem,
                        ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp:1421:26: error: 'Reset' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        virtual uint32_t Reset()
                         ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder/interfaces/IContentDecryption.h:35:26: note: overridden virtual function is here
        virtual uint32_t Reset() = 0;
                         ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp:1425:39: error: 'Systems' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        virtual RPC::IStringIterator* Systems() const
                                      ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder/interfaces/IContentDecryption.h:36:39: note: overridden virtual function is here
        virtual RPC::IStringIterator* Systems() const = 0;
                                      ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp:1429:39: error: 'Designators' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        virtual RPC::IStringIterator* Designators(const string& keySystem) const
                                      ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder/interfaces/IContentDecryption.h:37:39: note: overridden virtual function is here
        virtual RPC::IStringIterator* Designators(const string& keySystem) const = 0;
                                      ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp:1435:39: error: 'Sessions' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        virtual RPC::IStringIterator* Sessions(const string& keySystem) const
                                      ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder/interfaces/IContentDecryption.h:38:39: note: overridden virtual function is here
        virtual RPC::IStringIterator* Sessions(const string& keySystem) const = 0;
                                      ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp:378:48: error: private field '_mediaKeysExt' is not used [-Werror,-Wunused-private-field]
                    CDMi::IMediaKeySessionExt* _mediaKeysExt;
                                               ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp:379:30: error: private field '_sessionKey' is not used [-Werror,-Wunused-private-field]
                    uint8_t* _sessionKey;
                             ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp:380:30: error: private field '_sessionKeyLength' is not used [-Werror,-Wunused-private-field]
                    uint32_t _sessionKeyLength;
                             ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/OpenCDMi/FrameworkRPC.cpp:751:34: error: private field '_refCount' is not used [-Werror,-Wunused-private-field]
                mutable uint32_t _refCount;
                                 ^
11 errors generated.

* Mark the PerformanceMetrics methods as overrides of IPlugin

[28/34] Building CXX object PerformanceMetrics/CMakeFiles/ThunderPerformanceMetrics.dir/PerformanceMetrics.cpp.o
FAILED: PerformanceMetrics/CMakeFiles/ThunderPerformanceMetrics.dir/PerformanceMetrics.cpp.o 
/Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -DPROCESSCONTAINERS_ENABLED=1 -DTHUNDER_PLATFORM_PC_UNIX=1 -DThunderPerformanceMetrics_EXPORTS -DWARNING_REPORTING_ENABLED -D_TRACE_LEVEL=0 -D__CORE_MESSAGING__ -D__CORE_NO_WCHAR_SUPPORT__ -D__CORE_WARNING_REPORTING__ -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Debug/install/usr/include/Thunder -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Debug/install/usr/include -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Debug/install/usr/include/Thunder/processcontainers -Wall -Wextra -Wpedantic -Werror -g -std=gnu++11 -arch arm64 -isysroot /Applications/Xcode_15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -O0 -g -MD -MT PerformanceMetrics/CMakeFiles/ThunderPerformanceMetrics.dir/PerformanceMetrics.cpp.o -MF PerformanceMetrics/CMakeFiles/ThunderPerformanceMetrics.dir/PerformanceMetrics.cpp.o.d -o PerformanceMetrics/CMakeFiles/ThunderPerformanceMetrics.dir/PerformanceMetrics.cpp.o -c /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/PerformanceMetrics.cpp
In file included from /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/PerformanceMetrics.cpp:20:
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/PerformanceMetrics.h:667:30: error: 'Initialize' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        virtual const string Initialize(PluginHost::IShell* service);
                             ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Debug/install/usr/include/Thunder/plugins/IPlugin.h:81:30: note: overridden virtual function is here
        virtual const string Initialize(PluginHost::IShell* shell) = 0;
                             ^
In file included from /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/PerformanceMetrics.cpp:20:
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/PerformanceMetrics.h:673:22: error: 'Deinitialize' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        virtual void Deinitialize(PluginHost::IShell* service);
                     ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Debug/install/usr/include/Thunder/plugins/IPlugin.h:90:22: note: overridden virtual function is here
        virtual void Deinitialize(PluginHost::IShell* shell) = 0;
                     ^
In file included from /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/PerformanceMetrics.cpp:20:
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/PerformanceMetrics.h:677:24: error: 'Information' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
        virtual string Information() const;
                       ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Debug/install/usr/include/Thunder/plugins/IPlugin.h:97:24: note: overridden virtual function is here
        virtual string Information() const = 0;
                       ^
3 errors generated.

* Mark Activated from TraceOutput as an override of a method from PerformanceMetrics

 /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/TraceOutput.cpp:161:10: error: 'Activated' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
    void Activated() 
         ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/PerformanceMetrics.h:104:26: note: overridden virtual function is here
            virtual void Activated()  = 0;
                         ^

* Removing instantiation of LoggerFactory that occurs after specialization

/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/TraceOutput.cpp:229:89: error: explicit instantiation of 'LoggerFactory<Thunder::Plugin::PerformanceMetrics::IBrowserMetricsLogger>' that occurs after an explicit specialization has no effect [-Werror,-Winstantiation-after-specialization]
template std::unique_ptr<PerformanceMetrics::IBrowserMetricsLogger> PerformanceMetrics::LoggerFactory<PerformanceMetrics::IBrowserMetricsLogger>();                
                                                                                        ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/TraceOutput.cpp:223:80: note: previous template specialization is here
std::unique_ptr<PerformanceMetrics::IBrowserMetricsLogger> PerformanceMetrics::LoggerFactory<PerformanceMetrics::IBrowserMetricsLogger>() {

* Add override to Activated in TraceOutput

[28/34] Building CXX object PerformanceMetrics/CMakeFiles/ThunderPerformanceMetrics.dir/TraceOutput.cpp.o
FAILED: PerformanceMetrics/CMakeFiles/ThunderPerformanceMetrics.dir/TraceOutput.cpp.o 
/Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -DPROCESSCONTAINERS_ENABLED=1 -DTHUNDER_PLATFORM_PC_UNIX=1 -DThunderPerformanceMetrics_EXPORTS -DWARNING_REPORTING_ENABLED -D_TRACE_LEVEL=0 -D__CORE_MESSAGING__ -D__CORE_NO_WCHAR_SUPPORT__ -D__CORE_WARNING_REPORTING__ -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include -isystem /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/Release/install/usr/include/Thunder/processcontainers -Wall -Wextra -Wpedantic -Werror -O3 -DNDEBUG -std=gnu++11 -arch arm64 -isysroot /Applications/Xcode_15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.5.sdk -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -MD -MT PerformanceMetrics/CMakeFiles/ThunderPerformanceMetrics.dir/TraceOutput.cpp.o -MF PerformanceMetrics/CMakeFiles/ThunderPerformanceMetrics.dir/TraceOutput.cpp.o.d -o PerformanceMetrics/CMakeFiles/ThunderPerformanceMetrics.dir/TraceOutput.cpp.o -c /Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/TraceOutput.cpp
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/TraceOutput.cpp:161:10: error: 'Activated' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
    void Activated() 
         ^
/Users/runner/work/ThunderNanoServicesRDK/ThunderNanoServicesRDK/ThunderNanoServicesRDK/PerformanceMetrics/PerformanceMetrics.h:104:26: note: overridden virtual function is here
            virtual void Activated()  = 0;
                         ^
1 error generated.

* Use the template from master and update the trigger conditions
  • Loading branch information
VeithMetro authored Nov 15, 2024
1 parent f5fec17 commit a9812e7
Show file tree
Hide file tree
Showing 10 changed files with 129 additions and 25 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/Build ThunderNanoServicesRDK on MacOS.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Build ThunderNanoServicesRDK on MacOS

on:
workflow_dispatch:
push:
branches: ["master"]
pull_request:
branches: ["master"]

jobs:
Thunder:
uses: rdkcentral/Thunder/.github/workflows/MacOS build template.yml@master

ThunderInterfaces:
needs: Thunder
uses: rdkcentral/ThunderInterfaces/.github/workflows/MacOS build template.yml@master

ThunderNanoServicesRDK:
needs: ThunderInterfaces
uses: WebPlatformForEmbedded/ThunderNanoServicesRDK/.github/workflows/MacOS build template.yml@master
81 changes: 81 additions & 0 deletions .github/workflows/MacOS build template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
name: MacOS build template

on:
workflow_call:

jobs:
ThunderNanoServicesRDK:

runs-on: macos-14

strategy:
matrix:
build_type: [Debug, Release, MinSizeRel]

name: Build type - ${{matrix.build_type}}
steps:
# --------- Packages & artifacts ---------
- name: Install necessary packages
run: |
brew update
brew upgrade
brew install ninja zlib
python3 -m venv venv
source venv/bin/activate
pip install jsonref
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: ThunderInterfaces-${{matrix.build_type}}-artifact
path: ${{matrix.build_type}}

- name: Unpack files
run: |
tar -xvzf ${{matrix.build_type}}/${{matrix.build_type}}.tar.gz
rm ${{matrix.build_type}}/${{matrix.build_type}}.tar.gz
# ----- Checkout & Options regex -----
- name: Checkout ThunderNanoServicesRDK
uses: actions/checkout@v4
with:
path: ThunderNanoServicesRDK
repository: WebPlatformForEmbedded/ThunderNanoServicesRDK

- name: Regex ThunderNanoServicesRDK
if: contains(github.event.pull_request.body, '[Options:')
id: plugins
uses: AsasInnab/regex-action@v1
with:
regex_pattern: '(?<=\[Options:).*(?=\])'
regex_flags: 'gim'
search_string: ${{github.event.pull_request.body}}

# ----- Build & upload artifacts -----
- name: Build ThunderNanoServicesRDK
run: |
source venv/bin/activate
cmake -G Ninja -S ThunderNanoServicesRDK -B ${{matrix.build_type}}/build/ThunderNanoServicesRDK \
-DCMAKE_CXX_FLAGS="-Wall -Wextra -Wpedantic -Werror" \
-DCMAKE_C_FLAGS="-Wall -Wextra -Wpedantic -Werror" \
-DCMAKE_INSTALL_PREFIX="${{matrix.build_type}}/install/usr" \
-DCMAKE_MODULE_PATH="${PWD}/${{matrix.build_type}}/install/usr/include/WPEFramework/Modules" \
-DPLUGIN_DEVICEIDENTIFICATION=OFF \
-DPLUGIN_DEVICEINFO=ON \
-DPLUGIN_LOCATIONSYNC=ON \
-DPLUGIN_MESSAGECONTROL=ON \
-DPLUGIN_MESSENGER=ON \
-DPLUGIN_MONITOR=ON \
-DPLUGIN_OPENCDMI=ON \
-DPLUGIN_PERFORMANCEMETRICS=ON \
${{steps.plugins.outputs.first_match}}
cmake --build ${{matrix.build_type}}/build/ThunderNanoServicesRDK --target install
- name: Tar files
run: tar -czvf ${{matrix.build_type}}.tar.gz ${{matrix.build_type}}

- name: Upload
uses: actions/upload-artifact@v4
with:
name: ThunderNanoServicesRDK-${{matrix.build_type}}-artifact
path: ${{matrix.build_type}}.tar.gz
3 changes: 3 additions & 0 deletions MessageControl/MessageControl.h
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,9 @@ namespace Plugin {
END_INTERFACE_MAP

public:
using PluginHost::JSONRPC::Attach;
using PluginHost::JSONRPC::Detach;

const string Initialize(PluginHost::IShell* service) override;
void Deinitialize(PluginHost::IShell* service) override;
string Information() const override;
Expand Down
8 changes: 4 additions & 4 deletions MessageControl/MessageOutput.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ namespace Publishers {
~ConsoleOutput() override = default;

public:
void Message(const Core::Messaging::MessageInfo& metadata, const string& text);
void Message(const Core::Messaging::MessageInfo& metadata, const string& text) override;

private:
Text _convertor;
Expand All @@ -81,7 +81,7 @@ namespace Publishers {
~SyslogOutput() override = default;

public:
void Message(const Core::Messaging::MessageInfo& metadata, const string& text);
void Message(const Core::Messaging::MessageInfo& metadata, const string& text) override;

private:
Text _convertor;
Expand Down Expand Up @@ -111,7 +111,7 @@ namespace Publishers {
}

public:
void Message(const Core::Messaging::MessageInfo& metadata, const string& text);
void Message(const Core::Messaging::MessageInfo& metadata, const string& text) override;

private:
Text _convertor;
Expand Down Expand Up @@ -377,7 +377,7 @@ namespace Publishers {
}

void UpdateChannel();
void Message(const Core::Messaging::MessageInfo& metadata, const string& text);
void Message(const Core::Messaging::MessageInfo& metadata, const string& text) override;

private:
Text _convertor;
Expand Down
5 changes: 2 additions & 3 deletions Monitor/Monitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,6 @@ namespace Plugin {
class MonitorObject {
public:
MonitorObject() = delete;
MonitorObject& operator=(const MonitorObject&) = delete;

enum evaluation {
SUCCESFULL = 0x00,
Expand Down Expand Up @@ -490,8 +489,8 @@ namespace Plugin {
}
}

MonitorObject(MonitorObject&) = delete;
MonitorObject& operator=(MonitorObject&) = delete;
MonitorObject(const MonitorObject&) = delete;
MonitorObject& operator=(const MonitorObject&) = delete;
MonitorObject(MonitorObject&&) = delete;
MonitorObject& operator=(MonitorObject&&) = delete;

Expand Down
4 changes: 3 additions & 1 deletion OpenCDMi/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,9 @@ add_library(${MODULE_NAME} SHARED
FrameworkRPC.cpp
Module.cpp)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-gnu-unique")
if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-gnu-unique")
endif()

set_target_properties(${MODULE_NAME} PROPERTIES
CXX_STANDARD 11
Expand Down
20 changes: 10 additions & 10 deletions OpenCDMi/FrameworkRPC.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -375,9 +375,9 @@ namespace Plugin {

private:
CDMi::IMediaKeySession* _mediaKeys;
CDMi::IMediaKeySessionExt* _mediaKeysExt;
uint8_t* _sessionKey;
uint32_t _sessionKeyLength;
VARIABLE_IS_NOT_USED CDMi::IMediaKeySessionExt* _mediaKeysExt;
VARIABLE_IS_NOT_USED uint8_t* _sessionKey;
VARIABLE_IS_NOT_USED uint32_t _sessionKeyLength;
};

// IMediaKeys defines the MediaKeys interface.
Expand Down Expand Up @@ -748,7 +748,7 @@ POP_WARNING()
private:
AccessorOCDM& _parent;
mutable Core::CriticalSection _adminLock;
mutable uint32_t _refCount;
VARIABLE_IS_NOT_USED mutable uint32_t _refCount;
std::string _keySystem;
std::string _sessionId;
CDMi::IMediaKeySession* _mediaKeySession;
Expand Down Expand Up @@ -954,7 +954,7 @@ POP_WARNING()
const std::string& keySystem,
unsigned char Ids[],
uint16_t idsLength,
uint32_t& count)
uint32_t& count) override
{
CDMi::IMediaKeysExt* systemExt = dynamic_cast<CDMi::IMediaKeysExt*>(_parent.KeySystem(keySystem));
if (systemExt) {
Expand Down Expand Up @@ -982,7 +982,7 @@ POP_WARNING()
const unsigned char sessionID[],
uint16_t sessionIDLength,
const unsigned char serverResponse[],
uint16_t serverResponseLength)
uint16_t serverResponseLength) override
{
CDMi::IMediaKeysExt* systemExt = dynamic_cast<CDMi::IMediaKeysExt*>(_parent.KeySystem(keySystem));
if (systemExt) {
Expand Down Expand Up @@ -1418,21 +1418,21 @@ POP_WARNING()
}
}

virtual uint32_t Reset()
virtual uint32_t Reset() override
{
return (Core::ERROR_NONE);
}
virtual RPC::IStringIterator* Systems() const
virtual RPC::IStringIterator* Systems() const override
{
return (Core::ServiceType<RPC::StringIterator>::Create<RPC::IStringIterator>(_keySystems));
}
virtual RPC::IStringIterator* Designators(const string& keySystem) const
virtual RPC::IStringIterator* Designators(const string& keySystem) const override
{
std::list<string> designators;
LoadDesignators(keySystem, designators);
return (Core::ServiceType<RPC::StringIterator>::Create<RPC::IStringIterator>(designators));
}
virtual RPC::IStringIterator* Sessions(const string& keySystem) const
virtual RPC::IStringIterator* Sessions(const string& keySystem) const override
{
std::list<string> sessions;
LoadSessions(keySystem, sessions);
Expand Down
2 changes: 1 addition & 1 deletion OpenCDMi/Protobuf.h
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ namespace Protobuf {
}
return (result);
}
WireType Type() const {
WireType Type() const override {
return (WireType::LENGTH_DELIMITED);
}

Expand Down
6 changes: 3 additions & 3 deletions PerformanceMetrics/PerformanceMetrics.h
Original file line number Diff line number Diff line change
Expand Up @@ -664,17 +664,17 @@ POP_WARNING()
// If there is an error, return a string describing the issue why the initialisation failed.
// The Service object is *NOT* reference counted, lifetime ends if the plugin is deactivated.
// The lifetime of the Service object is guaranteed till the deinitialize method is called.
virtual const string Initialize(PluginHost::IShell* service);
virtual const string Initialize(PluginHost::IShell* service) override;

// The plugin is unloaded from Thunder. This is call allows the module to notify clients
// or to persist information if needed. After this call the plugin will unlink from the service path
// and be deactivated. The Service object is the same as passed in during the Initialize.
// After theis call, the lifetime of the Service object ends.
virtual void Deinitialize(PluginHost::IShell* service);
virtual void Deinitialize(PluginHost::IShell* service) override;

// Returns an interface to a JSON struct that can be used to return specific metadata information with respect
// to this plugin. This Metadata can be used by the MetData plugin to publish this information to the ouside world.
virtual string Information() const;
virtual string Information() const override;

private:

Expand Down
5 changes: 2 additions & 3 deletions PerformanceMetrics/TraceOutput.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class MetricsTraceOuput : public PerformanceMetrics::IStateMetricsLogger {
}
}

void Activated()
void Activated() override
{
if( _memory != nullptr ) {
TRACE(Trace::Metric, (_T("Plugin %s activated, RSS: %llu"), _callsign.c_str(), _memory->Resident()));
Expand Down Expand Up @@ -158,7 +158,7 @@ class MetricsTraceOuputBrowser : public PerformanceMetrics::IBrowserMetricsLogge
}
}

void Activated()
void Activated() override
{
}

Expand Down Expand Up @@ -226,7 +226,6 @@ std::unique_ptr<PerformanceMetrics::IBrowserMetricsLogger> PerformanceMetrics::L

template std::unique_ptr<PerformanceMetrics::IBasicMetricsLogger> PerformanceMetrics::LoggerFactory<PerformanceMetrics::IBasicMetricsLogger>();
template std::unique_ptr<PerformanceMetrics::IStateMetricsLogger> PerformanceMetrics::LoggerFactory<PerformanceMetrics::IStateMetricsLogger>();
template std::unique_ptr<PerformanceMetrics::IBrowserMetricsLogger> PerformanceMetrics::LoggerFactory<PerformanceMetrics::IBrowserMetricsLogger>();

}
}

0 comments on commit a9812e7

Please sign in to comment.