Project

General

Profile

Framework variables

Back to Lynn's notes

At present, the following external variables are defined, based on the scons build
  • FW_HOME - points to the source code directory
  • setup scripts are in $FW_HOME/bin
  • executables (fw, mute) are in $FW_HOME/tmp/bin
  • libraries are in $FW_HOME/tmp/lib
  • $FW_HOME/tmp/bin and $FW_HOME/bin are added to PATH
  • $FW_HOME/tmp/lib is added to LD_LIBRARY_PATH

Both developers and users with test releases need to define a path to the directory containing their plugin libraries. The environmental varialble for this will be LOCAL_PLUGIN_DIR. Rather than defining LOCAL_PLUGIN_DIR, it may be sufficient and best just to add the directory to LD_LIBRARY_PATH.

When building with cmake, the source code, build directory, and install directory are all different. It is an "out of source" build.

My proposal for what the cmake build looks like when installed in ups:
  • FW_HOME - points to the ups product directory
  • source code is at $FW_HOME/src, which is defined as FW_CODE
  • setup_fw.sh is replaced by the ups setup
  • so only fw_init_examples is an issue
  • source code is needed for examples
  • executables (fw, mute) are in $FW_HOME/bin
  • libraries are in $FW_HOME/lib
  • $FW_HOME/bin is added to PATH
  • $FW_HOME/lib is added to LD_LIBRARY_PATH
In addition, developers would like to build in any random directory.
  • In this case, framework is not in ups, so setup_fw.sh is used
  • add setup_fw_development to setup and work in this new environment without affecting anyone still using scons
  • The developer must define FW_WORKDIR to point to the working build directory
  • this is the build directory
  • there is no need to specify or know the install directory - except when invoking cmake
  • FW_CODE will point to the source code directory, much as FW_HOME does now
  • not yet sure how FW_HOME fits in - it is meant to point to the install directory
  • LOCAL_PLUGIN_DIR will be $FW_WORKDIR/lib (required for testing)
  • LOCAL_PLUGIN_DIR will be added to LD_LIBRARY_PATH
  • install directories will not be invoked, so as not to confuse testing