| Line 1: |
Line 1: |
| − | '''rostools''' is a set of programming tools written in Python, C++ and Java designed for aiding in writing software for [[ROS]]. Included are tools for dealing with [[metadata files]], and parsing [[.rly files|railway]] and [[.ttb files|timetable]] files. The source code is available on the [[ROS GitHub Organisation]] and the project can be contributed to by anyone. | + | '''railostools''' is a set of Application Programming Interfaces for [[Railway Operation Simulator]] with implementations written in Python, C++, Java and Rust. Features for each implementation vary, but include libraries for constructing and parsing [[metadata file|metadata files]], [[.rly file|railway]] and [[.ttb file|timetable]] files. The source code is available on the [[Developer GitHub Organisation|Railway-Op-Sim GitHub Organisation]] and the project can be contributed to by anyone. |
| | + | |
| | + | == Python == |
| | + | |
| | + | The Python module can be found within the <code>python</code> directory of the railostools repository. The module can be installed using <code>pip</code> referring to the repository as the source (replacing <code><release-tag></code> with the latest release [https://github.com/Railway-Op-Sim/railostools/releases/latest here]): |
| | + | |
| | + | <pre> |
| | + | $ pip install "git+https://github.com/Railway-Op-Sim/railostools.git#egg=<release-tag>&subdirectory=python" |
| | + | </pre> |
| | + | |
| | + | == C++ == |
| | + | |
| | + | The C++ library can be found within the <code>cpp</code> directory of the railostools repository. The framework requires a compiler which supports C++17 or greater, and has been tested on both GCC and Clang for Windows, macOS and Linux. It is recommended that the repository be added as a submodule in git to your project: |
| | + | |
| | + | <pre> |
| | + | $ mkdir external |
| | + | $ git submodule add https://github.com/Railway-Op-Sim/railostools.git external/railostools |
| | + | </pre> |
| | + | |
| | + | and the library be linked using CMake: |
| | + | <pre> |
| | + | cmake_minimum_required( VERSION 3.21 ) |
| | + | set( CMAKE_CXX_STANDARD 17 ) |
| | + | set( CMAKE_CXX_STANDARD_REQUIRED True ) |
| | + | set( RAILOSTOOLS railostools ) |
| | + | |
| | + | project( MyProject VERSION 0.1.0 LANGUAGES CXX ) |
| | + | |
| | + | # E.g. find all project source files (in 'src' directory with .cxx suffix) to compile code |
| | + | file( PROJECT_SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src*.cxx ) |
| | + | |
| | + | add_subdirectory( ${CMAKE_CURRENT_SOURCE_DIR}/external/railostools/cpp ) |
| | + | |
| | + | add_executable( ${PROJECT_NAME} ${PROJECT_SRC_FILES} ) |
| | + | target_link_library( ${PROJECT_NAME} PUBLIC ${RAILOSTOOLS} ) |
| | + | target_include_directories( ${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/external/railostools/cpp/include ) |
| | + | </pre> |
| | + | |
| | + | == External Links == |
| | + | |
| | + | [https://github.com/Railway-Op-Sim/railostools RailOSTools Repository] |
| | + | |
| | + | [[Category:External tools]] |