Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

cmake options

doc

default

CMAKE_INSTALL_PREFIXwhere you want to install your ecFlow /usr/local
CMAKE_BUILD_TYPE

to select the type of compilation:

  • Debug
  • RelWithDebInfo
  • Release (fully optimised compiler options)
  • Production
Release
CMAKE_CXX_FLAGSmore flags  for the C++ compiler
ENABLE_SERVERbuild the ecFlow serveron
ENABLE_PYTHONenable python interfaceon
ENABLE_UIenable build of ecflowUI (requires Qt)on
CMAKE_PREFIX_PATH

use to provide path to dependent libraries which are installed in a non-system locations.
For example, if you have installed Qt in a non-system location, you should set the path in this variable.


ENABLE_ALL_TESTS

enable performance, migration, memory leak , and regression tests

off
ENABLE_SSL

Encrypted communication for user commands (experimental, from ecFlow release 4.5.0).commands 

Please see: Open ssl for more details.

offENABLE_SECURE_USER

password based protection for user commands (experimental, from ecFlow release 4.5.0)

Please see: Black list file (experimental) for more details.

offon
BOOST_ROOT

where to find boost ( if non-standard installation  )

If not specified cmake will look for an environment variable of the same name.


...

Code Block
languagebash
titlecmake/ecbuild
cd $WK
mkdir build; cd build;

# Go with defaults, will build with CMAKE_BUILD_TYPE=Release and install to /usr/local
cmake .. 

# build release with debug info  
# cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo

# Override install prefix 
# cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/apps/ecflow/45.143.0 

# do NOT build the gui.
# cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/apps/ecflow -DCMAKE_BUILD_TYPE=Release -DENABLE_GUI=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

...

Code Block
languagebash
export PYTHONPATH=$PYTHONPATH:<prefix>/45.173.0/lib/python2.7/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/45.173.0/lib/python2python3.76/site-packages/ecflow 

Installing ecFlow Python to a custom  directory

...

However sometimes we may need to install the ecFlow python module to a different prefix.(starting with release 4.3.0)

This can be done using:

Code Block
cd $WK/build  # change to the build directory
cmake -DCMAKE_INSTALL_PREFIX=/tmp/avi/custom/ecflow/45.173.0 -DCOMPONENT=python -P cmake_install.cmake -- make install  # install python module under /tmp/avi/custom/ecflow/45.173.0


ecflow_ui: Make a list servers accessible to all users

...

  • creating a file called servers
  • The format of the servers file is very easy:

    Code Block
    titleserver file format
    <server_name> <machine_name> <port>

    An example might be:

    Code Block
    titleservers 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/45.173.0/share/ecflow/.