- it is developed to support various ones; about incorporating <b>cds</b> library to your threading model see cds::threading.
-
- The main namespace for the library is \ref cds.
- To see the full list of container's class go to <a href="modules.html">modules</a> tab.
-
- \par How to build
-
- The <b>cds</b> is mostly header-only library. Only small part of library related to GC core functionality
- must be compiled. The test projects depends on the following static library from \p boost:
- - <tt>boost_thread</tt>
- - <tt>boost_date_time</tt>
-
- \par Windows build
-
- Prerequisites: for building <b>cds</b> library and test suite you need:
- - <a href="http://www.activestate.com/activeperl/downloads">perl</a> installed; \p PATH environment variable
- should contain full path to Perl binary. Perl is used to generate large dictionary for testing purpose;
- - <a href="http://www.boost.org/">boost library</a> 1.51 and above. You should create environment variable
- \p BOOST_PATH containing full path to \p boost root directory (for example, <tt>C:\\libs\\boost_1_47_0</tt>).
-
- Open solution file <tt>cds\projects\vcX\cds.sln</tt> where vcX - version of
- Microsoft Visual C++ you use: vc9 for MS VC 2008, vc10 for MS VC 2010 and so on. The solution
- contains <tt>cds</tt> project and several test projects. Just build the library using solution.
-
- <b>Warning</b>: the solution depends on \p BOOST_PATH environment variable that specifies full path
- to \p boost library root directory. The test projects search \p boost libraries in:
- - for 32bit: \$(BOOST_PATH)/stage/lib, \$(BOOST_PATH)/stage32/lib, and \$(BOOST_PATH)/bin.
- - for 64bit: \$(BOOST_PATH)/stage64/lib and \$(BOOST_PATH)/bin.
-
- \par *NIX build
-
- For Unix-like systems GCC and Clang compilers are supported.
- Use GCC 4.3 (or above) compiler or Clang 3.0 or above to build <b>cds</b> library. The distributive contains
- makefile and <tt>build.sh</tt> script in <tt>build</tt> directory.
- The <tt>build/sample</tt> directory contains sample scripts for different operating systems and
- processor architectures.
- The <tt>build.sh</tt> script supports the following options:
- - <tt>-c toolset</tt> - Toolset name, possible values: <tt>gcc</tt> (default), <tt>clang</tt>
- - <tt>-x compiler</tt> - C++ compiler name (e.g. g++, g++-4.5 and so on)
- - <tt>-p arch</tt> - processor architecture; possible values for arch are: x86, amd64 (x86_64), sparc, ia64
- - <tt>-o OStype</tt> - OS family; possible values for OStype are: linux, sunos (solaris), hpux
- - <tt>-D define</tt> additional defines
- - <tt>-b bits</tt> - bits to build, accepts '64', '32'
- - <tt>-l "options"</tt> - extra linker options (in quotes)
- - <tt>-z "options"</tt> - extra compiler options (in quotes)
- - <tt>--with-boost path</tt> - path to boost include
- - <tt>--debug-cxx-options "options"</tt> - extra compiler options for debug target
- - <tt>--debug-ld-options "options"</tt> - extra linker options for debug target
- - <tt>--release-cxx-options "options"</tt> - extra compiler options for release target
- - <tt>--release-ld-options "optons"</tt> - extra linker options for release target
- - <tt>--clean</tt> - clean all before building
- - <tt>--debug-test</tt> - make unit test in debug mode; by defalt release unit test generated
- - <tt>--amd64-use-128bit</tt> - compile with supporting 128bit (16byte) CAS on amd64 (for am64 only)
-
- <b>Important for GCC compiler</b>: all your projects that use <b>libcds</b> must be compiled with <b>-fno-strict-aliasing</b>
- compiler flag. Also, the compiler option <tt>-std=c++0x</tt> is very useful.