Mercurial > crates > nonstick
comparison libpam-sys/libpam-sys-test/build.rs @ 190:995aca290452
Restructure the way libpam-sys-impls works to fix cross-compilation.
The previous structure of libpam-sys-impls meant that things got
confusing (including for me) between what constants were build-time
and what constants were run-time. This broke cross-compilation.
This simplifies the way that works so that `libpam-sys-impls` has
*no* build script itself and is intended mostly as a library to be
included in other libraries' build scripts (while also exporting
the PamImpl enum).
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Sat, 02 Aug 2025 18:47:46 -0400 |
parents | 0730f5f2ee2a |
children |
comparison
equal
deleted
inserted
replaced
189:b2456d274576 | 190:995aca290452 |
---|---|
1 use bindgen::MacroTypeVariation; | 1 use bindgen::MacroTypeVariation; |
2 use libpam_sys_impls::pam_impl_name; | 2 use libpam_sys::pam_impl_name; |
3 use libpam_sys_impls::PamImpl; | 3 use libpam_sys_impls::PamImpl; |
4 use proc_macro2::{Group, Ident, TokenStream, TokenTree}; | 4 use proc_macro2::{Group, Ident, TokenStream, TokenTree}; |
5 use quote::{format_ident, ToTokens}; | 5 use quote::{format_ident, ToTokens}; |
6 use std::path::Path; | 6 use std::path::Path; |
7 use std::process::Command; | 7 use std::process::Command; |
11 | 11 |
12 const REDIR_FD: &str = "pam_modutil_redirect_fd"; | 12 const REDIR_FD: &str = "pam_modutil_redirect_fd"; |
13 | 13 |
14 fn main() { | 14 fn main() { |
15 libpam_sys_impls::enable_pam_impl_cfg(); | 15 libpam_sys_impls::enable_pam_impl_cfg(); |
16 let config = match PamImpl::CURRENT { | 16 let config = match libpam_sys::pam_impl::CURRENT { |
17 PamImpl::LinuxPam => TestConfig { | 17 PamImpl::LinuxPam => TestConfig { |
18 headers: vec![ | 18 headers: vec![ |
19 "<security/_pam_types.h>", | 19 "<security/_pam_types.h>", |
20 "<security/pam_appl.h>", | 20 "<security/pam_appl.h>", |
21 "<security/pam_ext.h>", | 21 "<security/pam_ext.h>", |
74 let file = syn::parse_file(&generated.to_string()).unwrap(); | 74 let file = syn::parse_file(&generated.to_string()).unwrap(); |
75 let mut tests = vec![ | 75 let mut tests = vec![ |
76 "#[allow(deprecated, overflowing_literals)]".into(), | 76 "#[allow(deprecated, overflowing_literals)]".into(), |
77 "fn main() {".into(), | 77 "fn main() {".into(), |
78 format!( | 78 format!( |
79 "assert_eq!(libpam_sys::pam_impl::PamImpl::CURRENT, libpam_sys::pam_impl::PamImpl::{:?});", | 79 "assert_eq!(libpam_sys::pam_impl::CURRENT, libpam_sys::pam_impl::PamImpl::{:?});", |
80 PamImpl::CURRENT | 80 libpam_sys::pam_impl::CURRENT |
81 ), | 81 ), |
82 ]; | 82 ]; |
83 tests.extend( | 83 tests.extend( |
84 file.items | 84 file.items |
85 .iter() | 85 .iter() |