...
ecFlow consists of two tar files i.e.:
boost_1_71_0.tar.gz (or any recent boost)
- ecFlow-5.58.31-Source.tar.gz
Create a directory for the build:
Code Block language bash mkdir /tmp/ecflow_build
Copy the two tar file into this directory, then change directory to /tmp/ecflow_build
Un-zip then un-tar the two file files:
Code Block language bash tar -zxf boost_1_71_0.tar.gz tar -zxf ecFlow-5.58.31-Source.tar.gz
You should have two directories created:
Code Block boost_1_71_0 ecFlow-5.58.31-Source
Create two environment variables. These are used by some of the scripts:
Code Block export WK=/tmp/ecflow_build/ecFlow-5.58.31-Source export BOOST_ROOT=/tmp/ecflow_build/boost_1_71_0
If you have a module system, please ensure that before you start, GCC,cmake,python3, etc are available in $PATH.
Code Block language bash module load gnu module load cmake module load python3 module load qt
...
Code Block | ||||
---|---|---|---|---|
| ||||
cd $WK mkdir build; cd build; # Go with defaults, will build with CMAKE_BUILD_TYPE=Release and install to /usr/local cmake .. # Override install prefix # cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/apps/ecflow/5.58.31 # do NOT build the gui. # cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/apps/ecflow -DCMAKE_BUILD_TYPE=Release -DENABLE_UI=OFF # ignore Wdeprecated-declarations compiler warning messages and do NOT build python api # cmake .. -DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" -DENABLE_PYTHON=OFF # Use -j option to speed up compilation. Determine number of cpu's CPUS=$(lscpu -p | grep -v '#' | wc -l) make -j${CPUS} make check make install |
...
Warning | |||||||
---|---|---|---|---|---|---|---|
If you experience a problem with your installation and need to fix your install of dependent libraries like QT, Python, Boost, GCC, etc, then it is VERY important that you delete the build directory and start cmake build again. (This is because cmake keeps a cache of your configuration, and re-uses this unless the build directory is deleted).
|
To use the ecFlow Python Api, you need to add/change PYTHONPATH.
...
Code Block | ||
---|---|---|
| ||
export PYTHONPATH=$PYTHONPATH:<prefix>/5.58.31/lib/python3.6/site-packages/ecflow # If you used the default's then <prefix>=/usr/local # otherwise you should use whatever you entered for -DCMAKE_INSTALL_PREFIX, hence in the examples above we would have: export PYTHONPATH=$PYTHONPATH:/usr/local/apps/ecflow/5.58.31/lib/python3.6/site-packages/ecflow |
...
Code Block |
---|
cd $WK/build # change to the build directory cmake -DCMAKE_INSTALL_PREFIX=/tmp/avi/custom/ecflow/5.58.31 -DCOMPONENT=python -P cmake_install.cmake -- make install # install python module under /tmp/avi/custom/ecflow/5.58.31 |
ecflow_ui: Make a list servers accessible to all users
...
- creating a file called servers
The format of the server's file is very easy:
Code Block title server file format <server_name> <machine_name> <port>
An example might be:
Code Block title servers file server machineX 3141 projectX machineabc 4141 exp1 machineabc 4141 mars bigmac 11031
Copy this file to CMAKE_INSTALL_PREFIX/share/ecflow/. This makes the list of servers accessible to all users of ecflow_ui
Code Block cp servers /tmp/avi/custom/ecflow/5.58.31/share/ecflow/.
Python API (from ecflow 5.6.0)
...