CppMicroServices

C++ Micro Services: Build Instructions
Build Instructions

The C++ Micro Services library provides CMake build scripts which allow the generation of platform and IDE specific project files.

The library should compile on many different platforms. Below is a list of tested compiler/OS combinations:

  • GCC 4.5 (Ubuntu 11.04 and MacOS X 10.6)
  • GCC 4.7 (Ubuntu 12.10)
  • Visual Studio 2008, 2010, and 2012
  • Clang 3.0 (Ubuntu 12.10 and MacOS X 10.6)

Prerequisites

  • CMake 2.8 (Visual Studio 2010 and 2012 users should use the latest CMake version available)

Configuring the Build

When building the C++ Micro Services library, you have a few configuration options at hand.

General build options

  • CMAKE_INSTALL_PREFIX The installation path.
  • US_BUILD_SHARED_LIBS Specify if the library should be build shared or static. See Static Modules for detailed information about static CppMicroServices modules.
  • US_BUILD_TESTING Build unit tests and code snippets.
  • US_ENABLE_AUTOLOADING_SUPPORT Enable auto-loading of modules located in special sub-directories. See Auto Loading Modules for detailed information about this feature.
  • US_ENABLE_THREADING_SUPPORT Enable the use of synchronization primitives (atomics and pthread mutexes or Windows primitives) to make the API thread-safe. If your application is not multi-threaded, turn this option OFF to get maximum performance.
  • US_USE_C++11 (advanced) Enable the usage of C++11 constructs.
  • US_ENABLE_RESOURCE_COMPRESSION (advanced) Enable compression of embedded resources. See The Resources System for detailed information about the resource system.

Customizing naming conventions

  • US_NAMESPACE The default namespace is us but you may override this at will.
  • US_HEADER_PREFIX By default, all public headers have a "us" prefix. You may specify an arbitrary prefix to match your naming conventions.

The above options are mainly useful when embedding the C++ Micro Services source code in your own library and you want to make it look like native source code.