mirror of
https://github.com/ValveSoftware/Proton.git
synced 2025-02-14 23:58:49 +03:00
We got some build failures with DXVK-NVAPI due to this. They even have CI that uses Proton SDK images but since we create our own cross files they were not anticipating that we may be forcing a C++ standard version. Since everything builds and none of the meson-using subprojects seems to be setting the version via their provided corss files we should be good to just drop it.
72 lines
2.0 KiB
Makefile
72 lines
2.0 KiB
Makefile
# parameters:
|
|
# $(1): lowercase package name
|
|
# $(2): uppercase package name
|
|
# $(3): 32/64, build type
|
|
# $(4): CROSS/<empty>, cross compile
|
|
#
|
|
define create-rules-meson
|
|
# Don't pass CROSS here, we need a native environment and we'll handle
|
|
# cross compilation below with the CROSS-prefixed variables.
|
|
$(call create-rules-common,$(1),$(2),$(3))
|
|
|
|
define $(2)_MESON_CROSS$(3)
|
|
cat <<EOF
|
|
[binaries]
|
|
ar = '$$$$CROSSAR'
|
|
c = '$$$$CROSSCC'
|
|
cpp = '$$$$CROSSCXX'
|
|
ld = '$$$$CROSSLD'
|
|
windres = '$$$$RC'
|
|
strip = '$$$$STRIP'
|
|
widl = '$$$$WIDL'
|
|
pkgconfig = '$$$$PKG_CONFIG'
|
|
|
|
[properties]
|
|
needs_exe_wrapper = true
|
|
c_args = [$$(call list-quote,$$($(2)_INCFLAGS$(3)) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3)))]
|
|
cpp_args = [$$(call list-quote,$$($(2)_INCFLAGS$(3)) $$($(2)_CPPFLAGS) $$(COMMON_FLAGS) $$(COMMON_FLAGS$(3)))]
|
|
link_args = [$$(call list-quote,$$($(2)_LIBFLAGS$(3)) $$($(2)_LDFLAGS$(3)) $$($(2)_LDFLAGS) $$(CROSSLDFLAGS))]
|
|
pkg_config_libdir = '$$$$CROSSPKG_CONFIG_LIBDIR'
|
|
|
|
[host_machine]
|
|
system = 'windows'
|
|
cpu_family = '$$(MESON_CPU$(3))'
|
|
cpu = '$$(MESON_CPU$(3))'
|
|
endian = 'little'
|
|
EOF
|
|
endef
|
|
|
|
export $(2)_MESON_CROSS$(3)
|
|
|
|
$$($(2)_SRC)/meson.build: | $$(OBJ)/.$(1)-post-source
|
|
|
|
$$(OBJ)/.$(1)-configure$(3): $$($(2)_SRC)/meson.build
|
|
@echo ":: configuring $(3)bit $(1)..." >&2
|
|
rm -rf "$$($(2)_OBJ$(3))/meson-private/coredata.dat"
|
|
|
|
echo "$$$$$(2)_MESON_CROSS$(3)" | env $$($(2)_ENV$(3)) sh >"$$($(2)_OBJ$(3))/cross-$(3).txt"
|
|
|
|
env $$($(2)_ENV$(3)) \
|
|
meson "$$($(2)_OBJ$(3))" "$$($(2)_SRC)" \
|
|
--prefix="$$($(2)_DST$(3))" \
|
|
--libdir="lib$(subst 32,,$(3))" \
|
|
--buildtype=plain \
|
|
$(if $(4),--cross-file="$$($(2)_OBJ$(3))/cross-$(3).txt",) \
|
|
$$($(2)_MESON_ARGS) \
|
|
$$($(2)_MESON_ARGS$(3)) \
|
|
$$(MESON_STRIP_ARG)
|
|
|
|
touch $$@
|
|
|
|
$$(OBJ)/.$(1)-build$(3):
|
|
@echo ":: building $(3)bit $(1)..." >&2
|
|
+env $$($(2)_ENV$(3)) \
|
|
ninja -C "$$($(2)_OBJ$(3))" install
|
|
touch $$@
|
|
endef
|
|
|
|
MESON_CPU32 = x86
|
|
MESON_CPU64 = x86_64
|
|
|
|
rules-meson = $(call create-rules-meson,$(1),$(call toupper,$(1)),$(2),$(3))
|