~~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]]