| //! Provides the `link!` macro used by the generated windows bindings. | ||
| //! | ||
| //! This is a simple wrapper around an `extern` block with a `#[link]` attribute. | ||
| //! It's very roughly equivalent to the windows-targets crate. | ||
| macro_rules! link_macro { | ||
| ($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => ( | ||
| // Note: the windows-targets crate uses a pre-built Windows.lib import library which we don't | ||
| // have in this repo. So instead we always link kernel32.lib and add the rest of the import | ||
| // libraries below by using an empty extern block. This works because extern blocks are not | ||
| // connected to the library given in the #[link] attribute. | ||
| #[link(name = "kernel32")] | ||
| extern $abi { | ||
| $(#[link_name=$link_name])? | ||
| pub fn $($function)*; | ||
| } | ||
| ) | ||
| } | ||
| pub(crate) use link_macro as link; |
| { | ||
| "git": { | ||
| "sha1": "9731605fb9b8a2a8188bf410002dfa0a096d7784" | ||
| "sha1": "3c1325b09a78827fb2beb3ea9e8f1e3f84876b64" | ||
| }, | ||
| "path_in_vcs": "" | ||
| } |
+3
-3
@@ -13,3 +13,3 @@ # This file is automatically @generated by Cargo. | ||
| name = "cc" | ||
| version = "1.2.15" | ||
| version = "1.2.16" | ||
| dependencies = [ | ||
@@ -67,5 +67,5 @@ "jobserver", | ||
| name = "libc" | ||
| version = "0.2.169" | ||
| version = "0.2.170" | ||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||
| checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" | ||
| checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" | ||
@@ -72,0 +72,0 @@ [[package]] |
+1
-1
@@ -16,3 +16,3 @@ # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO | ||
| name = "cc" | ||
| version = "1.2.15" | ||
| version = "1.2.16" | ||
| authors = ["Alex Crichton <alex@alexcrichton.com>"] | ||
@@ -19,0 +19,0 @@ build = false |
+15
-0
@@ -9,2 +9,17 @@ # Changelog | ||
| ## [1.2.16](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.15...cc-v1.2.16) - 2025-02-28 | ||
| ### Fixed | ||
| - force windows compiler to run in `out_dir` to prevent artifacts in cwd (#1415) | ||
| ### Other | ||
| - use `/arch:SSE2` for `x86` target arch (#1425) | ||
| - Regenerate windows-sys binding ([#1422](https://github.com/rust-lang/cc-rs/pull/1422)) | ||
| - Regenerate target info ([#1418](https://github.com/rust-lang/cc-rs/pull/1418)) | ||
| - Add LIB var when compiling flag_check (#1417) | ||
| - Change flag ordering ([#1403](https://github.com/rust-lang/cc-rs/pull/1403)) | ||
| - Fix archiver detection for musl cross compilation ([#1404](https://github.com/rust-lang/cc-rs/pull/1404)) | ||
| ## [1.2.15](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.14...cc-v1.2.15) - 2025-02-21 | ||
@@ -11,0 +26,0 @@ |
@@ -8,5 +8,5 @@ //! These modules are all glue to support reading the MSVC version from | ||
| #[cfg(windows)] | ||
| mod windows_link; | ||
| #[cfg(windows)] | ||
| pub(crate) mod windows_sys; | ||
| #[cfg(windows)] | ||
| mod windows_targets; | ||
@@ -13,0 +13,0 @@ #[cfg(windows)] |
@@ -9,3 +9,3 @@ // This file is autogenerated. | ||
| // ``` | ||
| // Bindings generated by `windows-bindgen` 0.59.0 | ||
| // Bindings generated by `windows-bindgen` 0.60.0 | ||
@@ -20,18 +20,18 @@ #![allow( | ||
| windows_targets::link!("ole32.dll" "system" fn CoCreateInstance(rclsid : *const GUID, punkouter : * mut core::ffi::c_void, dwclscontext : CLSCTX, riid : *const GUID, ppv : *mut *mut core::ffi::c_void) -> HRESULT); | ||
| windows_targets::link!("ole32.dll" "system" fn CoInitializeEx(pvreserved : *const core::ffi::c_void, dwcoinit : u32) -> HRESULT); | ||
| windows_targets::link!("kernel32.dll" "system" fn FreeLibrary(hlibmodule : HMODULE) -> BOOL); | ||
| windows_targets::link!("kernel32.dll" "system" fn GetMachineTypeAttributes(machine : u16, machinetypeattributes : *mut MACHINE_ATTRIBUTES) -> HRESULT); | ||
| windows_targets::link!("kernel32.dll" "system" fn GetProcAddress(hmodule : HMODULE, lpprocname : PCSTR) -> FARPROC); | ||
| windows_targets::link!("kernel32.dll" "system" fn LoadLibraryA(lplibfilename : PCSTR) -> HMODULE); | ||
| windows_targets::link!("kernel32.dll" "system" fn OpenSemaphoreA(dwdesiredaccess : u32, binherithandle : BOOL, lpname : PCSTR) -> HANDLE); | ||
| windows_targets::link!("kernel32.dll" "system" fn PeekNamedPipe(hnamedpipe : HANDLE, lpbuffer : *mut core::ffi::c_void, nbuffersize : u32, lpbytesread : *mut u32, lptotalbytesavail : *mut u32, lpbytesleftthismessage : *mut u32) -> BOOL); | ||
| windows_targets::link!("advapi32.dll" "system" fn RegCloseKey(hkey : HKEY) -> WIN32_ERROR); | ||
| windows_targets::link!("advapi32.dll" "system" fn RegEnumKeyExW(hkey : HKEY, dwindex : u32, lpname : PWSTR, lpcchname : *mut u32, lpreserved : *const u32, lpclass : PWSTR, lpcchclass : *mut u32, lpftlastwritetime : *mut FILETIME) -> WIN32_ERROR); | ||
| windows_targets::link!("advapi32.dll" "system" fn RegOpenKeyExW(hkey : HKEY, lpsubkey : PCWSTR, uloptions : u32, samdesired : REG_SAM_FLAGS, phkresult : *mut HKEY) -> WIN32_ERROR); | ||
| windows_targets::link!("advapi32.dll" "system" fn RegQueryValueExW(hkey : HKEY, lpvaluename : PCWSTR, lpreserved : *const u32, lptype : *mut REG_VALUE_TYPE, lpdata : *mut u8, lpcbdata : *mut u32) -> WIN32_ERROR); | ||
| windows_targets::link!("kernel32.dll" "system" fn ReleaseSemaphore(hsemaphore : HANDLE, lreleasecount : i32, lppreviouscount : *mut i32) -> BOOL); | ||
| windows_targets::link!("oleaut32.dll" "system" fn SysFreeString(bstrstring : BSTR)); | ||
| windows_targets::link!("oleaut32.dll" "system" fn SysStringLen(pbstr : BSTR) -> u32); | ||
| windows_targets::link!("kernel32.dll" "system" fn WaitForSingleObject(hhandle : HANDLE, dwmilliseconds : u32) -> WAIT_EVENT); | ||
| windows_link::link!("ole32.dll" "system" fn CoCreateInstance(rclsid : *const GUID, punkouter : * mut core::ffi::c_void, dwclscontext : CLSCTX, riid : *const GUID, ppv : *mut *mut core::ffi::c_void) -> HRESULT); | ||
| windows_link::link!("ole32.dll" "system" fn CoInitializeEx(pvreserved : *const core::ffi::c_void, dwcoinit : u32) -> HRESULT); | ||
| windows_link::link!("kernel32.dll" "system" fn FreeLibrary(hlibmodule : HMODULE) -> BOOL); | ||
| windows_link::link!("kernel32.dll" "system" fn GetMachineTypeAttributes(machine : u16, machinetypeattributes : *mut MACHINE_ATTRIBUTES) -> HRESULT); | ||
| windows_link::link!("kernel32.dll" "system" fn GetProcAddress(hmodule : HMODULE, lpprocname : PCSTR) -> FARPROC); | ||
| windows_link::link!("kernel32.dll" "system" fn LoadLibraryA(lplibfilename : PCSTR) -> HMODULE); | ||
| windows_link::link!("kernel32.dll" "system" fn OpenSemaphoreA(dwdesiredaccess : u32, binherithandle : BOOL, lpname : PCSTR) -> HANDLE); | ||
| windows_link::link!("kernel32.dll" "system" fn PeekNamedPipe(hnamedpipe : HANDLE, lpbuffer : *mut core::ffi::c_void, nbuffersize : u32, lpbytesread : *mut u32, lptotalbytesavail : *mut u32, lpbytesleftthismessage : *mut u32) -> BOOL); | ||
| windows_link::link!("advapi32.dll" "system" fn RegCloseKey(hkey : HKEY) -> WIN32_ERROR); | ||
| windows_link::link!("advapi32.dll" "system" fn RegEnumKeyExW(hkey : HKEY, dwindex : u32, lpname : PWSTR, lpcchname : *mut u32, lpreserved : *const u32, lpclass : PWSTR, lpcchclass : *mut u32, lpftlastwritetime : *mut FILETIME) -> WIN32_ERROR); | ||
| windows_link::link!("advapi32.dll" "system" fn RegOpenKeyExW(hkey : HKEY, lpsubkey : PCWSTR, uloptions : u32, samdesired : REG_SAM_FLAGS, phkresult : *mut HKEY) -> WIN32_ERROR); | ||
| windows_link::link!("advapi32.dll" "system" fn RegQueryValueExW(hkey : HKEY, lpvaluename : PCWSTR, lpreserved : *const u32, lptype : *mut REG_VALUE_TYPE, lpdata : *mut u8, lpcbdata : *mut u32) -> WIN32_ERROR); | ||
| windows_link::link!("kernel32.dll" "system" fn ReleaseSemaphore(hsemaphore : HANDLE, lreleasecount : i32, lppreviouscount : *mut i32) -> BOOL); | ||
| windows_link::link!("oleaut32.dll" "system" fn SysFreeString(bstrstring : BSTR)); | ||
| windows_link::link!("oleaut32.dll" "system" fn SysStringLen(pbstr : BSTR) -> u32); | ||
| windows_link::link!("kernel32.dll" "system" fn WaitForSingleObject(hhandle : HANDLE, dwmilliseconds : u32) -> WAIT_EVENT); | ||
| pub type ADVANCED_FEATURE_FLAGS = u16; | ||
@@ -136,2 +136,2 @@ pub type BOOL = i32; | ||
| extern "C" {} | ||
| use super::windows_targets; | ||
| use super::windows_link; |
| //! Provides the `link!` macro used by the generated windows bindings. | ||
| //! | ||
| //! This is a simple wrapper around an `extern` block with a `#[link]` attribute. | ||
| //! It's very roughly equivalent to the windows-targets crate. | ||
| macro_rules! link_macro { | ||
| ($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => ( | ||
| // Note: the windows-targets crate uses a pre-built Windows.lib import library which we don't | ||
| // have in this repo. So instead we always link kernel32.lib and add the rest of the import | ||
| // libraries below by using an empty extern block. This works because extern blocks are not | ||
| // connected to the library given in the #[link] attribute. | ||
| #[link(name = "kernel32")] | ||
| extern $abi { | ||
| $(#[link_name=$link_name])? | ||
| pub fn $($function)*; | ||
| } | ||
| ) | ||
| } | ||
| pub(crate) use link_macro as link; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display