forked from vitrine/wmaker
Generate a distinct FFI module for constants in WINGs C headers.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -155,6 +155,8 @@ WPrefs.app/WPrefs.desktop
|
||||
WINGs/wings-rs-tests/Cargo.lock
|
||||
WINGs/wings-rs/Cargo.lock
|
||||
WINGs/wings-rs/src/WINGsP.rs
|
||||
WINGs/wings-rs/src/WINGsP/constants.rs
|
||||
WINGs/wings-rs/src/WINGsP/mod.rs
|
||||
wmaker-rs/Cargo.lock
|
||||
wrlib-rs/src/ffi.rs
|
||||
wrlib-rs/Cargo.lock
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
AUTOMAKE_OPTIONS =
|
||||
|
||||
RUST_SRC = \
|
||||
src/WINGsP.rs \
|
||||
src/WINGsP/constants.rs \
|
||||
src/WINGsP/mod.rs \
|
||||
src/button.rs \
|
||||
src/color.rs \
|
||||
src/configuration.rs \
|
||||
@@ -18,8 +19,9 @@ RUST_EXTRA = \
|
||||
Cargo.lock \
|
||||
Cargo.toml
|
||||
|
||||
src/WINGsP.rs: ../WINGs/WINGsP.h ../../wrlib/wraster.h ../WINGs/WINGs.h ../WINGs/WUtil.h Makefile patch_WINGsP.sed
|
||||
$(BINDGEN) ../WINGs/WINGsP.h \
|
||||
src/WINGsP/mod.rs: ../WINGs/WINGsP.h ../../wrlib/wraster.h ../WINGs/WINGs.h ../WINGs/WUtil.h Makefile patch_WINGsP.sed
|
||||
mkdir -p src/WINGsP \
|
||||
&& $(BINDGEN) ../WINGs/WINGsP.h \
|
||||
--no-recursive-allowlist \
|
||||
--allowlist-type "^W_.+|^WM(View|Array|DragOperationType|Point|Data|OpenPanel|SavePanel|HashTable|DraggingInfo|SelectionProcs|Rect|EventProc|Widget|Size|Pixmap|FilePanel|List|ListItem)" \
|
||||
--allowlist-type "^WM(FontPanel|Screen|Button)" \
|
||||
@@ -52,11 +54,18 @@ src/WINGsP.rs: ../WINGs/WINGsP.h ../../wrlib/wraster.h ../WINGs/WINGs.h ../WINGs
|
||||
--allowlist-item "^WMAlignment" \
|
||||
--allowlist-item "^WMReliefType" \
|
||||
--allowlist-function "^WM(Create|Release|Draw)Pixmap|^WMCreate(|Blended|ScaledBlended)PixmapFromFile|^WMCreate(|Blended)PixmapFromRImage" \
|
||||
-o src/WINGsP.rs -- \
|
||||
-o src/WINGsP/mod.rs -- \
|
||||
@PANGO_CFLAGS@ \
|
||||
-I../../wrlib \
|
||||
-I.. \
|
||||
&& sed -i -r -f patch_WINGsP.sed src/WINGsP.rs
|
||||
&& sed -i -r -f patch_WINGsP.sed src/WINGsP/mod.rs
|
||||
|
||||
src/WINGsP/constants.rs: src/WINGsP src/defines.h ../WINGs/WINGs.h Makefile
|
||||
$(BINDGEN) src/defines.h \
|
||||
--allowlist-type WSystemIcon \
|
||||
-o src/WINGsP/constants.rs -- \
|
||||
-I../../wrlib \
|
||||
-I..
|
||||
|
||||
Cargo.lock:
|
||||
$(CARGO) build
|
||||
@@ -70,5 +79,7 @@ check-local:
|
||||
clean-local:
|
||||
$(CARGO) clean
|
||||
rm -f src/WINGsP.rs
|
||||
rm -f src/WINGsP/constants.rs
|
||||
rm -f src/WINGsP/mod.rs
|
||||
|
||||
all: target/debug/libwings_rs.so
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# - The opaque type names _XftDraw and _XftFont are replaced with void*.
|
||||
# - Pango bindings aren't yet pulled into our Rust code, so PangoLayout is also demoted to void*.
|
||||
|
||||
1s/^/use wrlib_rs::ffi::*;\nuse wutil_rs::range::ffi::*;\nuse x11::xlib::*;\nuse crate::ffi::*;\n\n/
|
||||
1s/^/use wrlib_rs::ffi::*;\nuse wutil_rs::range::ffi::*;\nuse x11::xlib::*;\nuse crate::ffi::*;\n\npub mod constants;\n\n/
|
||||
s/_XftDraw/::std::ffi::c_void/g
|
||||
s/_XftFont/::std::ffi::c_void/g
|
||||
s/PangoLayout/::std::ffi::c_void/g
|
||||
|
||||
16
WINGs/wings-rs/src/defines.h
Normal file
16
WINGs/wings-rs/src/defines.h
Normal file
@@ -0,0 +1,16 @@
|
||||
#include "../../WINGs/WINGs.h"
|
||||
|
||||
typedef enum {
|
||||
ReturnArrow = WSIReturnArrow,
|
||||
HighlightedReturnArrow = WSIHighlightedReturnArrow,
|
||||
ScrollerDimple = WSIScrollerDimple,
|
||||
ArrowLeft = WSIArrowLeft,
|
||||
HighlightedArrowLeft = WSIHighlightedArrowLeft,
|
||||
ArrowRight = WSIArrowRight,
|
||||
HighlightedArrowRight = WSIHighlightedArrowRight,
|
||||
ArrowUp = WSIArrowUp,
|
||||
HighlightedArrowUp = WSIHighlightedArrowUp,
|
||||
ArrowDown = WSIArrowDown,
|
||||
HighlightedArrowDown = WSIHighlightedArrowDown,
|
||||
CheckMark = WSICheckMark,
|
||||
} WSystemIcon;
|
||||
Reference in New Issue
Block a user