1// -*- mode: c++ -*-
2/***************************************************************************
3 *  include/stxxl/bits/config.h.in
4 *
5 *  Template file processed by cmake to set all define switches for this build
6 *  according to the cmake build options.
7 *
8 *  Part of the STXXL. See http://stxxl.sourceforge.net
9 *
10 *  Copyright (C) 2012-2013 Timo Bingmann <tb@panthema.net>
11 *
12 *  Distributed under the Boost Software License, Version 1.0.
13 *  (See accompanying file LICENSE_1_0.txt or copy at
14 *  http://www.boost.org/LICENSE_1_0.txt)
15 **************************************************************************/
16
17#ifndef STXXL_CONFIG_HEADER
18#define STXXL_CONFIG_HEADER
19
20// the STXXL library version variables
21#define STXXL_VERSION_MAJOR ${STXXL_VERSION_MAJOR}
22#define STXXL_VERSION_MINOR ${STXXL_VERSION_MINOR}
23#define STXXL_VERSION_PATCH ${STXXL_VERSION_PATCH}
24#define STXXL_VERSION_STRING "${STXXL_VERSION_STRING}"
25#define STXXL_VERSION_PHASE "${STXXL_VERSION_PHASE}"
26
27// if this is a git repository, add the refspec and commit sha
28#cmakedefine STXXL_VERSION_GIT_REFSPEC "${STXXL_VERSION_GIT_REFSPEC}"
29#cmakedefine STXXL_VERSION_GIT_SHA1 "${STXXL_VERSION_GIT_SHA1}"
30
31#cmakedefine STXXL_DIRECT_IO_OFF ${STXXL_DIRECT_IO_OFF}
32// default: 0/1 (platform dependent)
33// cmake:   detection of platform and flag
34// effect:  disables use of O_DIRECT flag on unsupported platforms
35
36#cmakedefine STXXL_HAVE_MMAP_FILE ${STXXL_HAVE_MMAP_FILE}
37// default: 0/1 (platform dependent)
38// used in: io/mmap_file.h/cpp
39// effect:  enables/disables memory mapped file implementation
40
41#cmakedefine STXXL_HAVE_LINUXAIO_FILE ${STXXL_HAVE_LINUXAIO_FILE}
42// default: 0/1 (platform dependent)
43// used in: io/linuxaio_file.h/cpp
44// effect:  enables/disables Linux AIO file implementation
45
46#cmakedefine STXXL_POSIX_THREADS ${STXXL_POSIX_THREADS}
47// default: off
48// cmake:   detection of pthreads by cmake
49// effect:  uses POSIX thread and mutexes on linux
50
51#cmakedefine STXXL_STD_THREADS ${STXXL_STD_THREADS}
52// default: off
53// cmake:   detection of <thread> and <mutex>
54// effect:  uses std thread and mutex on windows or (forced on linux)
55
56#cmakedefine STXXL_WINDOWS ${STXXL_WINDOWS}
57// default: off
58// cmake:   detection of ms windows platform (32- or 64-bit)
59// effect:  enables windows-specific api calls (mingw or msvc)
60
61#cmakedefine STXXL_MSVC ${STXXL_MSVC}
62// default: off
63// cmake:   detection of ms visual c++ via CMake (contains version number)
64// effect:  enables msvc-specific headers and macros
65
66#cmakedefine STXXL_HAVE_CXX11_RANGE_FOR_LOOP ${STXXL_HAVE_CXX11_RANGE_FOR_LOOP}
67// default: off
68// run-time: detection C++11 support for "for (auto i : obj) { }"
69// effect:  enables some C++11 construct (currently only allowed in examples)
70
71#cmakedefine STXXL_HAVE_SYNC_ADD_AND_FETCH ${STXXL_HAVE_SYNC_ADD_AND_FETCH}
72// default: off
73// cmake:   detection of __sync_add_and_fetch() intrinsic
74// effect:  enables use of atomics in counting_ptr
75
76#cmakedefine STXXL_PARALLEL_MODE_EXPLICIT ${STXXL_PARALLEL_MODE_EXPLICIT}
77// default: off
78// cmake:   -DUSE_GNU_PARALLEL=ON
79// effect:  explicitly enables use of __gnu_parallel algorithms
80
81#cmakedefine STXXL_BOOST_CONFIG ${STXXL_BOOST_CONFIG}
82#cmakedefine STXXL_BOOST_FILESYSTEM ${STXXL_BOOST_FILESYSTEM}
83#cmakedefine STXXL_BOOST_RANDOM ${STXXL_BOOST_RANDOM}
84#cmakedefine STXXL_BOOST_THREADS ${STXXL_BOOST_THREADS}
85#cmakedefine STXXL_BOOST_TIMESTAMP ${STXXL_BOOST_TIMESTAMP}
86// default: off
87// cmake:   -DUSE_BOOST=ON
88// effect:  enables use of boost libraries in different parts of STXXL.
89
90#if STXXL_BOOST_CONFIG
91  #include <boost/config.hpp>
92#endif
93
94#cmakedefine STXXL_STD_RANDOM ${STXXL_STD_RANDOM}
95// default: off
96// cmake:   detection of <random>
97// effect:  uses std random generator on windows or (forced on linux)
98
99#cmakedefine STXXL_HAVE_MALLINFO_PROTO ${STXXL_HAVE_MALLINFO_PROTO}
100// default: off
101// cmake:   detection of mallinfo() function in <malloc.h>
102// effect:  used by stxxl_tool/mallinfo for malloc stats
103
104#cmakedefine STXXL_HAVE_MLOCK_PROTO ${STXXL_HAVE_MLOCK_PROTO}
105// default: off
106// cmake:   detection of mlock() function in <sys/mman.h>
107// effect:  used by stxxl_tool/mlock for locking physical pages
108
109#cmakedefine STXXL_WITH_VALGRIND ${STXXL_WITH_VALGRIND}
110// default: off
111// cmake:   option USE_VALGRIND=ON
112// effect:  run all tests with valgrind and pre-initialize some memory buffers
113
114#endif // !STXXL_CONFIG_HEADER
115