Skip to content

Latest commit

 

History

History
56 lines (51 loc) · 4.56 KB

README.md

File metadata and controls

56 lines (51 loc) · 4.56 KB

Prepare your build environment

  • Create a folder called fesapiEnv.
  • In this folder create the three following folders
    • build
    • fetpapi (Git clone this repository into this folder "fetpapi". You should then have a path fesapiEnv/fetpapi/src)
    • dependencies
  • The following compilers are known to work (used in CI)
    • gcc from version 4.8
    • visual studio from version 2017

Prepare the dependencies

Download (build and install if necessary) third party libraries:

We advise you to install these third party libraries respectively into

  • fesapiEnv/dependencies/boost-particularVersion
  • fesapiEnv/dependencies/avro-particularVersion

Configure the build

Fetpapi uses cmake as its build tool. A 3.12 version or later of cmake is required https://cmake.org/download/. We also recommend using cmake-gui (already included in the bin folder of the binary releases of cmake) which provides a graphical user interface on top of cmake. If you want to use cmake in command line, you would find example in Azure Pipeline file. Follow the below instructions :

  • yourPath/fesapiEnv/fetpapi defines where is the source code folder
  • yourPath/fesapiEnv/build/theNameYouWant defines where to build the binaries
  • Click on "Configure" button and select your favorite compiler : it will raise several errors.
  • give real path and files to the following cmake variables:
    • BOOST
      • Boost_INCLUDE_DIR : the directory where you can find the directory named "boost" which contain all BOOST headers
    • AVRO
      • AVRO_INCLUDE_DIR : where the "avro" directory containing all AVRO headers is located
      • (ONLY FOR WINDOWS) AVRO_LIBRARY_DEBUG : Optional, only used by Visual studio Debug configuration, the Avro debug library you want to link to.
      • AVRO_LIBRARY_RELEASE : the AVRO system library you want to link to.
  • Click again on "Configure" button. You should no more have errors so you can now click on "Generate" button.
  • You can now build your solution with your favorite compiler (and linker) using the generated solution in yourPath/fesapiEnv/build/theNameYouWant
  • OPTIONALLY, you can also set the variables WITH_DOTNET_WRAPPING, WITH_PYTHON_WRAPPING to true if you want to also generate wrappers on top of fetpapi for these two other programming languages. Don't forget to click again on "Configure" button once you changed the value of these two variables.
    • You will then have to also provide the path to the SWIG (version 3 as a mininum version) executable http://swig.org/download.html in the SWIG_EXECUTABLE variable (and click again on "Configure" button)
    • you will find the wrappers in fetpapi/cs/src (fetpapi/cs also contains a VS2015 project for the wrappers) or fetpapi/python/src
  • OPTIONALLY, for SSL support, please enable the WITH_ETP_SSL variable and set the following variables :
    • OPENSSL_INCLUDE_DIR : the OpenSSL include directory
    • LIB_EAY_RELEASE : the OpenSSL crypto library you want to link with.
    • SSL_EAY_RELEASE : the OpenSSL ssl library you want to link with.
  • OPTIONALLY, for fesapi support (see here for documentation on how to build fesapi), please enable the WITH_FESAPI variable and set the following variables :
    • HDF5_INCLUDE_DIR : the HDF5 include directory
    • FESAPI_INCLUDE_DIR : the directory where the fesapi headers are located (generally the include subdirectory of the fesapi installation directory).
    • (ONLY FOR WINDOWS) FESAPI_LIBRARY_DEBUG : Optional, only used by Visual studio Debug configuration, the fesapi debug library you want to link to.
    • FESAPI_LIBRARY_RELEASE : the fesapi library you want to link to.

Remark : you can choose where fetpapi will be installed (using "make install" on Linux or by generating the "INSTALL" project on Visual Studio) by setting the cmake variable called CMAKE_INSTALL_PREFIX

How to start

As a first way to start, we advise people to look at client (here) and server (here) examples.

Credits

This software was developed with :

This software was tested with :