Coder Social home page Coder Social logo

thunder's Introduction

Thunder

A C++ platform abstraction layer for generic functionality.

#Thunder dependencies After the JsonGenerator.py and StubGenerator.py were modified to run with the python 3.5 version, some action might be required. When using buildroot or yocto, no action is necessary. Upon running these scripts manually or on Windows, make sure python 3.5 or higher is used, like so:

$ python --version

You might also need to fulfill a requirement of the jsonref library, with the following line:

$ pip install jsonref

Internal plugins

Linux (Desktop) Build


These instructions should work on Raspberry PI or any Linux distro.

Note: All our projects can be custom configured with extra cmake (-D) options. To get a list of the posible project specific options add -L to the cmake commands below.

Build and install


1. Setup a workspace

export THUNDER_ROOT=${HOME}/thunder
export THUNDER_INSTALL_DIR=${THUNDER_ROOT}/install
mkdir -p ${THUNDER_INSTALL_DIR}
cd ${THUNDER_ROOT}

2. Thunder

  1. Get Source

    git clone https://github.com/rdkcentral/Thunder.git
  2. Build and install tools

    Note: Thunder tools need to be installed before building Thunder

    cmake -HThunder/Tools -Bbuild/ThunderTools \
          -DCMAKE_INSTALL_PREFIX=${THUNDER_INSTALL_DIR}/usr \
          -DCMAKE_MODULE_PATH=${THUNDER_INSTALL_DIR}/tools/cmake \
          -DGENERIC_CMAKE_MODULE_PATH=${THUNDER_INSTALL_DIR}/tools/cmake 
    
    make -C build/ThunderTools && make -C build/ThunderTools install
  3. Build and install Thunder

    Note: -DBUILD_TYPE options are: Production/Release/ReleaseSymbols/DebugOptimized/Debug

    cmake -HThunder -Bbuild/Thunder \
          -DCMAKE_INSTALL_PREFIX=${THUNDER_INSTALL_DIR}/usr \
          -DCMAKE_MODULE_PATH=${THUNDER_INSTALL_DIR}/tools/cmake \
          -DBUILD_TYPE=Debug -DBINDING=127.0.0.1 -DPORT=55555
    
    make -C build/Thunder && make -C build/Thunder install

3. Thunder Interfaces

git clone https://github.com/rdkcentral/ThunderInterfaces

cmake -HThunderInterfaces -Bbuild/ThunderInterfaces \
      -DCMAKE_INSTALL_PREFIX=${THUNDER_INSTALL_DIR}/usr \
      -DCMAKE_MODULE_PATH=${THUNDER_INSTALL_DIR}/tools/cmake \

make -C build/ThunderInterfaces && make -C build/ThunderInterfaces install

4. Thunder Client Libraries

git clone https://github.com/rdkcentral/ThunderClientLibraries.git

cmake -HThunderClientLibraries -Bbuild/ThunderClientLibraries \
      -DCMAKE_INSTALL_PREFIX=${THUNDER_INSTALL_DIR}/usr \
      -DCMAKE_MODULE_PATH=${THUNDER_INSTALL_DIR}/tools/cmake \
      -DVIRTUALINPUT=ON

make -C build/ThunderClientLibraries && make -C build/ThunderClientLibraries install

5. Thunder WebUI

Note: The WebUI is not supporting a full out of tree build.

git clone https://github.com/rdkcentral/ThunderUI.git

cmake -HThunderUI -BThunderUI/build \
      -DCMAKE_INSTALL_PREFIX=${THUNDER_INSTALL_DIR}/usr \
      -DCMAKE_MODULE_PATH=${THUNDER_INSTALL_DIR}/tools/cmake \

make -C ThunderUI/build && make -C ThunderUI/build install

6. Thunder Nano Services

git clone https://github.com/rdkcentral/ThunderNanoServices.git

cmake -HThunderNanoServices -Bbuild/ThunderNanoServices \
      -DCMAKE_INSTALL_PREFIX=${THUNDER_INSTALL_DIR}/usr \
      -DCMAKE_MODULE_PATH=${THUNDER_INSTALL_DIR}/tools/cmake \
      -DPLUGIN_DICTIONARY=ON

make -C build/ThunderNanoServices && make -C build/ThunderNanoServices install

Use Thunder


  1. Run
    PATH=${THUNDER_INSTALL_DIR}/usr/bin:${PATH} \
    LD_LIBRARY_PATH=${THUNDER_INSTALL_DIR}/usr/lib:${LD_LIBRARY_PATH} \
    WPEFramework -c ${THUNDER_INSTALL_DIR}/etc/WPEFramework/config.json
  2. Open http://127.0.0.1:55555 in a browser.

WINDOWS Build, using Visual Studio 2019


The default solution is setup in such away that it can run and load the Thunder and Thunder Nano Services (capable of running in Windows) if both repositories are next to each other. So checkout Thunder on disk and put the ThunderNanoServices next to it.

e.g. C:\Users\Me\Thunder C:\Users\Me\ThunderNanoServices

Than to run, the config file is assuming that all is installed on W: You can set this by mapping the artifacts directory created, to the W drive. A typical use case would be:

net use w: "\localhost\c$\Users\Me\Thunder\artifacts"

Before the first run make sure you creat a volatile and a peritent directory here mkdir w:\Temp and mkdir w:\Persistent.

If you want to use the Thunder UI page, copy the ThunderUI\build* to W:<build type>\Controller\UI

Depending on the filesystem used by the windows OS, symbolic links are supported or not. There is 1 Symbolic link in the Thuder repository (Thunder/Source/tools -> "../Tools"). If this symbolic link does not exist, you will experience build errors (error 2, GenrateProxyStub.py not found). or create a copy of the Tools directory in Source/tools (xcopy /d ..\Tools tools) or create the symlink manually (mklink /D tools "..\Tools")

thunder's People

Contributors

pwielders avatar haseenasainul avatar sebaszm avatar mfransen69 avatar bramoosterhuis avatar anjalirajan avatar svdmaar avatar aswaunni avatar woutermeek avatar mipo57 avatar damian-danylko avatar gladish avatar modeveci avatar wiswis15 avatar skumarmetro avatar 404ag avatar mikolaj-staworzynski-red avatar rjpdasilva avatar scthunderbolt avatar albertd avatar lukiwa avatar goruklu avatar petegriffin avatar pawel-stanek-ml avatar mrcomcast123 avatar s-rapolu avatar npoltorapavlo avatar brainstem123 avatar mallikarjuna54 avatar lavanyaks1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.