Build Rust to dynamic libraries instead of static #28

Merged
trurl merged 5 commits from trurl/wmaker:refactor/rust_builds_dylib into refactor/riir 2026-04-12 09:32:48 -04:00
13 changed files with 82 additions and 47 deletions

View File

@@ -10,12 +10,10 @@ libWUtil_la_LDFLAGS = -version-info @WUTIL_VERSION@
lib_LTLIBRARIES = libWUtil.la libWINGs.la
wutilrs = $(top_builddir)/wutil-rs/target/debug/libwutil_rs.a
wraster = $(top_builddir)/wrlib/libwraster.la
LDADD= libWUtil.la libWINGs.la $(wraster) $(wutilrs) @INTLIBS@
libWINGs_la_LIBADD = libWUtil.la $(wraster) $(wutilrs) @XLIBS@ @XFT_LIBS@ @FCLIBS@ @LIBM@ @PANGO_LIBS@
libWUtil_la_LIBADD = $(wutilrs)
LDADD= libWUtil.la libWINGs.la $(wraster) @INTLIBS@
libWINGs_la_LIBADD = libWUtil.la $(wraster) @XLIBS@ @XFT_LIBS@ @FCLIBS@ @LIBM@ @PANGO_LIBS@
EXTRA_DIST = BUGS make-rgb Examples Extras Tests

View File

@@ -23,11 +23,6 @@ RUST_EXTRA = \
Cargo.lock \
Cargo.toml
wutil_c_lib = $(top_builddir)/WINGs/libWUtil.la
wings_c_lib = $(top_builddir)/WINGs/libWINGs.la
wings_rs_lib = $(top_builddir)/WINGs/wings-rs/target/debug/libwings_rs.a
wings_rs_test_lib = target/debug/libwings_rs_tests.rlib
rustlib: $(RUST_SOURCES) $(RUST_EXTRA)
cargo build

View File

