summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/winapi/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/winapi/tools')
-rwxr-xr-xsrc/boost/libs/winapi/tools/gen_error_codes.pl62
-rwxr-xr-xsrc/boost/libs/winapi/tools/gen_test_error_codes_abi.pl57
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;