~~NOTOC~~ ====== User Software :: CR-Tools :: Development ======= - [[#Organization of the source code]] - [[#Creating a new application]] ==== 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) \\ ---- <- [[public:user software:User Software]] • [[public:user software:CR-Tools]]