| Disk ARchive 2.7.18 Full featured and portable backup and archiving tool

Loading...
Searching...
No Matches
compile_time_features.hpp
Go to the documentation of this file.
1/*********************************************************************/
2// dar - disk archive - a backup/restoration program
3// Copyright (C) 2002-2025 Denis Corbin
4//
5// This program is free software; you can redistribute it and/or
6// modify it under the terms of the GNU General Public License
7// as published by the Free Software Foundation; either version 2
8// of the License, or (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with this program; if not, write to the Free Software
17// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18//
19// to contact the author, see the AUTHOR file
20/*********************************************************************/
21
25
26
27#ifndef COMPILE_TIME_FEATURES_HPP
28#define COMPILE_TIME_FEATURES_HPP
29
30#include "../my_config.h"
31
32 namespace libdar
33{
34
37
39
43
44 namespace compile_time
45 {
47 bool ea() noexcept;
48
50 bool largefile() noexcept;
51
53 bool nodump() noexcept;
54
56
59 bool special_alloc() noexcept;
60
62
64 U_I bits() noexcept;
65
67 bool thread_safe() noexcept;
68
70 bool libz() noexcept;
71
73 bool libbz2() noexcept;
74
76 bool liblzo() noexcept;
77
79 bool libxz() noexcept;
80
82 bool libzstd() noexcept;
83
85 bool liblz4() noexcept;
86
88 bool libgcrypt() noexcept;
89
91 bool libargon2() noexcept;
92
94 bool furtive_read() noexcept;
95
97 enum endian
98 {
99 big = 'B', //< big endian
100 little = 'L', //< little endian
101 error = 'E' //< neither big nor little endian! (libdar cannot run on such system)
102 };
103
105 endian system_endian() noexcept;
106
108 bool posix_fadvise() noexcept;
109
111 bool fast_dir() noexcept;
112
114 bool FSA_linux_extX() noexcept;
115
117 bool FSA_birthtime() noexcept;
118
120 bool Linux_statx() noexcept;
121
123 bool microsecond_read() noexcept;
124
126 bool nanosecond_read() noexcept;
127
129 bool microsecond_write() noexcept;
130
132 bool nanosecond_write() noexcept;
133
135 bool symlink_restore_dates() noexcept;
136
138 bool public_key_cipher() noexcept;
139
141 bool libthreadar() noexcept;
142
144 std::string libthreadar_version() noexcept;
145
147 bool librsync() noexcept;
148
150 bool remote_repository() noexcept;
151
153 std::string libcurl_version() noexcept;
154
155 } // end of compile_time namespace
156
158
159} // end of libdar namespace
160
161#endif
my_config.h
include macro defined by the configure script and some specific additional ones
libdar::compile_time::system_endian
endian system_endian() noexcept
returns the detected integer endian of the system
libdar::compile_time::FSA_linux_extX
bool FSA_linux_extX() noexcept
returns whether libdar has been built with support for linux ext2/3/4 FSA
libdar::compile_time::remote_repository
bool remote_repository() noexcept
returns whether remote repository feature is available (implemented using libcurl)
libdar::compile_time::nanosecond_read
bool nanosecond_read() noexcept
returns whether libdar is able to read timestamps at least at nanosecond accuracy
libdar::compile_time::libthreadar
bool libthreadar() noexcept
returns whether libthreadar linking will be done, allowing libdar to span several threads
libdar::compile_time::endian
endian
type used to return the endian nature of the current system
Definition compile_time_features.hpp:98
libdar::compile_time::libz
bool libz() noexcept
returns whether libdar is dependent on libz and if so has gzip compression/decompression available
libdar::compile_time::librsync
bool librsync() noexcept
returns whether delta compression is available and delta diff stuff with it
libdar::compile_time::Linux_statx
bool Linux_statx() noexcept
returns whether libdar has been built with support for Linux statx()
libdar::compile_time::libxz
bool libxz() noexcept
returns whether libdar is dependent on liblxz/liblzma and if so has xz compression/decompression avai...
libdar::compile_time::libcurl_version
std::string libcurl_version() noexcept
returns the libcurl version used or empty string if not available
libdar::compile_time::largefile
bool largefile() noexcept
returns whether largefile (>2GiB) support has been activated at compilation time
libdar::compile_time::symlink_restore_dates
bool symlink_restore_dates() noexcept
returns whether libdar is able to restore dates of symlinks
libdar::compile_time::libbz2
bool libbz2() noexcept
returns whether libdar is dependent on libbz2 and if so has bzip2 compression/decompression available
libdar::compile_time::liblzo
bool liblzo() noexcept
returns whether libdar is dependent on liblzo and if so has lzo compression/decompression available
libdar::compile_time::furtive_read
bool furtive_read() noexcept
returns whether libdar can support furtive read mode when run by privileged user
libdar::compile_time::libzstd
bool libzstd() noexcept
returns whether libdar is dependent on libzstd and if so has zstd compression/decompression available
libdar::compile_time::public_key_cipher
bool public_key_cipher() noexcept
returns whether public key cipher (relying on gpgme) are available
libdar::compile_time::libgcrypt
bool libgcrypt() noexcept
returns whether libdar is dependent on libgcrypt and if so has strong encryption and hashing features...
libdar::compile_time::microsecond_write
bool microsecond_write() noexcept
returns whether libdar is able to write timestamps at least at microsecond accuracy
libdar::compile_time::libargon2
bool libargon2() noexcept
returns whether libdar is dependent on libargon2 and if it has thus argon2 hash algorithm feature ava...
libdar::compile_time::bits
U_I bits() noexcept
returns the internal integer type used
libdar::compile_time::libthreadar_version
std::string libthreadar_version() noexcept
return libthreadar version or empty string libthreadar is not available
libdar::compile_time::nanosecond_write
bool nanosecond_write() noexcept
returns whether libdar is able to write timestamps at least at nanosecond accuracy
libdar::compile_time::FSA_birthtime
bool FSA_birthtime() noexcept
returns whether libdar has been built with support for HFS+ FSA
libdar::compile_time::special_alloc
bool special_alloc() noexcept
returns whether special allocation support has been activated at compilation time
libdar::compile_time::fast_dir
bool fast_dir() noexcept
returns whether libdar has been built with speed optimization for last directory
libdar::compile_time::liblz4
bool liblz4() noexcept
returns whether libdar is dependen in liblz4 and if so has lz4 compression/decompression available
libdar::compile_time::posix_fadvise
bool posix_fadvise() noexcept
returns true if libdar has support for posix_fadvise activated available
libdar::compile_time::thread_safe
bool thread_safe() noexcept
returns whether the current libdar is thread safe
libdar::compile_time::microsecond_read
bool microsecond_read() noexcept
returns whether libdar is able to read timestamps at least at microsecond accuracy
libdar::compile_time::ea
bool ea() noexcept
returns whether EA support has been activated at compilation time
libdar::compile_time::nodump
bool nodump() noexcept
returns whether nodump flag support has been activated at compilation time
libdar
libdar namespace encapsulate all libdar symbols
Definition archive.hpp:47