ALib C++ Framework
by
Library Version: 2605 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
system.prepro.hpp
Go to the documentation of this file.
1//==================================================================================================
2/// \file
3/// This header-file is part of the \aliblong.
4///
5/// Copyright 2013-2026 A-Worx GmbH, Germany.
6/// Published under #"mainpage_license".
7//==================================================================================================
8#ifndef HPP_ALIB_SYSTEM_PP
9#define HPP_ALIB_SYSTEM_PP
10#pragma once
11
12#ifndef HPP_ALIB
13# include "alib/alib.prepro.hpp"
14#endif
15#if ALIB_SYSTEM
16
17//##################################################################################################
18// Macro introduced by module ALib.System
19//##################################################################################################
20// Configuration Macro ALIB_PATH_CHARACTERS_WIDE and macro A_PATH for literals
21#if !defined(ALIB_PATH_CHARACTERS_WIDE)
22# if defined(_WIN32)
23# define ALIB_PATH_CHARACTERS_WIDE 1
24# else
25# define ALIB_PATH_CHARACTERS_WIDE 0
26# endif
27#endif
28
29#if ALIB_PATH_CHARACTERS_WIDE
30# define A_PATH(literal) L##literal
31#else
32# define A_PATH(literal) literal
33#endif
34
35#if ALIB_CHARACTERS_WIDE == ALIB_PATH_CHARACTERS_WIDE
36# define ALIB_PATH_TO_STRING( src,dest,bufSize ) decltype(src)& dest(src);
37# define ALIB_PATH_TO_STRING_ARG( src,bufSize ) src;
38# define ALIB_STRING_TO_PATH( src,dest,bufSize ) decltype(src)& dest(src);
39# define ALIB_STRING_TO_PATH_ARG( src,bufSize ) src;
40#else
41# define ALIB_PATH_TO_STRING( src,dest,bufSize ) alib::strings::TLocalString<alib::characters::character ,bufSize> dest(src);
42# define ALIB_PATH_TO_STRING_ARG( src,bufSize ) alib::strings::TLocalString<alib::characters::character ,bufSize>(src);
43# define ALIB_STRING_TO_PATH( src,dest,bufSize ) alib::strings::TLocalString<alib::PathCharType ,bufSize> dest(src);
44# define ALIB_STRING_TO_PATH_ARG( src,bufSize ) alib::strings::TLocalString<alib::PathCharType ,bufSize>(src);
45#endif
46
47#if !ALIB_PATH_CHARACTERS_WIDE
48# define ALIB_PATH_TO_NARROW( src,dest,bufSize ) decltype(src)& dest(src);
49# define ALIB_PATH_TO_NARROW_ARG( src,bufSize ) src;
50#else
51# define ALIB_PATH_TO_NARROW( src,dest,bufSize ) alib::strings::TLocalString<alib::characters::nchar, bufSize> dest(src);
52# define ALIB_PATH_TO_NARROW_ARG( src,bufSize ) alib::strings::TLocalString<alib::characters::nchar, bufSize>(src);
53#endif
54
55// Configuration Macro ALIB_SYSTEM_FILE_STATUS_IMPL
56#if !defined(ALIB_SYSTEM_FORCE_STD_FILE_STATUS)
57# define ALIB_SYSTEM_FORCE_STD_FILE_STATUS 0
58#endif
59
60#if defined(ALIB_SYSTEM_FILE_STATUS_IMPL)
61# error "Configuration Macro ALIB_SYSTEM_FILE_STATUS_IMPL must not be set from outside! Use ALIB_SYSTEM_FORCE_STD_FILE_STATUS."
62#endif
63
64#define ALIB_SYSTEM_FILE_STD_STATUS 1
65#define ALIB_SYSTEM_FILE_POSIX_STATUS 2
66
67#if ( ( defined(__GLIBCXX__) && !defined(__MINGW32__) ) \
68 || defined(__APPLE__) \
69 || defined(_LIBCPP_VERSION) \
70 || defined(__ANDROID_NDK__) ) \
71 && !ALIB_SYSTEM_FORCE_STD_FILE_STATUS
72# define ALIB_SYSTEM_FILE_STATUS_IMPL ALIB_SYSTEM_FILE_POSIX_STATUS
73#else
74# define ALIB_SYSTEM_FILE_STATUS_IMPL ALIB_SYSTEM_FILE_STD_STATUS
75#endif
76
77
78
79
80
81#endif
82#endif // HPP_ALIB_SYSTEM_PP