@@ -1,13 +1,9 @@
fn main() {
println!("cargo:rustc-link-lib=static=X11");
println!("cargo:rustc-link-lib=static=xcb");
println!("cargo:rustc-link-lib=static=Xau");
println!("cargo:rustc-link-lib=static=Xdmcp");
println!("cargo::rustc-link-search=../.libs");
println!("cargo::rustc-link-arg=-lX11");
println!("cargo::rustc-link-arg-tests=-lWUtil");
println!("cargo::rustc-link-arg-tests=-lWINGs");
println!("cargo::rustc-link-arg-tests=-lX11");
println!("cargo::rustc-link-arg-tests=-lXft");
println!("cargo::rustc-link-arg-tests=-lpango-1.0");
println!("cargo::rustc-link-arg-tests=-lpangoxft-1.0");

View File

@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2024"
[lib]
crate-type = ["staticlib", "rlib"]
crate-type = ["cdylib", "rlib"]
[dependencies]
libc = "0.2.177"

View File

@@ -60,7 +60,7 @@ src/WINGsP.rs: ../WINGs/WINGsP.h ../../wrlib/wraster.h ../WINGs/WINGs.h ../WINGs
Cargo.lock:
$(CARGO) build
target/debug/libwings_rs.a: $(RUST_SOURCES) $(RUST_EXTRA)
target/debug/libwings_rs.so: $(RUST_SOURCES) $(RUST_EXTRA)
$(CARGO) build
check-local:
@@ -70,4 +70,4 @@ clean-local:
$(CARGO) clean
rm -f src/WINGsP.rs
all: target/debug/libwings_rs.a
all: target/debug/libwings_rs.so

View File

@@ -66,9 +66,9 @@ AM_CPPFLAGS = -DRESOURCE_PATH=\"$(wpdatadir)\" -DWMAKER_RESOURCE_PATH=\"$(pkgdat
WPrefs_DEPENDENCIES = $(top_builddir)/WINGs/libWINGs.la
WPrefs_LDADD = \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a\
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.so\
$(top_builddir)/WINGs/libWINGs.la\
$(top_builddir)/WINGs/wings-rs/target/debug/libwings_rs.a\
$(top_builddir)/WINGs/wings-rs/target/debug/libwings_rs.so\
$(top_builddir)/WINGs/libWUtil.la\
$(top_builddir)/wrlib/libwraster.la \
@PANGO_LIBS@ \

View File

@@ -155,14 +155,18 @@ AM_CPPFLAGS = $(DFLAGS) \
-I$(top_srcdir)/WINGs -I$(top_builddir)/WINGs \
@HEADER_SEARCH_PATH@
wmaker_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug \
-L$(top_builddir)/WINGs/wings-rs/target/debug \
-L$(top_builddir)/wmaker-rs/target/debug
wmaker_LDADD = \
$(top_builddir)/WINGs/libWINGs.la\
$(top_builddir)/WINGs/libWUtil.la\
$(top_builddir)/wrlib/libwraster.la\
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a\
$(top_builddir)/WINGs/wings-rs/target/debug/libwings_rs.a\
$(top_builddir)/wmaker-rs/target/debug/libwmaker_rs.a\
-lwutil_rs\
-lwings_rs\
-lwmaker_rs\
@PANGO_LIBS@ \
@FCLIBS@ \
@XLFLAGS@ \

View File

@@ -54,7 +54,7 @@ rename_dir_if_possible "$wm_style" "$wm_styles"
make_dir_if_needed "$wm_styles"
make_dir_if_needed "$wm_themes"
export LD_LIBRARY_PATH="$project_base/wrlib/.libs:$project_base/WINGs/.libs:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="$project_base/WINGs/wings-rs/target/debug:$project_base/wutil-rs/target/debug:$project_base/wmaker-rs/target/debug:$project_base/wrlib/.libs:$project_base/WINGs/.libs:$LD_LIBRARY_PATH"
copy_defaults_if_needed WindowMaker
copy_defaults_if_needed WMRootMenu

View File

@@ -18,77 +18,115 @@ AM_CPPFLAGS = \
liblist= @LIBRARY_SEARCH_PATH@ @INTLIBS@
wdwrite_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug
wdwrite_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a \
-lwutil_rs \
$(liblist)
wdread_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug
wdread_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a \
-lwutil_rs \
$(liblist)
wxcopy_LDADD = @XLFLAGS@ @XLIBS@ \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a
wxcopy_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug
wxcopy_LDADD = @XLFLAGS@ @XLIBS@ -lwutil_rs
wxpaste_LDADD = @XLFLAGS@ @XLIBS@
getstyle_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug
getstyle_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a \
-lwutil_rs \
$(liblist)
getstyle_SOURCES = getstyle.c fontconv.c common.h
setstyle_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug
setstyle_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a \
-lwutil_rs \
@XLFLAGS@ @XLIBS@ $(liblist)
setstyle_SOURCES = setstyle.c fontconv.c common.h
convertfonts_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug
convertfonts_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a \
-lwutil_rs \
$(liblist)
convertfonts_SOURCES = convertfonts.c fontconv.c common.h
seticons_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug
seticons_LDADD= \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a \
-lwutil_rs \
$(liblist)
geticonset_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug
geticonset_LDADD= \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a \
-lwutil_rs \
$(liblist)
wmagnify_LDFLAGS = \
-L$(top_builddir)/WINGs/wings-rs/target/debug \
-L$(top_builddir)/wutil-rs/target/debug
wmagnify_LDADD = \
$(top_builddir)/WINGs/libWINGs.la \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/WINGs/wings-rs/target/debug/libwings_rs.a \
$(top_builddir)/wrlib/libwraster.la \
-lwutil_rs \
-lwings_rs \
@XLFLAGS@ @XLIBS@ @INTLIBS@ @FCLIBS@ @PANGO_LIBS@
wmsetbg_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug \
-L$(top_builddir)/WINGs/wings-rs/target/debug
wmsetbg_LDADD = \
$(top_builddir)/WINGs/libWINGs.la \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a \
$(top_builddir)/WINGs/wings-rs/target/debug/libwings_rs.a \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wrlib/libwraster.la \
-lwings_rs \
-lwutil_rs \
@XLFLAGS@ @LIBXINERAMA@ @XLIBS@ @INTLIBS@ @FCLIBS@ @PANGO_LIBS@
wmgenmenu_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug
wmgenmenu_LDADD = \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a \
-lwutil_rs \
@INTLIBS@
wmgenmenu_SOURCES = wmgenmenu.c wmgenmenu.h
wmmenugen_LDFLAGS = \
-L$(top_builddir)/wutil-rs/target/debug
wmmenugen_LDADD = \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a \
$(top_builddir)/WINGs/libWUtil.la \
-lwutil_rs \
@INTLIBS@
wmmenugen_SOURCES = wmmenugen.c wmmenugen.h wmmenugen_misc.c \
@@ -97,12 +135,16 @@ wmmenugen_SOURCES = wmmenugen.c wmmenugen.h wmmenugen_misc.c \
wmiv_CFLAGS = @PANGO_CFLAGS@ @PTHREAD_CFLAGS@
wmiv_LDFLAGS = \
-L$(top_builddir)/WINGs/wings-rs/target/debug \
-L$(top_builddir)/wutil-rs/target/debug
wmiv_LDADD = \
$(top_builddir)/wrlib/libwraster.la \
$(top_builddir)/WINGs/libWINGs.la \
$(top_builddir)/WINGs/libWUtil.la \
$(top_builddir)/wutil-rs/target/debug/libwutil_rs.a \
$(top_builddir)/WINGs/wings-rs/target/debug/libwings_rs.a \
$(top_builddir)/WINGs/libWINGs.la \
-lwings_rs \
-lwutil_rs \
@XLFLAGS@ @XLIBS@ @GFXLIBS@ \
@PANGO_LIBS@ @PTHREAD_LIBS@ @LIBEXIF@

View File

@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2024"
[lib]
crate-type = ["staticlib"]
crate-type = ["cdylib"]
[dependencies]
x11 = "2.21.0"

View File

@@ -21,7 +21,7 @@ RUST_SOURCES = \
RUST_EXTRA = \
Cargo.lock
target/debug/libwmaker_rs.a: $(RUST_SOURCES) $(RUST_EXTRA)
target/debug/libwmaker_rs.so: $(RUST_SOURCES) $(RUST_EXTRA)
$(CARGO) build
check-local:
@@ -30,4 +30,4 @@ check-local:
clean-local:
$(CARGO) clean
all: target/debug/libwmaker_rs.a
all: target/debug/libwmaker_rs.so

View File

@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2024"
[lib]
crate-type = ["staticlib","rlib"]
crate-type = ["cdylib","rlib"]
[build-dependencies]
cc = "1.0"

View File

@@ -24,7 +24,7 @@ RUST_EXTRA = \
Cargo.lock:
$(CARGO) build
target/debug/libwutil_rs.a: $(RUST_SOURCES) $(RUST_EXTRA)
target/debug/libwutil_rs.so: $(RUST_SOURCES) $(RUST_EXTRA)
$(CARGO) build
check-local:
@@ -33,4 +33,4 @@ check-local:
clean-local:
$(CARGO) clean
all: target/debug/libwutil_rs.a
all: target/debug/libwutil_rs.so