Wiki » History » Version 16
J. Wienke, 01/05/2011 08:54 PM
1 | 7 | J. Wienke | h1. Prerequisites |
---|---|---|---|
2 | 1 | J. Wienke | |
3 | 7 | J. Wienke | h2. Dependencies |
4 | 7 | J. Wienke | |
5 | 4 | J. Wienke | * Boost >= 1.38 (for hardy available in the gar-installer, 1.34.1 untested) |
6 | 14 | J. Wienke | * Boost.UUID (header-only, officially included in Boost since 1.42, headers from this version can be used with all older versions of boost, gar-installer package available) |
7 | 4 | J. Wienke | * CMake (tested with 2.8) |
8 | 4 | J. Wienke | * optional |
9 | 4 | J. Wienke | ** Doxygen for API generation |
10 | 1 | J. Wienke | ** Lcov for code coverage analysis |
11 | 15 | J. Wienke | ** cppcheck for static code analysis |
12 | 7 | J. Wienke | |
13 | 7 | J. Wienke | h2. Supported Operating Systems and Compilers |
14 | 7 | J. Wienke | |
15 | 7 | J. Wienke | * Linux (GCC 4.x) |
16 | 7 | J. Wienke | * Windows (MS Visual Studio 9 2008) |
17 | 4 | J. Wienke | |
18 | 8 | J. Wienke | Other combination may be possible but are currently untested. |
19 | 8 | J. Wienke | |
20 | 4 | J. Wienke | h1. Contents |
21 | 4 | J. Wienke | |
22 | 16 | J. Wienke | * [[Logging|Logging Adapter]] - Logging interface with support for different backends |
23 | 16 | J. Wienke | * [[Math|Math]] - Various base data structures and methods for common mathematical calculation in robotics |
24 | 16 | J. Wienke | * [[Misc|Miscellaneous]] - Various small helpers and utilities that do not fit in any other category |
25 | 16 | J. Wienke | * [[Subprocess|Subprocess]] - A python-inspired, platform-independent way to launch other processes |
26 | 16 | J. Wienke | * [[Threading|Threading]] - Different helpers for managing threaded applications, includes a task abstraction, synchronized data structures and thread pools |
27 | 16 | J. Wienke | * [[CMake|CMake]] - A collection of modules for using CMake, including find-modules for different 3rd-party libraries and applications |
28 | 16 | J. Wienke | |
29 | 6 | J. Wienke | h2. Logging Adapter |
30 | 1 | J. Wienke | |
31 | 16 | J. Wienke | Several different logging systems exist with different advantages and dependencies. E.g. log4cxx heavily relies on APR which is a huge dependency to build i.e. for embedded systems like Nao. To decouple libraries from concrete logging implementations and their dependencies, RSC contains a flexible adaption layer that can utilize different logging mechanisms through one interface. If e.g. log4cxx is available, a client using the RSC logging system can use log4cxx through the provided interfaces. If no versatile logging system is available, RSC falls back on a simple console logging mechanism without any dependencies. Hence, client code does not need to be recompiled for changing the logging system. |
32 | 6 | J. Wienke | |
33 | 6 | J. Wienke | Currently the linker call decides which logging mechanisms are available by linking their adapter shared libraries to the client. A plugin system is planned to remove the necessity of calling the linker. |
34 | 6 | J. Wienke | |
35 | 9 | J. Wienke | h2. Subprocess |
36 | 9 | J. Wienke | |
37 | 9 | J. Wienke | A high-level interface for starting executables and automatically terminating them based on the RAII-pattern. The operating system is abstracted. |
38 | 9 | J. Wienke | |
39 | 9 | J. Wienke | h2. Threading |
40 | 9 | J. Wienke | |
41 | 9 | J. Wienke | Support classes for threading tasks like synchronized queues, a task abstraction, or a thread pools for dispatching asynchronous events with ordering guarantees. |
42 | 9 | J. Wienke | |
43 | 9 | J. Wienke | h2. Misc |
44 | 9 | J. Wienke | |
45 | 9 | J. Wienke | Collection of various utility classes including: |
46 | 9 | J. Wienke | * *Registry*: Key-value based registry for system components. |
47 | 9 | J. Wienke | * *UUID*: Simplified wrapper for boost::uuid. |
48 | 9 | J. Wienke | * Various utility functions for string manipulation or boost::shared_ptr handling. |
49 | 9 | J. Wienke | |
50 | 4 | J. Wienke | h2. CMake Support Library |
51 | 4 | J. Wienke | |
52 | 1 | J. Wienke | RSC contains different CMake scripts and macros which are generally useful. These include: |
53 | 10 | J. Wienke | * Find macros for various software packages like spread, BoostUUID, Eigen2, Log4cxx |
54 | 2 | J. Wienke | * *EnableConverageReport*: Support for html code coverage reports on GCC using gcov and lcov. |
55 | 1 | J. Wienke | * *CheckInitMethod*: Checks which compiler-specific method can be used to execute before the main method begins. This is e.g. useful to install extensions |
56 | 1 | J. Wienke | * *InstallFilesRecursive*: A macro to install files while preserving their folder structure. The normal install macro of CMake copies all given files into a flat list at the target location. |
57 | 1 | J. Wienke | * *ParseArguments*: Helper to parse arguments to CMake macros and functions with UPPERCASE keywords to separate lists. |
58 | 1 | J. Wienke | |
59 | 5 | J. Wienke | All CMake files are installed to @$prefix/share/cmake/Modules@ and available in the repository at source:/trunk/rsc/cmake. |