Commit Graph

265 Commits

Author SHA1 Message Date
Andrey Semashev
61fbc6256c Fixed dbghelp_abi test on non-desktop targets. 2018-03-10 23:17:42 +03:00
Andrey Semashev
042357328d Disabled single-threaded and release builds. Enabled 64-bit builds. 2018-03-10 23:04:01 +03:00
Andrey Semashev
c6edc691a3 Fixed crypt_abi test on 32-bit target platform. 2018-03-10 22:55:10 +03:00
Andrey Semashev
c93cdc6943 Added more tests to verify ABI compatibility of Boost.WinAPI with WinSDK.
This new set of tests verify sizes and binary layouts of types, constant
values and signatures of some of the Windows functions.

Additionally, this commit changes how tests are run. On platforms other
than Windows and Cygwin, the tests are disabled from building instead of
making them a no-op. This allows to simplify the tests slightly and reduce
the code duplication.
2018-03-10 21:03:20 +03:00
Andrey Semashev
fcd61f3b2e Fixed bugs according to tests. 2018-03-10 21:02:48 +03:00
Andrey Semashev
3a249ca7c6 Fixed MSVC-14.1 compilation.
The compiler doesn't consider INVALID_HANDLE_VALUE initializer as a
compile-time constant expression.
2018-03-09 03:11:42 +03:00
Andrey Semashev
c4ebb6d9d0 Improve compatibility with Cygwin 64.
The compiler on Cygwin 64 does not define _WIN64. Instead, the macro is
defined in the private header. Without the macro we fail to detect 64-bit
Windows target and define basic types incorrectly. Include the private
header for now; we may switch to our private macro for this purpose
eventually.

Also avoid using boost/cstdint.hpp to define basic integer types as in
case of Cygwin 64, an LP64 platform, uint64_t and ULONGLONG are different
types.
2018-03-09 02:47:24 +03:00
Andrey Semashev
4678e497f4 Converted global constants to constexpr. 2018-03-09 01:00:31 +03:00
Andrey Semashev
2490b195ad Updated for compatibility with Cygwin 64.
Cygwin 64 implements LP64 model, meaning that `long` is 64-bit. Also,
clang emits warnings about __stdcall being ignored on targets other than
32-bit x86, so don't use it.

As part of this commit, convert Boost.WinAPI declarations to its local
calling convention macros equivalent to WINAPI and NTAPI and avoid
defining those macros when possible.
2018-03-09 00:25:02 +03:00
Andrey Semashev
c151d800a8 Added Cygwin 64 Appveyor build job. 2018-03-08 21:40:46 +03:00
Andrey Semashev
4835485a5a Changed the default target to Windows 7.
For MSVC-9 though the default is still Windows Vista as the Windows SDK used
with that compiler does not support Windows 7 definitions.

Also added a define for NTDDI version of the latest update to Windows 10. This
latest version is used by default when the user selects Windows 10 target.
2018-03-07 15:11:00 +03:00
Andrey Semashev
f004b4753d Fixed the SYSTEM_INFO definition to allow for the Windows SDK syntax.
The wProcessorArchitecture member of the SYSTEM_INFO struct was previously
inaccessible due to incorrect use of nameless unions/structs. This commit
fixes that to that the member should now be directly accessible as a
member of SYSTEM_INFO.

