This is an old revision of the document!
User Software :: CR-Tools :: Development
Organization of the source code
After the check-out – which will take a while – you will be left with a new directory tree organized as follows:
lofarsoft |-- CMakeLists.txt |-- build |-- data |-- devel_common |-- doc |-- external |-- release | |-- bin | |-- include | `-- lib `-- src |-- CR-Tools | |-- CMakeLists.txt | |-- apps | |-- doc | |-- implement | |-- scripts | `-- test `-- DAL
In this we have:
- usg is the root of the User Software code tree – go there if you want to synchronize your local version against the repository.
- build is used for building individual packages in the code distribution; using a separate directory for this purpose makes it easy to simply erase all compile and link attempts and start again from a clean plate.
- devel_common hold common tools for development; this includes e.g. the find scripts for CMake or file templates for creating new C++ classes. Unless you consider collaborating on the framework, you will not need to touch this (but you will need it).
- doc contains a local version of the Doxygen-based source code documentation; just go in there, fire up Doxygen and get an up-to-date version of the source code documentation.
- external hosts the various external packages which will be required to build parts of the LOFAR User Software; the main change her w.r.t. to old LOPES-Tools is, that critical components are distributed along with the stuff we are writing ourselves. This directory also contains casacore, a collection of the core libraries of the CASA system.
Creating a new application
Note: At the time being there is no automated manner by which to handle the creation of a new application.
- Create a new source file in the applications directory
lofarsoft `-- src `-- CR-Tools |-- apps <-- new application goes here | `-- CMakeLists.txt |-- implement `-- test
- Add an entry to the
CMakeLists.txt
in the applications directory:## ------------------------------------------------------------------- ## simStationBeam if (HAVE_CASACORE) add_executable (simStationBeam simStationBeam.cc) ## linker instructions target_link_libraries (simStationBeam cr) ## installation instructions install (TARGETS simStationBeam RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) endif (HAVE_CASACORE)