mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
177 lines
7.1 KiB
Tcl
177 lines
7.1 KiB
Tcl
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
|
|
|
|
PortSystem 1.0
|
|
PortGroup github 1.0
|
|
|
|
name redeclipse
|
|
set pretty_name "Red Eclipse"
|
|
version 1.6.0
|
|
revision 1
|
|
categories games
|
|
maintainers @jasonliu--
|
|
|
|
homepage https://www.${name}.net
|
|
description first-person arena shooter game
|
|
long_description {*}$pretty_name is a fun-filled new take on the \
|
|
first-person arena shooter, built on the Cube 2 \
|
|
game engine. Game modes include Capture the Flag, \
|
|
Defend and Control, Bomber Ball, and Race, as well \
|
|
as online cooperative map editing. Unlike the \
|
|
original Cube 2: Sauerbraten, {*}$pretty_name \
|
|
features parkour movement, such as vaulting and \
|
|
running along walls, as well as impulse boosts, \
|
|
dashing, and other tricks.
|
|
subport ${name}-data { description game data for $pretty_name }
|
|
|
|
set gamedata_path ${prefix}/share/${name}
|
|
|
|
if {$subport eq ${name}} {
|
|
PortGroup cmake 1.1
|
|
PortGroup app 1.0
|
|
|
|
github.setup ${name} base ${version} v
|
|
# Change github.tarball_from to 'releases' or 'archive' next update
|
|
github.tarball_from tarball
|
|
license zlib
|
|
|
|
checksums rmd160 2a36e97ebe3e151c835cffdfee12515d83d4d8c8 \
|
|
sha256 56106b819f32f4d82709ebb3bfc6e8648e88c7fc191f6f0a287a31f3f7612aad \
|
|
size 13847298
|
|
|
|
depends_build-append port:pkgconfig
|
|
depends_lib-append port:zlib \
|
|
port:libsdl2 \
|
|
port:libsdl2_image \
|
|
port:libsdl2_mixer
|
|
depends_run-append port:${name}-data
|
|
|
|
worksrcdir ${distname}/src
|
|
|
|
post-patch {
|
|
foreach re [list \
|
|
{s|xcode/main.m||} \
|
|
{/set.BIN_SUFFIX.*_osx/s/_osx//} \
|
|
{/set.targets.*genkey/s/ genkey.*)/)/} \
|
|
{s|(DESTINATION ).*$|\1${CMAKE_INSTALL_PREFIX}/bin/|} \
|
|
] {
|
|
reinplace -E $re ${worksrcpath}/CMakeLists.txt
|
|
}
|
|
|
|
# If this port is being built on a system that also has the
|
|
# mesa port installed, there's a high likelihood of the build
|
|
# finding mesa's OpenGL implementation instead of the built-in
|
|
# macOS framework, which will cause the game to fail to load.
|
|
# So we make modifications to help ensure that the build finds
|
|
# the macOS framework.
|
|
foreach re [list \
|
|
{/set.client_deps/s/ gl//} \
|
|
"/find_library.COCOA_LIBRARY/a\\
|
|
\\ find_library(OPENGL_LIBRARY OpenGL)\\
|
|
" \
|
|
{/target_link_lib.*COCOA_LIB/s/)/ $\{OPENGL_LIBRARY\})/} \
|
|
] {
|
|
reinplace $re ${worksrcpath}/CMakeLists.txt
|
|
}
|
|
}
|
|
|
|
app.name ${name}
|
|
app.icon xcode/${name}.icns
|
|
app.retina yes
|
|
app.use_launch_script yes
|
|
|
|
post-destroot {
|
|
move ${destroot}${applications_dir}/${name}.app \
|
|
${destroot}${applications_dir}/${pretty_name}.app
|
|
set app_contents ${applications_dir}/${pretty_name}.app/Contents
|
|
xinstall -m 644 \
|
|
${worksrcpath}/../bin/${name}.app/Contents/Info.plist \
|
|
${destroot}$app_contents/
|
|
reinplace -E \
|
|
"/IconFile/,/DictionaryVersion/s/\(${name}\)/\\1.icns/" \
|
|
${destroot}$app_contents/Info.plist
|
|
foreach d [list config data doc] {
|
|
ln -s $gamedata_path/$d ${destroot}$app_contents/Resources/
|
|
}
|
|
|
|
foreach bin_name [list ${name} ${name}_server] {
|
|
# The actual binary executables will live inside the
|
|
# application bundle's Resources directory
|
|
xinstall ${build.dir}/$bin_name \
|
|
${destroot}$app_contents/Resources/
|
|
|
|
# Instead of using the launch script that comes with the
|
|
# source code (which, inexplicably, is a (ba)sh script that
|
|
# calls osascript to 'tell application Terminal to do
|
|
# script' to call the binary executable), we write our own.
|
|
# The following script is adapted from the launch script
|
|
# used by the Debian package of redeclipse.
|
|
foreach path [list \
|
|
${destroot}$app_contents/MacOS \
|
|
${destroot}${prefix}/bin \
|
|
] {
|
|
set fp [open $path/$bin_name w]
|
|
puts $fp "#!/bin/sh"
|
|
puts $fp "executable_name=`basename \"\$0\"`"
|
|
puts $fp "for arg; do"
|
|
puts $fp "\tif \[ \"\$arg\" = --help \]; then"
|
|
if {$bin_name eq "${name}_server"} {
|
|
puts $fp "\t\texec man ${name}-server"
|
|
} else {
|
|
puts $fp "\t\texec man \"\$executable_name\""
|
|
}
|
|
puts $fp "\tfi"
|
|
puts $fp "done"
|
|
puts $fp "cd \"$app_contents/Resources/\" || exit 1"
|
|
puts $fp "exec \"./\$executable_name\" \"\$@\""
|
|
close $fp
|
|
file attributes $path/$bin_name -permissions +x
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if {$subport eq "${name}-data"} {
|
|
github.setup ${name} base ${version} v
|
|
github.tarball_from releases
|
|
use_bzip2 yes
|
|
license CC-BY-SA-3
|
|
supported_archs noarch
|
|
platforms any
|
|
|
|
distfiles ${name}_${version}_combined${extract.suffix}
|
|
distname ${name}-${version}
|
|
checksums rmd160 290f3d40c38e8c8b21f7261ab90cecbe99ba73e9 \
|
|
sha256 5a14ffd5297e8471cbbe5fe77297945c756361e0fd0f3febf94c1d17004b4aa9 \
|
|
size 906217329
|
|
|
|
use_configure no
|
|
build {}
|
|
destroot {
|
|
xinstall -d ${destroot}$gamedata_path
|
|
copy {*}[glob -directory ${worksrcpath} \
|
|
config data doc readme.txt branch.txt] \
|
|
${destroot}$gamedata_path/
|
|
|
|
set cap_appname [string toupper ${name}]
|
|
foreach bin_name [list ${name} ${name}-server] {
|
|
move ${destroot}$gamedata_path/doc/man/${bin_name}.6.am \
|
|
${destroot}$gamedata_path/doc/man/${bin_name}.6
|
|
# Make substitutions for the man pages. Adapted from the
|
|
# 'system-install-docs' target in the
|
|
# ${worksrcpath}/src/system-install.mk makefile.
|
|
foreach re [list \
|
|
"s|@LIBEXECDIR@/@APPNAME@|${applications_dir}/${pretty_name}.app/Contents/Resources|g" \
|
|
"s|@DATADIR@|${prefix}/share|g" \
|
|
"s|@DOCDIR@/@APPNAME@|$gamedata_path/doc|g" \
|
|
"s|@APPNAME@|${name}|g;s|@CAPPNAME@|$cap_appname|g" \
|
|
] {
|
|
reinplace -q $re \
|
|
${destroot}$gamedata_path/doc/man/${bin_name}.6
|
|
}
|
|
move ${destroot}$gamedata_path/doc/man/${bin_name}.6 \
|
|
${destroot}${prefix}/share/man/man6/
|
|
}
|
|
delete ${destroot}$gamedata_path/doc/man
|
|
}
|
|
}
|