diff options
Diffstat (limited to 'src/boost/libs/winapi/tools')
-rwxr-xr-x | src/boost/libs/winapi/tools/gen_error_codes.pl | 62 | ||||
-rwxr-xr-x | src/boost/libs/winapi/tools/gen_test_error_codes_abi.pl | 57 |
2 files changed, 119 insertions, 0 deletions
diff --git a/src/boost/libs/winapi/tools/gen_error_codes.pl b/src/boost/libs/winapi/tools/gen_error_codes.pl new file mode 100755 index 00000000..964cb164 --- /dev/null +++ b/src/boost/libs/winapi/tools/gen_error_codes.pl @@ -0,0 +1,62 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; + +my $header = <<'END'; +/* + * Copyright 2016-2018 Andrey Semashev + * + * Distributed under the Boost Software License, Version 1.0. + * See http://www.boost.org/LICENSE_1_0.txt + */ + +#ifndef BOOST_WINAPI_ERROR_CODES_HPP_INCLUDED_ +#define BOOST_WINAPI_ERROR_CODES_HPP_INCLUDED_ + +#include <boost/winapi/basic_types.hpp> + +#ifdef BOOST_HAS_PRAGMA_ONCE +#pragma once +#endif + +namespace boost { +namespace winapi { + +END + +my $footer = <<'END'; + +} // namespace winapi +} // namespace boost + +#endif // BOOST_WINAPI_ERROR_CODES_HPP_INCLUDED_ +END + +print $header; + +while (<>) +{ + my $line = $_; + chomp($line); + if ($line =~ /^\s*#\s*define\s+([a-zA-Z_\d]+)\s+(0[xX][[:xdigit:]]+|\d+|[a-zA-Z_\d]+)[lLuU]*\s*(\/\/.*|\/\*.*)?$/) + { + # We define some of the constants in other headers + if ($1 ne "FORCEINLINE" && $1 ne "WAIT_TIMEOUT") + { + my $value = $2; + print "BOOST_CONSTEXPR_OR_CONST DWORD_ ", $1 , "_ = "; + if ($value =~ /0[xX][[:xdigit:]]+|\d+/) + { + print $value; + } + else + { + print $value, "_"; + } + print ";\n"; + } + } +} + +print $footer; diff --git a/src/boost/libs/winapi/tools/gen_test_error_codes_abi.pl b/src/boost/libs/winapi/tools/gen_test_error_codes_abi.pl new file mode 100755 index 00000000..a7a1f634 --- /dev/null +++ b/src/boost/libs/winapi/tools/gen_test_error_codes_abi.pl @@ -0,0 +1,57 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; + +my $header = <<'END'; +/* + * Copyright Andrey Semashev 2018. + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at + * http://www.boost.org/LICENSE_1_0.txt) + */ +/*! + * \file error_codes_abi.cpp + * \author Andrey Semashev + * \date 09.03.2018 + * + * \brief This file contains ABI test for error_codes.hpp + */ + +#include <boost/winapi/error_codes.hpp> +#include <windows.h> +#include <winerror.h> +#include <boost/predef/platform/windows_uwp.h> +#include "abi_test_tools.hpp" + +int main() +{ +END + +my $footer = <<'END'; + + return boost::report_errors(); +} +END + +print $header; + +while (<>) +{ + my $line = $_; + chomp($line); + if ($line =~ /^\s*BOOST_CONSTEXPR_OR_CONST\s+DWORD_\s+([a-zA-Z_\d]+)_\s+.*$/) + { + print "#if "; + # Some constants have different values in different Windows SDKs + if ($1 eq "ERROR_IPSEC_IKE_NEG_STATUS_END") + { + print "BOOST_PLAT_WINDOWS_SDK_VERSION >= BOOST_WINAPI_WINDOWS_SDK_6_0 && "; + } + print "defined(", $1 , ")\n"; + print " BOOST_WINAPI_TEST_CONSTANT(", $1 , ");\n"; + print "#endif\n"; + } +} + +print $footer; |