Menu

so5extra Obtaining and Using

Yauheni Akhotnikau

Obtaining And Using

The Old-School Way

Obtaining

so_5_extra can be obtained from source-code repository via Subversion. For example:

svn export https://svn.code.sf.net/p/sobjectizer/repo/tags/so_5_extra/1.0.0 so_5_extra-1.0.0

so_5_extra can also be downloaded from the corresponding Files section on SourceForge. There are two types of achives with so_5_extra:

  • archives with so_5_extra sources only (with names like so_5_extra-1.0.0.tar.xz);
  • archives with so_5_extra and all dependecies, like SObjectizer and Asio. These archives have names like so_5_extra-1.0.0-full.tar.xz).

If so_5_extra is got from repository or downloaded as archive without dependecies inside then obtaining of dependecies could be necessary. It can be done via mxxruexternals command:

svn export https://svn.code.sf.net/p/sobjectizer/repo/tags/so_5_extra/1.0.0 so_5_extra-1.0.0
cd so_5_extra-1.0.0
mxxruexternals

Note: mxxruexternals is a part of Mxx_ru gem. To use Mxx_ru it is necessary to install Ruby and then Mxx_ru gem (by gem install Mxx_ru).

Using

so_5_extra is a header-only library. There is no need to compile and link so_5_extra itself. Only INCLUDE path must be set appropriately.

Obtaining And Using Via vcpkg

Since v.1.2.1 so_5_extra is available via vcpkg library manager.

To install so_5_extra it is necessary to use vcpkg install command:

vcpkg install so5extra

Please note that so_5_extra is identified as so5extra in vcpkg repository.

To use so_5_extra it is necessary to add the following lines in your CMakeFiles.txt:

find_package(so5extra CONFIG REQUIRED)
find_package(sobjectizer CONFIG REQUIRED)

And then it is necessary to link your target against SObjectizer's libraries:

target_link_libraries(your_target sobjectizer::SharedLib)
target_link_libraries(your_target sobjectizer::so5extra)

For example: this is a simple CMakeFiles.txt file for so_5_extra's sample delivery_receipt:

find_package(so5extra CONFIG REQUIRED)
find_package(sobjectizer CONFIG REQUIRED)

set(SAMPLE sample.so_5_extra.delivery_receipt)
add_executable(${SAMPLE} main.cpp)
target_link_libraries(${SAMPLE} sobjectizer::SharedLib)
target_link_libraries(${SAMPLE} sobjectizer::so5extra)
install(TARGETS ${SAMPLE} DESTINATION bin)

Obtaining And Using Via Conan

Installing And Adding To conanfile.txt

Since Nov 2018 so_5_extra can be used via Conan dependency manager. To use so_5_extra it is necessary to do the following steps.

Add the corresponding remote to your conan:

conan remote add stiffstream https://api.bintray.com/conan/stiffstream/public

It can be also necessary to add public-conan remote:

conan remote add public-conan https://api.bintray.com/conan/bincrafters/public-conan

Add so_5_extra to conanfile.txt of your project:

[requires]
so5extra/1.2.1@stiffstream/testing

It also may be necessary to specify shared option for SObjectizer. For example, for build SObjectizer as a static library:

[options]
sobjectizer:shared=False

Install dependencies for your project:

conan install SOME_PATH --build=missing

Adding so_5_extra To Your CMakeLists.txt

Please note that so_5_extra and SObjectizer should be added to your CMakeLists.txt via find_package command:

...
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()

find_package(sobjectizer CONFIG REQUIRED)
find_package(so5extra CONFIG REQUIRED)
...
target_link_libraries(your_target sobjectizer::SharedLib) # Or so_5_extra::StaticLib
target_link_libraries(your_target sobjectizer::so5extra)

Building Samples And Tests

To build so_5_extra samples and tests it is necessary to use Ruby and Mxx_ru gem. For example:

svn export https://svn.code.sf.net/p/sobjectizer/repo/tags/so_5_extra/1.0.0 so_5_extra-1.0.0
cd so_5_extra-1.0.0
mxxruexternals
cd dev
ruby build.rb

All tests and samples will be built. If it is necessary to build only examples it can be done by:

svn export https://svn.code.sf.net/p/sobjectizer/repo/tags/so_5_extra/1.0.0 so_5_extra-1.0.0
cd so_5_extra-1.0.0
mxxruexternals
cd dev
ruby sample/so_5_extra/build_samples.rb

Building API Reference Manual

API Reference Manual can be build via doxygen. Just go into dev subdirectory where Doxygen file is located and run doxygen. The generated documentation in HTML format will be stored into doc/html subdir.


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.