diff options
author | David Robillard <d@drobilla.net> | 2024-12-10 21:35:13 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2024-12-11 00:22:10 -0500 |
commit | ba2c2a08973cb5eae1feabbb9431c897cded03f6 (patch) | |
tree | e593d0d2298ccc6fef89b624fca098765ac2d768 /src/zix_config.h | |
parent | 6102356198be362e78ebd8ea16dee30a7d370cf8 (diff) | |
download | zix-ba2c2a08973cb5eae1feabbb9431c897cded03f6.tar.gz zix-ba2c2a08973cb5eae1feabbb9431c897cded03f6.tar.bz2 zix-ba2c2a08973cb5eae1feabbb9431c897cded03f6.zip |
Add option to build for older Windows versions
Adds configuration checks for Windows API functions, and a win_ver
configuration option to change the targeted API version.
Diffstat (limited to 'src/zix_config.h')
-rw-r--r-- | src/zix_config.h | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/src/zix_config.h b/src/zix_config.h index 0aab586..6bbc92b 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 /* @@ -78,9 +78,16 @@ # endif # endif -// Windows: CreateSymbolicLink() +// Windows XP: CreateHardLink() +# ifndef HAVE_CREATEHARDLINK +# if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0501 +# define HAVE_CREATEHARDLINK 1 +# endif +# endif + +// Windows Vista: CreateSymbolicLink() # ifndef HAVE_CREATESYMBOLICLINK -# if defined(_MSC_VER) && _MSC_VER >= 1910 +# if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0600 && !defined(__MINGW32__) # define HAVE_CREATESYMBOLICLINK 1 # endif # endif @@ -99,6 +106,13 @@ # endif # endif +// Windows Vista: 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 +162,13 @@ # endif # endif +// Windows XP: VirtualLock +# ifndef HAVE_VIRTUALLOCK +# if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0501 +# define HAVE_VIRTUALLOCK 1 +# endif +# endif + #endif // !defined(ZIX_NO_DEFAULT_CONFIG) /* @@ -176,6 +197,12 @@ # define USE_COPY_FILE_RANGE 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 +221,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 +269,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 |