diff options
Diffstat (limited to 'src/zix_config.h')
-rw-r--r-- | src/zix_config.h | 68 |
1 files changed, 64 insertions, 4 deletions
diff --git a/src/zix_config.h b/src/zix_config.h index 0aab586..460b712 100644 --- a/src/zix_config.h +++ b/src/zix_config.h @@ -1,4 +1,4 @@ -// Copyright 2021-2023 David Robillard <d@drobilla.net> +// Copyright 2021-2024 David Robillard <d@drobilla.net> // SPDX-License-Identifier: ISC /* @@ -55,6 +55,13 @@ # define ZIX_POSIX_VERSION 0 # endif +// Define ZIX_WINAPI_UWP to 1 (if this is a sandboxed UWP app) or 0 +# if defined(WINAPI_FAMILY) && WINAPI_FAMILY < 10 +# define ZIX_WINAPI_UWP 1 +# else +# define ZIX_WINAPI_UWP 0 +# endif + // POSIX.1-2001: clock_gettime() # ifndef HAVE_CLOCK_GETTIME # if ZIX_POSIX_VERSION >= 200112L @@ -78,9 +85,24 @@ # endif # endif -// Windows: CreateSymbolicLink() +// Windows 8 (Desktop, UWP): CreateFile2() +# ifndef HAVE_CREATEFILE2 +# if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0602 && !defined(__MINGW32__) +# define HAVE_CREATEFILE2 1 +# endif +# endif + +// Windows XP (Desktop): CreateHardLink() +# ifndef HAVE_CREATEHARDLINK +# if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0501 && !ZIX_WINAPI_UWP +# define HAVE_CREATEHARDLINK 1 +# endif +# endif + +// Windows Vista (Desktop): CreateSymbolicLink() # ifndef HAVE_CREATESYMBOLICLINK -# if defined(_MSC_VER) && _MSC_VER >= 1910 +# if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0600 && \ + !defined(__MINGW32__) && !ZIX_WINAPI_UWP # define HAVE_CREATESYMBOLICLINK 1 # endif # endif @@ -94,11 +116,18 @@ // Classic UNIX: flock() # ifndef HAVE_FLOCK -# if defined(__APPLE__) || defined(__unix__) +# if (defined(__APPLE__) || defined(__unix__)) && !defined(__EMSCRIPTEN__) # define HAVE_FLOCK 1 # endif # endif +// Windows Vista (Desktop, UWP): GetFinalPathNameByHandle() +# ifndef HAVE_GETFINALPATHNAMEBYHANDLE +# if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0600 +# define HAVE_GETFINALPATHNAMEBYHANDLE 1 +# endif +# endif + // POSIX.1-2001: mlock() # ifndef HAVE_MLOCK # if ZIX_POSIX_VERSION >= 200112L @@ -148,6 +177,13 @@ # endif # endif +// Windows XP (Desktop): VirtualLock +# ifndef HAVE_VIRTUALLOCK +# if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0501 && !ZIX_WINAPI_UWP +# define HAVE_VIRTUALLOCK 1 +# endif +# endif + #endif // !defined(ZIX_NO_DEFAULT_CONFIG) /* @@ -176,6 +212,18 @@ # define USE_COPY_FILE_RANGE 0 #endif +#if defined(HAVE_CREATEFILE2) && HAVE_CREATEFILE2 +# define USE_CREATEFILE2 1 +#else +# define USE_CREATEFILE2 0 +#endif + +#if defined(HAVE_CREATEHARDLINK) && HAVE_CREATEHARDLINK +# define USE_CREATEHARDLINK 1 +#else +# define USE_CREATEHARDLINK 0 +#endif + #if defined(HAVE_CREATESYMBOLICLINK) && HAVE_CREATESYMBOLICLINK # define USE_CREATESYMBOLICLINK 1 #else @@ -194,6 +242,12 @@ # define USE_FLOCK 0 #endif +#if defined(HAVE_GETFINALPATHNAMEBYHANDLE) && HAVE_GETFINALPATHNAMEBYHANDLE +# define USE_GETFINALPATHNAMEBYHANDLE 1 +#else +# define USE_GETFINALPATHNAMEBYHANDLE 0 +#endif + #if defined(HAVE_MLOCK) && HAVE_MLOCK # define USE_MLOCK 1 #else @@ -236,4 +290,10 @@ # define USE_SYSCONF 0 #endif +#if defined(HAVE_VIRTUALLOCK) && HAVE_VIRTUALLOCK +# define USE_VIRTUALLOCK 1 +#else +# define USE_VIRTUALLOCK 0 +#endif + #endif // ZIX_CONFIG_H |