2
0
mirror of https://github.com/boostorg/winapi.git synced 2026-01-19 17:02:09 +00:00

311 Commits

Author SHA1 Message Date
Andrey Semashev
094612ee33 Merge pull request #96 from Flamefire/test-link-update
Update Link to regression test matrix in README
boost-1.90.0.beta1 boost-1.90.0
2025-08-25 19:08:07 +03:00
Alexander Grund
be175c9ed7 Update Link to regression test matrix in README 2025-08-25 17:26:54 +02:00
Andrey Semashev
39abf0c64c Work around non-standard SRWLOCK and CONDITION_VARIABLE types on MinGW.
PSRWLOCK and PCONDITION_VARIABLE types are defined to PVOID instead of
pointers to forward-declared structs. Define internal typedefs and use
cast_ptr to automatically cast to the type used in Windows SDK.
2025-08-15 05:43:47 +03:00
Andrey Semashev
7e615ee5f9 Unconditionally declare InitializeCriticalSectionEx on legacy MinGW.
InitializeCriticalSectionEx declaration is missing in Windows SDK headers,
so we have to declare it even when BOOST_USE_WINDOWS_H is defined.
2025-08-15 05:43:41 +03:00
Andrey Semashev
1ba43277db Fix Boost branch setup when running CI on feature branches. 2025-08-15 05:21:49 +03:00
Andrey Semashev
f9b2ba82e5 Run AppVeyor CI on feature branches. 2025-08-15 05:17:13 +03:00
Andrey Semashev
bbd9bf6585 Added a workaround for CompareObjectHandles on older MinGW-w64.
CompareObjectHandles declaration is missing in MinGW-w64 headers before 9.0.0,
although library exports seem to be present since 6.0.0.
boost-1.89.0
2025-05-31 12:04:37 +03:00
Andrey Semashev
ea553ab4d2 Fixed leftover Signature type. boost-1.87.0.beta1 boost-1.88.0.beta1 boost-1.88.0 boost-1.87.0 2024-08-26 14:15:08 +03:00
Andrey Semashev
9576c5ba88 Explicitly specify the namespace to avoid ADL. 2024-08-26 14:02:06 +03:00
Andrey Semashev
7689026a7a Renamed template parameter to make it clear that a function ptr is required. 2024-08-26 13:59:45 +03:00
Alexander Grund
3ce8d53c33 Allow direct cast of get_proc_address result (#95)
GetProcAddress returns a pointer to some function. It can return
pointers to different functions, so it has to return something that is
suitable to store any pointer to function. Microsoft chose FARPROC,
which is int (WINAPI *)() on 32-bit Windows. The user is supposed to
know the signature of the function he requests and perform a cast
(which is a nop on this platform). The result is a pointer to function
with the required signature, which is bitwise equal to what
GetProcAddress returned. However, gcc >= 8 warns about that.

Add an overload with a template parameter to do the cast inside
the function and suppress the warning there.
2024-08-26 13:57:23 +03:00
René Ferdinand Rivera Morell
dfc89a660a Add support for modular build structure. (#94)
* Make the library modular usable.

* Switch to library requirements instead of source. As source puts extra source in install targets.

* Add requires-b2 check to top-level build file.

* Bump B2 require to 5.2

* Change all <source> references to <library>.

* Update copyright dates.

* Fix glob of tests.

* Move inter-lib dependencies to a project variable and into the build targets.
2024-08-19 01:33:17 +03:00
Andrey Semashev
c5fb9c86e8 Added BOOST_USE_WINAPI_VERSION CMake option.
This allows users to specify BOOST_USE_WINAPI_VERSION in the CMake command
line to select the Windows version for Boost to target.

Requested in https://github.com/boostorg/cmake/issues/63.
boost-1.86.0.beta1 boost-1.86.0
2024-05-28 20:07:40 +03:00
Andrey Semashev
39396bd782 Limit Cygwin and Cygwin64 on AppVeyor to Windows 8.1 APIs.
It appears that Cygwin and Cygwin64 installations on AppVeyor CI are
outdated and do not provide Windows 10 APIs. A more recent version
installed locally does support Windows 10 and passes tests.
boost-1.84.0 boost-1.85.0.beta1 boost-1.85.0 boost-1.84.0.beta1
2023-10-09 00:19:00 +03:00
Andrey Semashev
85d7889e9b Target Windows 10 by default and the latest Windows if 10 is not supported. 2023-10-08 20:28:42 +03:00
Andrey Semashev
e1b0c543f7 Limit CompareObjectHandles to App and System partitions. 2023-10-08 20:07:35 +03:00
Andrey Semashev
02b4161832 Switched from boost::core::is_same to boost::is_same. boost-1.83.0.beta1 boost-1.82.0 boost-1.83.0 boost-1.82.0.beta1 2022-12-22 19:02:09 +03:00
Andrey Semashev
7a37250e13 Switched various config testing to VS2022, keep a single VS2019 job in AppVeyor CI. boost-1.80.0.beta1 boost-1.81.0.beta1 boost-1.81.0 boost-1.80.0 2022-06-06 03:29:09 +03:00
Andrey Semashev
3fa8b0ace1 Updated comment regarding NTSTATUS definition. boost-1.79.0.beta1 boost-1.79.0 2022-02-13 22:33:14 +03:00
Andrey Semashev
b5e614126b Added cast to WORD of the MAKELANGID result.
This should silence -Wconversion warnings with gcc caused by integral
promotion that happend in the MAKELANGID macro implementation.

Also, simplified casts in our custom implementation of MAKELANGID_
function. Use C++ static_casts instead of C-style casts.

Closes https://github.com/boostorg/winapi/pull/88.
boost-1.78.0.beta1 boost-1.78.0
2021-10-03 22:19:07 +03:00
Andrey Semashev
bb33c6746e Updated link to AppVeyor badge. 2021-09-15 22:19:04 +03:00
Andrey Semashev
5592c511f9 Removed links to Travis CI and converted build statuses to a table. 2021-09-12 22:13:53 +03:00
Andrey Semashev
c0fbaeb752 Removed Travis CI config.
Travis CI no longer runs free jobs for open source projects, so we're
removing it. The essential testing is done on AppVeyor anyway.
2021-09-12 22:09:55 +03:00
Peter Dimov
10347a1acb Update CMakeLists.txt boost-1.77.0.beta1 boost-1.77.0 2021-06-10 00:40:48 +03:00
Andrey Semashev
97df13ac28 Include _mingw.h on MinGW and MinGW-w64.
This header is already included by Boost.Predef, but since we're
directly using macros defined in it, we better explicitly include
it ourselves and not rely on Boost.Predef implementation details.
2021-04-06 01:08:35 +03:00
Andrey Semashev
89e81b2c4c [skip ci] Merge pull request #86 from eldiener/develop
[skip ci] Add "cxxstd" json field
boost-1.76.0 boost-1.76.0.beta1
2021-01-20 11:37:29 +03:00
Edward Diener
cd88677b63 [skip ci] Add "cxxstd" json field. The "cxxstd" json field is being added to each Boost library's meta json information for libraries in order to specify the minumum C++ standard compilation level. The value of this field matches one of the values for 'cxxstd' in Boost.Build. The purpose of doing this is to provide information for the Boost website documentation for each library which will specify the minimum C++ standard compilation that an end-user must employ in order to use the particular library. This will aid end-users who want to know if they can successfully use a Boost library based on their C++ compiler's compilation level, without having to search the library's documentation to find this out. 2021-01-20 02:59:52 -05:00
Andrey Semashev
37607cc3d3 Added a test for wait_on_address.hpp. boost-1.75.0 boost-1.75.0.beta1 boost-1.74.0.beta1 boost-1.74.0 2020-06-07 20:45:53 +03:00
Andrey Semashev
a3d05c2cbe Removed the test for InitializeSecurityDescriptor ABI.
The function is now implemented with a wrapper function that casts its
security descriptor argument.
2020-06-07 17:31:06 +03:00
Andrey Semashev
74032f8a52 Added a workaround for a different PSECURITY_DESCRIPTOR on MinGW. 2020-06-07 15:20:38 +03:00
Andrey Semashev
b217a5193c Nonessential. 2020-06-03 21:56:57 +03:00
Andrey Semashev
e16ec9e2a0 Added a clang-cl AppVeyor CI job. 2020-06-03 01:12:54 +03:00
Andrey Semashev
b27674ae0e Extracted GetProcAddress to a separate header.
Also corrected header/footer inclusion in dll.hpp.
2020-05-17 18:13:51 +03:00
Andrey Semashev
1f1da66da5 Updated AppVeyor CI config to test on MSVC 14.2. 2020-05-17 17:51:24 +03:00
Andrey Semashev
04a4248051 Added wait_on_address.hpp implementing WaitOnAddress and friends. 2020-05-16 19:35:39 +03:00
Andrey Semashev
e16aa75582 Extracted wait-related constants to a separate header. 2020-05-16 18:23:18 +03:00
Andrey Semashev
dff942d1f7 Added header and footer headers to disable compiler warnings.
Closes https://github.com/boostorg/winapi/issues/78.
2020-05-02 19:44:01 +03:00
Andrey Semashev
9efa7cbd5c Merge pull request #71 from xentrax/develop
boostorg/winapi/issues/70 Support Windows CE 6.00, 7.00 and WM 6.x
2020-05-02 02:15:26 +03:00
Andrey Semashev
c3a925950c Updated test tools for compatibility with lightweight_test.hpp changes. boost-1.73.0 boost-1.73.0.beta1 2020-03-16 01:18:56 +03:00
Andrey Semashev
c523cc4b5d Removed winerror.h include.
This include was obsolete, error codes are defined in error_codes.hpp.

Closes https://github.com/boostorg/winapi/issues/81.
2019-12-22 19:45:56 +03:00
Andrey Semashev
e3ce72664a Merge pull request #80 from Kojoley/add-header-deprecation-warning
Add header deprecation warning
2019-11-07 17:24:40 +03:00
Nikita Kniazev
372e68cc5e Add header deprecation warning 2019-11-07 17:09:33 +03:00
Andrey Semashev
65b9c99a67 Add explicit type casts for arguments of Interlocked* intrinsics.
This allows to use any compatible types with INTERLOCKED_* macros, not just
the ones strictly matching the particular implementation of the intrinsics.

In particular, this fixes compilation for Cygwin64, which is an LP64 target,
meaning that long is 64-bit and _Interlocked* intrinsics use a different
integer type for its 32-bit integer arguments.

Additionally, enable use of intrin.h on Cygwin (32-bit).

The test has been updated to explicitly use 32-bit integer arguments.
boost-1.72.0.beta1 boost-1.72.0 boost-1.71.0.beta1 boost-1.71.0
2019-07-10 14:44:13 +03:00
Andrey Semashev
f2789c82a4 Added a basic test for interlocked.hpp. 2019-07-10 01:41:55 +03:00
Andrey Semashev
bb91190323 Disable _Interlocked*Pointer intrinsics on x86 for MSVC-12 and below.
There is a macro conflict for _InterlockedExchangePointer between intrin.h from
MSVC-12 and winnt.h from Windows SDK 8.1, which causes compilation failures.
2019-07-10 01:06:34 +03:00
Andrey Semashev
bfb9932296 Use interlocked intrinsics for pointers more universally on more recent MSVC.
_Interlocked*Pointer intrinsics are defined for all target architectures on
MSVC-12 and later. On MSVC-11 they are also defined for ARM.
2019-05-31 18:24:35 +03:00
Andrey Semashev
52b44afc06 Use _Interlocked*Pointer intrinsics on ARM64 targets.
Fixes https://github.com/boostorg/winapi/issues/76.
Closes https://github.com/boostorg/winapi/pull/77.

Also, use consistent call convention attribute across _Interlocked*
intrinsics when they are declared in the header.
2019-05-31 17:32:57 +03:00
Andrey Semashev
51c3244e02 Reverted CXX/CXXFLAGS cleanup, changed VS2013 images to VS2015.
This is another attempt to fix Appveyor CI bootstrap failures.
2019-04-14 18:32:36 +03:00
Andrey Semashev
97f5be1fad Reset CXX and CXXFLAGS before bootstrapping to avoid confusing bootstrap scripts. 2019-04-13 18:03:12 +03:00
Andrey Semashev
1c890b7c1a Enabled multiple git fetch jobs while executing depinst in CI. Increased the number of jobs to 8. boost-1.70.0.beta1 boost-1.70.0 2019-01-15 14:08:52 +03:00