Files
2026-06-15 08:39:25 -04:00

122 lines
4.9 KiB
Tcl
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- 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
PortGroup cmake 1.0
github.setup IoLanguage io 2017.09.06
# Change github.tarball_from to 'releases' or 'archive' next update
github.tarball_from tarball
revision 10
name Io
categories lang
# mostly BSD, but some LGPL and GPL files
license GPL-2
platforms macosx
maintainers {mark @markemer} openmaintainer
description Io is small prototype-based programming language
long_description {*}${description}. The ideas in Io are mostly inspired \
by Smalltalk (all values are objects), Self, \
NewtonScript and Act1 (prototype-based differential \
inheritance, actors and futures for concurrency), \
LISP (code is a runtime inspectable / modifiable \
tree) and Lua (small, embeddable).
homepage http://www.iolanguage.com/
checksums rmd160 ebf5d206b115329456df169aaaad33f431a92bfc \
sha256 febf9b6f4174e3d9fee179b5d41a81dba8b9660ece7a1cecee7452f5e9e460ea \
size 9154022
depends_lib path:lib/pkgconfig/cairo.pc:cairo \
port:freetype \
path:lib/pkgconfig/glib-2.0.pc:glib2 \
port:gmp \
path:include/turbojpeg.h:libjpeg-turbo \
port:libedit \
port:libevent \
port:libffi \
port:libiconv \
port:libidn \
port:libmemcached \
port:libogg \
port:libpng \
port:libsndfile \
port:libtheora \
port:libvorbis \
port:libxml2 \
port:loudmouth \
port:lzo2 \
port:ncurses \
path:lib/libssl.dylib:openssl \
port:ossp-uuid \
path:lib/pkgconfig/pango.pc:pango \
port:pcre \
port:python37 \
port:readline \
port:sqlite3 \
port:tiff \
port:yajl \
port:zlib
patchfiles Cairo-clang-warnings.patch \
EditLine-clang-warnings.patch \
Foundation.patch \
IoImage-clang-warnings.patch \
SHA1-clang-warnings.patch \
version.patch \
AppleSMC.h-fix-includes.patch
# Io2Objc.m: error: '-fobjc-exceptions' is required to enable Objective-C exception syntax
if {[string match *gcc* ${configure.compiler}]} {
patchfiles-append CMakeLists-fix-ObjC.patch
}
if {${configure.build_arch} ni [list i386 x86_64]} {
# https://github.com/IoLanguage/io/issues/474
patchfiles-append CMakeLists-drop-breaking-simd-flag.patch
}
configure.python ${prefix}/bin/python3.7
# AppleSMC.h: error: expected =, ,, ;, asm or __attribute__ before flag
compiler.blacklist-append \
*gcc-4.0 *gcc-4.2
# Builds currently fail on apple silicon even in universal mode
supported_archs ppc ppc64 i386 x86_64
universal_variant no
# ../../_build/binaries/io_static: No such file or directory
use_parallel_build no
post-destroot {
set libstofix \
[list libIoObjcBridge.dylib \
libIoOpenGL.dylib \
libIoRegex.dylib \
libIoTheora.dylib \
libIoVorbis.dylib]
fs-traverse destlib ${destroot}${prefix}/lib {
if {[file isfile ${destlib}] && [file extension ${destlib}] == ".dylib"} {
set lib [strsed ${destlib} "s|^${destroot}||"]
set cmd "install_name_tool -id '${lib}'"
if {[lsearch ${libstofix} [file tail ${destlib}]] > -1} {
foreach linkedlibname {Blowfish Box MD5 Ogg Range Socket SystemCall Yajl} {
set linkedlib "libIo${linkedlibname}.dylib"
append cmd " -change '${prefix}/lib/${linkedlib}' '${prefix}/lib/io/addons/${linkedlibname}/_build/dll/${linkedlib}'"
}
}
append cmd " '${destlib}'"
ui_debug "Assembled command: '${cmd}'"
system "${cmd}"
}
}
}
test.run yes
test.cmd ${worksrcpath}/_build/binaries/io_static ${worksrcpath}/libs/iovm/tests/correctness/run.io
test.target