This commit also marks the nameless structs/unions with the __extension__
attribute to hopefully avoid gcc warnings about using this non-standard
feature.
2017-11-27 23:53:47 +03:00
Andrey Semashev
7a3ebe07be Changed the legacy namespace declaration method.
MSVC-14.1 emits an error for the namespace alias because the same-named
symbol is visible from the point of the alias declaration. Instead, define
a new winapi namespace and import the boost::winapi namespace contents
into it.
2017-10-24 22:51:22 +03:00
Andrey Semashev
3c964a1ef3 Fixed wt_set_max_threadpool_threads compilation on MSVC-14.0. 2017-10-19 03:22:19 +03:00
Andrey Semashev
59cdbedd30 Renamed some leftover macros to have prefix BOOST_WINAPI. 2017-10-19 02:40:01 +03:00
Andrey Semashev
acaaf4501c Added docs for BOOST_USE_NTDDI_VERSION and BOOST_USE_WINAPI_FAMILY. 2017-10-19 02:30:05 +03:00
Andrey Semashev
6b67a9c5cf Moved library headers and symbols to the boost level directory and namespace.
Despite that the library now appears at the top level in the filesystem and
namespace, it is still not intended to be used by Boost users - the library
is purposed as an internal tool for Boost needs.

The old headers are still present and define the old namespace as an alias
to the new namespace. Thus backward compatibility is preserved. These headers
will be removed as soon as all dependent libraries are updated.

While at it, also made some nonessential cleanup in headers.
2017-10-19 01:07:51 +03:00
Andrey Semashev
a9abc7668a Fixed incorrect preprocessor directive. 2017-10-08 18:09:45 +03:00
Andrey Semashev
db74f2753a Fixed NTSTATUS_ definition when BOOST_USE_WINDOWS_H is defined. 2017-10-07 21:13:56 +03:00
Andrey Semashev
d5adfec9d1 Formatting and other nonessential changes. 2017-10-07 20:58:28 +03:00
Andrey Semashev
b5bbd3a997 Merge remote-tracking branch 'jeking3/add-bcrypt-support' into develop 2017-10-07 20:38:00 +03:00
Andrey Semashev
d5f9d9d436 Updated partition macro. 2017-10-07 20:21:28 +03:00
Andrey Semashev
8091170850 Ported the rest of the headers to partition macros.
Also, enabled all API partitions by default on Windows SDKs without
support for API families.
2017-10-07 19:54:16 +03:00
James E. King, III
ac43c2c0fd add bcrypt support for RNG
This fixes #47
2017-10-07 12:32:18 -04:00
Andrey Semashev
4e089d4bbb Corrected a typo in the comment. 2017-10-07 14:37:12 +03:00
Andrey Semashev
b098dff4b6 Merge pull request #57 from jeking3/uwp
Add support for Windows Store (UWP) development
2017-10-07 14:30:42 +03:00
James E. King, III
33bd73b769 Add support for Windows Store (UWP) development, i.e.
WINAPI_FAMILY=WINAPI_FAMILY_PC_APP

This fixes #53
2017-10-03 23:37:30 -04:00
Andrey Semashev
af706c3b67 Merge branch 'develop' 2017-09-25 00:19:37 +03:00
Andrey Semashev
9d405ef127 Test commit to trigger AppVeyor. 2017-09-24 21:30:47 +03:00
Andrey Semashev
9df54544b9 Test commit to trigger AppVeyor. 2017-09-24 21:29:17 +03:00
Andrey Semashev
799be2a866 Removed the special code for Windows CE 6.0.
Reportedly, that code branch was not working an caused linking errors. As
reported in https://svn.boost.org/trac10/ticket/5431, Windows CE SDK still
provides Interlocked function definitions, but with slightly different
signatures. This PR keeps a single code branch for Windows CE that matches
the declarations described in the ticket. Untested.

This change is based on https://github.com/boostorg/winapi/pull/58
by James E. King, III <jking@apache.org>.

Fixes https://svn.boost.org/trac10/ticket/5431.
2017-09-24 02:36:37 +03:00
Andrey Semashev
d687b7c837 Fixed GetSystemTimeAsFileTime emulation for Windows CE.
This change originated from https://github.com/boostorg/winapi/pull/58
by James E. King, III <jking@apache.org>.
2017-09-24 02:36:37 +03:00
Andrey Semashev
f6369f95c3 Added support for specifying NTDDI version.
This change offers more control over the target Windows version. By
defining BOOST_USE_NTDDI_VERSION the user is able to specify the Windows
version down to the particular Service Pack. By default
BOOST_USE_NTDDI_VERSION will be deduced from either NTDDI_VERSION or
BOOST_USE_WINAPI_VERSION (which, in turn can be deduced from other
macros). In the latter case the macro will default to the latest known
Service Pack shipped for the given Windows version.

