Difference between revisions of "Railostools"

From Railway Operation Simulator Wiki
Jump to navigation Jump to search
m
(Started C++ guide)
Line 1: Line 1:
 
'''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.
 
'''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.
 +
 +
== C++ ==
 +
 +
The C++ library can be found in 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>
  
 
[[Category:External tools]]
 
[[Category:External tools]]

Revision as of 09:45, 14 January 2023

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 files, railway and timetable files. The source code is available on the Railway-Op-Sim GitHub Organisation and the project can be contributed to by anyone.

C++

The C++ library can be found in the cpp 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:

$ mkdir external
$ git submodule add https://github.com/Railway-Op-Sim/railostools.git external/railostools

and the library be linked using CMake:

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 )