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