In addition to more control on the user's side this change also allows to
define APIs that first appeared in a Service Pack as opposed to RTM. This
allowed to fix compilation of RtlCaptureStackBackTrace.

Also updated the workaround for CryptReleaseContext since Windows SDK 10.0
no longer requires it.
2017-09-24 02:36:37 +03:00
Andrey Semashev
fac7ef4518 Deleted the previously deprecated headers.
Fixes https://github.com/boostorg/winapi/issues/54.
2017-09-24 02:36:37 +03:00
Andrey Semashev
1c2e1c1c2b Jobs API is only available since Windows 2000.
This change originated from https://github.com/boostorg/winapi/pull/56
by James E. King, III <jking@apache.org>.

Fixes https://github.com/boostorg/winapi/issues/50.
2017-09-24 02:36:37 +03:00
Andrey Semashev
4d7c2f70b9 Updated links to the AppVeyor badges. 2017-09-24 02:36:37 +03:00
Andrey Semashev
e9a3073f22 Use BOOST_FORCEINLINE for function wrappers. 2017-09-24 02:36:37 +03:00
Andrey Semashev
4956f78177 Added availability conditions of some of the constants.
This change originated from https://github.com/boostorg/winapi/pull/56
by James E. King, III <jking@apache.org>.
2017-09-24 02:36:37 +03:00
Andrey Semashev
516452e210 Fixed CompareObjectHandles not being defined extern C.
This change originated from https://github.com/boostorg/winapi/pull/56
by James E. King, III <jking@apache.org>.

Fixes https://github.com/boostorg/winapi/issues/52.
2017-09-24 02:36:06 +03:00
Andrey Semashev
ed10dcd02c Default to the latest Service Pack of the selected Windows version. 2017-09-24 02:24:20 +03:00
Andrey Semashev
7da1309feb Use NTDDI_VERSION to enable RtlCaptureStackBackTrace only since WinXP SP1.
This change was made in response to https://github.com/boostorg/winapi/pull/56
by James E. King, III <jking@apache.org>.

Relates to https://github.com/boostorg/winapi/issues/50.
2017-09-24 02:21:47 +03:00
Andrey Semashev
dac59d7fbd Adjusted the order of comments and build jobs for better readability in the test results. 2017-09-24 02:21:32 +03:00
Andrey Semashev
4933184076 Added printing WINAPI_FAMILY. 2017-09-24 02:21:32 +03:00
Andrey Semashev
ff9e13706f Added build status badges. 2017-09-24 02:21:32 +03:00
Andrey Semashev
e8fe17a14a Added more comment tags to the build jobs. 2017-09-24 02:21:32 +03:00
James E. King, III
c34fd4211b add appveyor and travis ci 2017-09-24 02:20:49 +03:00
Andrey Semashev
8c5e9211bd Added WaitForMultipleObjectsEx and WaitForMultipleObjectsEx.
The new functions are needed for Boost.Thread.
2017-08-31 13:51:59 +03:00
Andrey Semashev
3785dcf5ce Revert "Revert "Use BOOST_MAY_ALIAS from Boost.Config.""
This reverts commit 54c4cfc30f.
2017-08-26 15:13:39 +03:00
Andrey Semashev
54c4cfc30f Revert "Use BOOST_MAY_ALIAS from Boost.Config."
This reverts commit 747442645d.

This is temporary until BOOST_MAY_ALIAS in Boost.Config is merged to master.
2017-07-30 15:42:54 +03:00
Andrey Semashev
665d17197d Merge pull request #43 from danieljames/fix-doc-build
Remove duplicate boostdoc target
2017-07-30 15:41:26 +03:00