Skip to content

redeboer/BOSS_ExternalLibs

Repository files navigation

BOSS External Libraries

This repository is a collection header files and source code of the external libraries on which the BESIII Offline Software System has been built. These header files can be used to activate autocomplete (intellisense), particular when working with Visual Studio Code. Another motivation to collect these files is (an attempt) to allow the user to build BOSS on one's own system.

Header files can be updated by running bash FetchExtLibs.sh on IHEP's lxslc server, but this should in principle only overwrite the files that already come with this repository.

The external libraries have been collected for BOSS version 7.0.4. and are (see here, p. 26):

Header files for BOSS 7.0.4 have also been added.

Activating intellisense in Visual Studio Code

If you are editing code for BOSS package using Visual Studio Code, you can make use of intellisense to have autocomplete available for all functions and class methods of these libraries, including BOSS. All you need to do is create a file called .vscode/c_cpp_properties.json in the folder in which you are working, containing the following lines:

{
  "configurations": [
    {
      "name": "Linux64/Win64",
      "intelliSenseMode": "clang-x64",
      "includePath": [
        "${workspaceFolder}/ThirdParty/headers/Additional",
        "${workspaceFolder}/ThirdParty/headers/BOSS",
        "${workspaceFolder}/ThirdParty/headers/CLHEP",
        "${workspaceFolder}/ThirdParty/headers/Gaudi",
        "${workspaceFolder}/ThirdParty/headers/geant4",
        "${workspaceFolder}/ThirdParty/headers/geant4/**",
        "${workspaceFolder}/ThirdParty/headers/mysql",
        "${workspaceFolder}/ThirdParty/headers/root"
      ],
      "cStandard": "c11",
      "cppStandard": "c++11",
      "browse": {
        "path": [
          "${workspaceFolder}/ThirdParty/headers/Additional",
          "${workspaceFolder}/ThirdParty/headers/BOSS",
          "${workspaceFolder}/ThirdParty/headers/CLHEP",
          "${workspaceFolder}/ThirdParty/headers/Gaudi",
          "${workspaceFolder}/ThirdParty/headers/geant4",
          "${workspaceFolder}/ThirdParty/headers/geant4/**",
          "${workspaceFolder}/ThirdParty/headers/mysql",
          "${workspaceFolder}/ThirdParty/headers/root"
        ],
        "limitSymbolsToIncludedHeaders": true
      }
    }
  ],
  "version": 4
}

The fastest way to do this, is to press Ctrl+Shift+P (Show All Commands) and enter the command "C/C++: Edit configurations (JSON)". This will create or open the .vscode/c_cpp_properties.json file.

Note that you may have to edit the paths from the workspace. In this example, this repository has been added as a submodule of the BOSS Starter Kit, where the BOSS External Libraries has been stored as submodule ThirdParty/headers.

Formally, you should use c99 and c++03, because of the version of gcc on the lxslc server. Using this trick, though, you can activate many C++11 features within the BOSS package framework, including the use of auto.

Note that you may have to install the boost libraries. In Linux, this can be done through:

sudo apt-get install libboost-all-dev

By default, the headers are then installed under /usr/include/boost.

Still to add

Some components that allow one to build BOSS locally on one's system are still missing:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published