GithubHelp home page GithubHelp logo

rtb-superbuild's Introduction

RealTimeBiomechanics & CEINMS Superbuild

This is a meta repository (so-called "superbuild") that uses YCM to compile RTB and CEINMS-related software. A YCM Superbuild is a CMake project, the only goal of which is to download and build several other projects. You can read more about the superbuild concept in YCM documentation.

Users can select which projects will be built through the following CMake options (see Installation for detailed instructions):

  • RTB-SUPERBUILD_RTOSIM (default: ON) to build the Real Time Opensim repository and its dependencies:
    • Filter
    • Concurrency
    • RTOSIM
  • RTB-SUPERBUILD_CEINMS (default: ON) to build the CEINMS repository and its dependencies
    • Concurrency
    • CEINMS
  • RTB-SUPERBUILD_CEINMS_RT_DEPS (default: OFF) to build CEINMS and the additional libraries that are used for its realtime applications
    • CEINMS
    • mcbs
    • Filter

Installation

We provide different instructions on how to install ceinms-superbuild, depending on your operating system:

  • Windows: use the superbuild with Microsoft Visual Studio
  • Linux: use the superbuild with make

Windows

System Dependencies

To install Git, you can use the installer available at http://git-scm.com/downloads To install CMake you can use the official installer available at http://www.cmake.org/cmake/resources/software.html . For other dependencies, see the documentation pages for each project.

Superbuild

You can clone the superbuild repository as any other Git repository, and generate the Visual Studio solution using the CMake gui:

  • on the top panel, set the source code directory to where you cloned the Git repository (<RTB-SUPERBUILD_SOURCE_DIR>) and the build directory (<RTB-SUPERBUILD_BUILD_DIR>) to a directory of your choice; a common choice is <RTB-SUPERBUILD_BUILD_DIR> = <RTB-SUPERBUILD_SOURCE_DIR>/build
  • hit Configure once
  • set YCM_GIT_BITBUCKET_USERNAME to your BitBucket account username
  • set YCM_GIT_BITBUCKET_BASE_ADDRESS to choose your preferred protocol among the available ones
  • enable the options you are interested in among RTB-SUPERBUILD_RTOSIM RTB-SUPERBUILD_CEINMS RTB-SUPERBUILD_CEINMS_RT_DEPS
  • if (and only if) you are a developer for a project enable the YCM_EP_DEVEL_MODE_<project_name> for that project
  • hit Configure until all red lines disappear (and check the message windows for the list of projects that were found /will be built)
  • hit Generate Then, you can simpy open the generated solution with Visual Studio and build the target all. Visual Studio will then download, build and install in a local directory all the CEINMS software and its dependencies.

Configure your enviroment

Currently the YCM superbuild does not support building a global install target, so all binaries are installed in <RTB-SUPERBUILD_BUILD_DIR>/install/bin and all libraries in <RTB-SUPERBUILD_BUILD_DIR>/install/lib.

To use this binaries and libraries, you should append <RTB-SUPERBUILD_BUILD_DIR>/install/bin to your PATH environment variable.

Linux

System Dependencies

On Debian based systems (as Ubuntu) you can install git, CMake and other dependencies (see the documentation pages for each project to find what they are) using apt-get:

sudo apt-get install git cmake cmake-curses-gui

Superbuild

Finally, after installing all the system dependencies, it is possible to install RTB and CEINMS software using the YCM superbuild. Clone the rtb-superbuild repository to a directory of your choice (<RTB-SUPERBUILD_SOURCE_DIR>), then:

cd <RTB-SUPERBUILD_SOURCE_DIR>
mkdir build
cd build
ccmake ../
  • set YCM_GIT_BITBUCKET_USERNAME to your BitBucket account username
  • set YCM_GIT_BITBUCKET_BASE_ADDRESS to choose your preferred protocol among the available ones
  • enable the options you are interested in among RTB-SUPERBUILD_RTOSIM RTB-SUPERBUILD_CEINMS RTB-SUPERBUILD_CEINMS_RT_DEPS
  • if (and only if) you are a developer for a project enable the YCM_EP_DEVEL_MODE_<project_name> for that project
  • hit 'c' until the generator command is available, then hit 'g'. Then, to download and build all the projects:
make

The directory 'build' will be referred to as <RTB-SUPERBUILD_BUILD_DIR>.

Configure your enviroment

Currently the YCM superbuild does not support building a global install target, so all binaries are installed in <RTB-SUPERBUILD_BUILD_DIR>/install/bin and all libraries in <RTB-SUPERBUILD_BUILD_DIR>/install/lib.

To use this binaries and libraries, you should update the PATH and LD_CONFIG_PATH environment variables.

An easy way is to add these lines to the .bashrc file in your home directory:

RTB-SUPERBUILD_ROOT=/directory/where/you/downloaded/rtb-superbuild
export PATH=$PATH:$RTB-SUPERBUILD_ROOT/build/install/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RTB-SUPERBUILD_ROOT/build/install/lib

To use the updated .bashrc in your terminal you should run the following command:

user@host:~$ source ~/.bashrc

It may also be necessary to update the cache of the dynamic linker:

user@host:~$ sudo ldconfig

rtb-superbuild's People

Contributors

elen4 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  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.