freebsd-ports/games/veloren/Makefile
Tobias Kortkamp b0f1d6430e lang/rust: Update to 1.45.0
- This Rust release comes with LLVM 10.  Drop the LLVM patches we
  no longer need.
- On FreeBSD 13.0 powerpc64 set the elfv2 ABI explicitly in the
  Rust target instead of patching LLVM.
- Build LLVM with Ninja.  It can shorten the build time slightly.
- Force rebuild all consumers to catch regressions early

Changes:	https://blog.rust-lang.org/2020/07/16/Rust-1.45.0.html
Tested by:	mikael, pkubaj, tobik
With hat:	rust
Differential Revision:	https://reviews.freebsd.org/D25658
2020-07-17 06:44:04 +00:00

608 lines
14 KiB
Makefile

# $FreeBSD$
PORTNAME= veloren
DISTVERSIONPREFIX= v
DISTVERSION= 0.6.0
PORTREVISION= 2
CATEGORIES= games
MASTER_SITES= https://veloren.net/icons/favicon/:icon \
LOCAL/jbeich:assets
DISTFILES= android-icon-192x192.png:icon \
${PORTNAME}-assets-${DISTVERSIONFULL}.tar.xz:assets
EXTRACT_ONLY= ${DISTFILES:N*\:icon:C/:.*//}
PATCH_SITES= ${GL_SITE}/${GL_ACCOUNT}/${GL_PROJECT}/-/commit/
PATCHFILES+= 886cad910372.diff:-p1 # https://gitlab.com/veloren/veloren/-/merge_requests/1003
MAINTAINER= jbeich@FreeBSD.org
COMMENT= Multiplayer voxel RPG written in Rust
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libasound.so:audio/alsa-lib
RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins
USES= cargo gnome python:3.4+,build xorg
USE_GNOME= gtk30
USE_XORG= xcb
USE_GITHUB= nodefault
GH_TUPLE= Imberflur:guillotiere:42c298f5bcf0f95f1a004360d05e25ca3711e9ed:guillotiere \
bekker:msgbox-rs:68fe39a60019b38a1569ae4e9ed796a0f0542673:msgbox \
wusyong:portpicker-rs:06b989ac271ada33f9d44e7bcfcb10d55ead0c43:portpicker
USE_GITLAB= yes
GL_COMMIT= 9693fd33aea86a9155125af51a282a7c78522c73
GL_TUPLE= veloren:auth:65571ade0d954a0e0bd995fdb314854ff146ab97:authcommon \
veloren:conrod:df3a5d8098687fb0addf6fdf7c9ad2ac8794997f:conrod_core \
veloren:specs-idvs:111548cf44e9bb4c43feb12aa3fc253953ac6e4a:specsidvs \
yusdacra:treeculler:6c0fdf1c1cbf00be22e37410985d6a3973cd9bed:treeculler
INSTALLS_ICONS= yes
PLIST_FILES= bin/${PORTNAME}-chat-cli \
bin/${PORTNAME}-server-cli \
bin/${PORTNAME}-voxygen \
share/icons/hicolor/192x192/apps/${PORTNAME}.png
PORTDATA= *
DESKTOP_ENTRIES="Veloren (client)" \
"" \
"${PORTNAME}" \
"${PORTNAME}-voxygen" \
"Game;RolePlaying;" \
""
CARGO_CRATES= adler32-1.0.4 \
ahash-0.2.18 \
ahash-0.3.2 \
aho-corasick-0.7.10 \
alsa-sys-0.1.2 \
andrew-0.2.1 \
android_glue-0.2.3 \
anyhow-1.0.27 \
anymap-0.12.1 \
approx-0.1.1 \
approx-0.3.2 \
arr_macro-0.1.3 \
arr_macro_impl-0.1.3 \
arrayref-0.3.6 \
arrayvec-0.4.12 \
arrayvec-0.5.1 \
ascii-0.8.7 \
async-std-1.5.0 \
async-task-1.3.1 \
atk-sys-0.6.0 \
atom-0.3.5 \
atty-0.2.14 \
autocfg-0.1.7 \
autocfg-1.0.0 \
backtrace-0.3.45 \
backtrace-sys-0.1.34 \
base-x-0.2.6 \
base64-0.9.3 \
base64-0.10.1 \
base64-0.11.0 \
bincode-1.2.1 \
bindgen-0.53.2 \
bitflags-1.2.1 \
bitvec-0.17.4 \
blake2b_simd-0.5.10 \
block-0.1.6 \
broadcaster-1.0.0 \
brotli-sys-0.3.2 \
brotli2-0.3.2 \
bstr-0.2.11 \
buf_redux-0.8.4 \
bumpalo-3.2.1 \
byteorder-0.5.3 \
byteorder-1.3.4 \
bytes-0.4.12 \
bytes-0.5.4 \
c_vec-1.3.3 \
cairo-rs-0.4.1 \
cairo-sys-rs-0.6.0 \
cast-0.2.3 \
cc-1.0.50 \
cexpr-0.4.0 \
cfg-if-0.1.10 \
cgl-0.2.3 \
chashmap-2.2.2 \
chrono-0.4.11 \
chunked_transfer-0.3.1 \
clang-sys-0.29.2 \
clap-2.33.0 \
clipboard-win-2.2.0 \
cloudabi-0.0.3 \
cocoa-0.18.5 \
cocoa-0.19.1 \
color_quant-1.0.1 \
colored-1.9.3 \
const-random-0.1.8 \
const-random-macro-0.1.8 \
const-tweaker-0.2.5 \
const-tweaker-attribute-0.4.1 \
constant_time_eq-0.1.5 \
cookie-0.12.0 \
copypasta-0.6.3 \
core-foundation-0.6.4 \
core-foundation-0.7.0 \
core-foundation-sys-0.6.2 \
core-foundation-sys-0.7.0 \
core-graphics-0.17.3 \
coreaudio-rs-0.9.1 \
coreaudio-sys-0.2.4 \
cpal-0.10.0 \
crc32fast-1.2.0 \
criterion-0.3.1 \
criterion-plot-0.4.1 \
crossbeam-0.7.2 \
crossbeam-channel-0.3.9 \
crossbeam-channel-0.4.2 \
crossbeam-deque-0.7.3 \
crossbeam-epoch-0.7.2 \
crossbeam-epoch-0.8.2 \
crossbeam-queue-0.1.2 \
crossbeam-queue-0.2.1 \
crossbeam-utils-0.6.6 \
crossbeam-utils-0.7.2 \
csv-1.1.3 \
csv-core-0.1.10 \
ct-logs-0.6.0 \
daggy-0.5.0 \
darling-0.10.2 \
darling_core-0.10.2 \
darling_macro-0.10.2 \
dashmap-3.7.0 \
data-encoding-2.2.0 \
deflate-0.7.20 \
derivative-1.0.4 \
deunicode-1.1.0 \
diesel-1.4.4 \
diesel_derives-1.4.1 \
diesel_migrations-1.4.0 \
directories-2.0.2 \
dirs-1.0.5 \
dirs-sys-0.3.4 \
discard-1.0.4 \
dispatch-0.1.4 \
dlib-0.4.1 \
dot_vox-4.1.0 \
dotenv-0.15.0 \
downcast-rs-1.1.1 \
draw_state-0.8.0 \
dtoa-0.4.5 \
either-1.5.3 \
encoding_rs-0.8.22 \
env_logger-0.6.2 \
error-chain-0.12.2 \
euc-0.3.0 \
euclid-0.19.9 \
euclid_macros-0.1.0 \
failure-0.1.7 \
failure_derive-0.1.7 \
fern-0.5.9 \
filetime-0.2.8 \
find_folder-0.3.0 \
fixedbitset-0.1.9 \
fnv-1.0.6 \
foreign-types-0.3.2 \
foreign-types-shared-0.1.1 \
fsevent-2.0.1 \
fsevent-sys-3.0.0 \
fuchsia-cprng-0.1.1 \
fuchsia-zircon-0.3.3 \
fuchsia-zircon-sys-0.3.3 \
futures-0.1.29 \
futures-0.3.4 \
futures-channel-0.3.4 \
futures-core-0.3.4 \
futures-cpupool-0.1.8 \
futures-executor-0.3.4 \
futures-io-0.3.4 \
futures-macro-0.3.4 \
futures-sink-0.3.4 \
futures-task-0.3.4 \
futures-timer-2.0.2 \
futures-util-0.3.4 \
fxhash-0.2.1 \
gdk-0.8.0 \
gdk-pixbuf-0.4.0 \
gdk-pixbuf-sys-0.6.0 \
gdk-sys-0.6.0 \
getrandom-0.1.14 \
gfx-0.18.2 \
gfx_core-0.9.2 \
gfx_device_gl-0.16.2 \
gfx_gl-0.6.1 \
gfx_window_glutin-0.31.0 \
gif-0.10.3 \
gilrs-0.7.4 \
gilrs-core-0.2.5 \
gio-0.4.1 \
gio-sys-0.6.0 \
git2-0.10.2 \
gl_generator-0.13.1 \
gl_generator-0.14.0 \
gleam-0.6.19 \
glib-0.5.0 \
glib-sys-0.6.0 \
glob-0.3.0 \
glsl-include-0.3.1 \
glutin-0.21.2 \
glutin_egl_sys-0.1.4 \
glutin_emscripten_sys-0.1.1 \
glutin_gles2_sys-0.1.4 \
glutin_glx_sys-0.1.6 \
glutin_wgl_sys-0.1.4 \
gobject-sys-0.6.0 \
gtk-0.4.1 \
gtk-sys-0.6.0 \
gzip-header-0.3.0 \
h2-0.1.26 \
h2-0.2.2 \
hashbrown-0.6.3 \
hermit-abi-0.1.8 \
hex-0.3.2 \
hibitset-0.6.3 \
horrorshow-0.8.3 \
hound-3.4.0 \
http-0.1.21 \
http-0.2.0 \
http-body-0.1.0 \
http-body-0.3.1 \
http-service-0.4.0 \
http-service-hyper-0.4.1 \
httparse-1.3.4 \
humantime-1.3.0 \
hyper-0.12.35 \
hyper-0.13.3 \
hyper-rustls-0.20.0 \
ident_case-1.0.1 \
idna-0.1.5 \
idna-0.2.0 \
image-0.22.5 \
indexmap-1.3.2 \
inflate-0.4.5 \
inotify-0.8.2 \
inotify-sys-0.1.3 \
instant-0.1.2 \
io-kit-sys-0.1.0 \
iovec-0.1.4 \
itertools-0.8.2 \
itoa-0.4.5 \
jobserver-0.1.21 \
jpeg-decoder-0.1.18 \
js-sys-0.3.36 \
kernel32-sys-0.2.2 \
khronos_api-3.1.0 \
kv-log-macro-1.0.4 \
lazy_static-1.4.0 \
lazycell-1.2.1 \
lewton-0.9.4 \
libc-0.2.67 \
libgit2-sys-0.9.2 \
libloading-0.5.2 \
libsqlite3-sys-0.9.3 \
libssh2-sys-0.2.16 \
libudev-sys-0.1.4 \
libz-sys-1.0.25 \
line_drawing-0.7.0 \
linked-hash-map-0.5.2 \
lock_api-0.3.3 \
log-0.3.9 \
log-0.4.8 \
lz4-compress-0.1.1 \
lzw-0.10.0 \
mach-0.2.3 \
malloc_buf-0.0.6 \
matches-0.1.8 \
maybe-uninit-2.0.0 \
memchr-2.3.3 \
memmap-0.7.0 \
memoffset-0.5.3 \
migrations_internals-1.4.1 \
migrations_macros-1.4.2 \
mime-0.2.6 \
mime-0.3.16 \
mime_guess-1.8.8 \
mime_guess-2.0.3 \
minifb-0.14.0 \
mio-0.6.21 \
mio-extras-2.0.6 \
mio-uds-0.6.7 \
miow-0.2.1 \
mopa-0.2.2 \
multipart-0.15.4 \
net2-0.2.33 \
nix-0.14.1 \
nix-0.15.0 \
nodrop-0.1.14 \
noise-0.6.0 \
nom-4.2.3 \
nom-5.1.1 \
notify-5.0.0-pre.2 \
num-0.1.42 \
num-0.2.1 \
num-bigint-0.2.6 \
num-complex-0.2.4 \
num-derive-0.2.5 \
num-integer-0.1.42 \
num-iter-0.1.40 \
num-rational-0.2.3 \
num-traits-0.1.43 \
num-traits-0.2.11 \
num_cpus-1.12.0 \
objc-0.2.7 \
objc-foundation-0.1.1 \
objc_id-0.1.1 \
ogg-0.7.0 \
once_cell-1.3.1 \
oorandom-11.1.0 \
openssl-probe-0.1.2 \
openssl-sys-0.9.54 \
orbclient-0.3.27 \
ordered-float-1.0.2 \
osmesa-sys-0.1.2 \
owning_ref-0.3.3 \
packed_simd-0.3.3 \
pango-0.4.0 \
pango-sys-0.6.0 \
parking_lot-0.4.8 \
parking_lot-0.9.0 \
parking_lot-0.10.0 \
parking_lot_core-0.2.14 \
parking_lot_core-0.6.2 \
parking_lot_core-0.7.0 \
peeking_take_while-0.1.2 \
percent-encoding-1.0.1 \
percent-encoding-2.1.0 \
petgraph-0.4.13 \
phf-0.7.24 \
phf_codegen-0.7.24 \
phf_generator-0.7.24 \
phf_shared-0.7.24 \
pin-project-0.4.8 \
pin-project-internal-0.4.8 \
pin-project-lite-0.1.4 \
pin-utils-0.1.0-alpha.4 \
piston-float-0.3.0 \
piston-viewport-0.5.0 \
pistoncore-input-0.24.0 \
pkg-config-0.3.17 \
plotters-0.2.12 \
png-0.15.3 \
ppv-lite86-0.2.6 \
pretty_env_logger-0.3.1 \
proc-macro-hack-0.5.11 \
proc-macro-nested-0.1.3 \
proc-macro2-0.3.8 \
proc-macro2-0.4.30 \
proc-macro2-1.0.9 \
prometheus-0.7.0 \
prometheus-static-metric-0.2.0 \
protobuf-2.10.2 \
quick-error-1.2.3 \
quote-0.5.2 \
quote-0.6.13 \
quote-1.0.3 \
radium-0.3.0 \
rand-0.4.6 \
rand-0.5.6 \
rand-0.6.5 \
rand-0.7.3 \
rand_chacha-0.1.1 \
rand_chacha-0.2.2 \
rand_core-0.3.1 \
rand_core-0.4.2 \
rand_core-0.5.1 \
rand_hc-0.1.0 \
rand_hc-0.2.0 \
rand_isaac-0.1.1 \
rand_jitter-0.1.4 \
rand_os-0.1.3 \
rand_pcg-0.1.2 \
rand_pcg-0.2.1 \
rand_xorshift-0.1.1 \
raw-window-handle-0.3.3 \
rayon-1.3.0 \
rayon-core-1.7.0 \
rdrand-0.4.0 \
redox_syscall-0.1.56 \
redox_users-0.3.4 \
regex-1.3.4 \
regex-automata-0.1.9 \
regex-syntax-0.6.16 \
remove_dir_all-0.5.2 \
reqwest-0.10.4 \
ring-0.16.11 \
rodio-0.10.0 \
ron-0.5.1 \
roots-0.0.5 \
rouille-3.0.0 \
route-recognizer-0.1.13 \
rust-argon2-0.6.1 \
rust-argon2-0.7.0 \
rustc-demangle-0.1.16 \
rustc-hash-1.1.0 \
rustc_version-0.2.3 \
rustls-0.17.0 \
rustls-native-certs-0.3.0 \
rusttype-0.7.9 \
rusttype-0.8.2 \
rusty-xinput-1.2.0 \
ryu-1.0.2 \
safemem-0.3.3 \
same-file-1.0.6 \
scan_fmt-0.2.5 \
schannel-0.1.17 \
scoped_threadpool-0.1.9 \
scopeguard-1.1.0 \
sct-0.6.0 \
sdl2-0.32.2 \
sdl2-sys-0.32.6 \
security-framework-0.4.1 \
security-framework-sys-0.4.1 \
semver-0.9.0 \
semver-parser-0.7.0 \
serde-1.0.105 \
serde_derive-1.0.105 \
serde_json-1.0.48 \
serde_qs-0.5.2 \
serde_urlencoded-0.6.1 \
sha1-0.6.0 \
shared_library-0.1.9 \
shlex-0.1.1 \
shred-0.9.4 \
shred-derive-0.6.2 \
shrev-1.1.1 \
siphasher-0.2.3 \
slab-0.4.2 \
smallvec-0.6.13 \
smallvec-1.2.0 \
smithay-client-toolkit-0.4.6 \
smithay-client-toolkit-0.6.6 \
smithay-clipboard-0.4.0 \
specs-0.15.1 \
spin-0.5.2 \
stable_deref_trait-1.1.1 \
static_assertions-0.2.5 \
static_assertions-1.1.0 \
stb_truetype-0.3.1 \
stdweb-0.1.3 \
stdweb-0.4.20 \
stdweb-derive-0.5.3 \
stdweb-internal-macros-0.2.9 \
stdweb-internal-runtime-0.1.5 \
string-0.2.1 \
strsim-0.9.3 \
sum_type-0.2.0 \
svg_fmt-0.2.1 \
syn-0.13.11 \
syn-0.15.44 \
syn-1.0.16 \
synstructure-0.12.3 \
tempdir-0.3.7 \
term-0.5.2 \
termcolor-1.1.0 \
textwrap-0.11.0 \
thread_local-1.0.1 \
threadpool-1.7.1 \
tide-0.6.0 \
tiff-0.3.1 \
time-0.1.42 \
tiny_http-0.6.2 \
tinytemplate-1.0.3 \
tokio-0.1.22 \
tokio-0.2.13 \
tokio-buf-0.1.1 \
tokio-current-thread-0.1.7 \
tokio-executor-0.1.10 \
tokio-io-0.1.13 \
tokio-reactor-0.1.12 \
tokio-rustls-0.13.0 \
tokio-sync-0.1.8 \
tokio-tcp-0.1.4 \
tokio-threadpool-0.1.18 \
tokio-timer-0.2.13 \
tokio-util-0.2.0 \
toml-0.5.6 \
tower-service-0.3.0 \
try-lock-0.2.2 \
tuple_utils-0.3.0 \
twoway-0.1.8 \
unicase-1.4.2 \
unicase-2.6.0 \
unicode-bidi-0.3.4 \
unicode-normalization-0.1.12 \
unicode-width-0.1.7 \
unicode-xid-0.1.0 \
unicode-xid-0.2.0 \
untrusted-0.7.0 \
url-1.7.2 \
url-2.1.1 \
uuid-0.7.4 \
uuid-0.8.1 \
uvth-3.1.1 \
vcpkg-0.2.8 \
vec_map-0.8.1 \
vek-0.9.12 \
vek-0.10.0 \
version_check-0.1.5 \
version_check-0.9.1 \
void-1.0.2 \
walkdir-2.3.1 \
want-0.2.0 \
want-0.3.0 \
wasi-0.9.0+wasi-snapshot-preview1 \
wasm-bindgen-0.2.59 \
wasm-bindgen-backend-0.2.59 \
wasm-bindgen-futures-0.4.9 \
wasm-bindgen-macro-0.2.59 \
wasm-bindgen-macro-support-0.2.59 \
wasm-bindgen-shared-0.2.59 \
wayland-client-0.21.13 \
wayland-client-0.23.6 \
wayland-commons-0.21.13 \
wayland-commons-0.23.6 \
wayland-protocols-0.21.13 \
wayland-protocols-0.23.6 \
wayland-scanner-0.21.13 \
wayland-scanner-0.23.6 \
wayland-sys-0.21.13 \
wayland-sys-0.23.6 \
web-sys-0.3.36 \
webpki-0.21.2 \
webpki-roots-0.18.0 \
winapi-0.2.8 \
winapi-0.3.8 \
winapi-build-0.1.1 \
winapi-i686-pc-windows-gnu-0.4.0 \
winapi-util-0.1.3 \
winapi-x86_64-pc-windows-gnu-0.4.0 \
winit-0.19.5 \
winreg-0.6.2 \
winres-0.1.11 \
ws2_32-sys-0.2.1 \
x11-clipboard-0.5.1 \
x11-dl-2.18.5 \
xcb-0.9.0 \
xdg-2.2.0 \
xml-rs-0.8.0
CARGO_USE_GITHUB= yes
CARGO_USE_GITLAB= yes
CARGO_GIT_SUBDIR= authcommon:authc:authc \
conrod_core:conrod_core:conrod_core \
conrod_core:conrod_winit:backends/conrod_winit
# https://gitlab.com/veloren/veloren/issues/264
CARGO_ENV= RUSTC_BOOTSTRAP=1
# XXX https://github.com/rust-lang/cargo/issues/4101
CARGO_INSTALL_PATH= chat-cli server-cli voxygen
post-extract:
# XXX https://gitlab.com/gitlab-org/gitlab/issues/15079
# Replace LFS placeholders with data from a LOCAL snapshot
@${RM} -r ${WRKSRC}/assets
@${MV} ${WRKDIR}/assets ${WRKSRC}
post-patch:
# .git/ directory is missing, so don't abort if git binary is also missing
@${REINPLACE_CMD} -e 's/"git"/"${TRUE}"/' \
${WRKSRC}/common/build.rs
# Extract (snapshot) version from the port instead of empty file
@${REINPLACE_CMD} -e '/GIT_HASH/s/=.*/= "${DISTVERSIONFULL}";/' \
-e "/GIT_DATE/s/=.*/= \"$$(date -r $$(${AWK} '/TIMESTAMP/ { print $$3 }' \
${DISTINFO_FILE}) +'%Y-%m-%d-%H:%M')\";/" \
${WRKSRC}/common/src/util/mod.rs
# Respect PREFIX != /usr/local for system assets
@${REINPLACE_CMD} -e 's,/usr/share,${DATADIR:H},' \
${WRKSRC}/common/src/assets/mod.rs
# lang/python3 cannot be used as a dependency
@${REINPLACE_CMD} -e 's/"python3"/"${PYTHON_CMD:T}"/' \
${WRKSRC}/cargo-crates/xcb-*/build.rs
post-install:
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/*
(cd ${WRKSRC} && ${COPYTREE_SHARE} assets ${STAGEDIR}${DATADIR})
${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/192x192/apps
${INSTALL_DATA} ${DISTDIR}/android-icon-192x192.png \
${STAGEDIR}${PREFIX}/share/icons/hicolor/192x192/apps/${PORTNAME}.png
.include <bsd.port.mk>