| Disk ARchive 2.8.1 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#include "integers.hpp"
33
34namespace libdar
35{
36
39
41
45
46 namespace compile_time
47 {
49 bool ea() noexcept;
50
52 bool largefile() noexcept;
53
55 bool nodump() noexcept;
56
58
61 bool special_alloc() noexcept;
62
64
66 U_I bits() noexcept;
67
69 bool thread_safe() noexcept;
70
72 bool libz() noexcept;
73
75 bool libbz2() noexcept;
76
78 bool liblzo() noexcept;
79
81 bool libxz() noexcept;
82
84 bool libzstd() noexcept;
85
87 bool liblz4() noexcept;
88
90 bool libgcrypt() noexcept;
91
93 bool libargon2() noexcept;
94
96 bool furtive_read() noexcept;
97
99 enum endian
100 {
101 big = 'B',
102 little = 'L',
103 error = 'E'
104 };
105
107 endian system_endian() noexcept;
108
110 bool posix_fadvise() noexcept;
111
113 bool fast_dir() noexcept;
114
116 bool FSA_linux_extX() noexcept;
117
119 bool FSA_birthtime() noexcept;
120
122 bool Linux_statx() noexcept;
123
125 bool microsecond_read() noexcept;
126
128 bool nanosecond_read() noexcept;
129
131 bool microsecond_write() noexcept;
132
134 bool nanosecond_write() noexcept;
135
137 bool symlink_restore_dates() noexcept;
138
140 bool public_key_cipher() noexcept;
141
143 bool libthreadar() noexcept;
144
146 std::string libthreadar_version() noexcept;
147
149 bool librsync() noexcept;
150
152 bool remote_repository() noexcept;
153
155 bool ftp_repository() noexcept;
156
158 bool sftp_repository() noexcept;
159
161 bool whirlpool_hash() noexcept;
162
164 std::string libcurl_version() noexcept;
165
167
170
171 U_I thread_stack_size() noexcept;
172
173 } // end of compile_time namespace
174
176
177} // end of libdar namespace
178
179#endif
integers.hpp
are defined here basic integer types that tend to be portable
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 SFTP and FTP repository are both available
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:100
libdar::compile_time::big
@ big
big endian
Definition compile_time_features.hpp:101
libdar::compile_time::error
@ error
neither big nor little endian! (libdar cannot run on such system)
Definition compile_time_features.hpp:103
libdar::compile_time::little
@ little
little endian
Definition compile_time_features.hpp:102
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::sftp_repository
bool sftp_repository() noexcept
returns whether FTP repository support is 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::ftp_repository
bool ftp_repository() noexcept
returns whether FTP repository support is available
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::whirlpool_hash
bool whirlpool_hash() noexcept
returns whether whirlpool hash algorithm is 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::thread_stack_size
U_I thread_stack_size() noexcept
return the thread stack size if configured from libdar else 0 for default config
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