# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4

PortSystem      1.0

name            libsdl2
set my_name     SDL2
version         2.0.9
categories      devel multimedia
platforms       macosx freebsd
license         zlib
maintainers     {jmr @jmroot} openmaintainer
description     Cross-platform multi-media development API

long_description \
    Simple DirectMedia Layer is a cross-platform development library \
    designed to provide low level access to audio, keyboard, mouse, \
    joystick, and graphics hardware via OpenGL and Direct3D.

homepage        http://www.libsdl.org/
master_sites    ${homepage}release/
distname        ${my_name}-${version}

# 2.0.3
# checksums       rmd160  e6f3718c7366c5da793c1454cf0ec0972e8bd347 \
#                 sha256  a5a69a6abf80bcce713fa873607735fe712f44276a7f048d60a61bb2f6b3c90c
# 2.0.4
# checksums           rmd160  8eb8f46149927177f1bca43d0da8a54b52269493 \
#                     sha256  da55e540bf6331824153805d58b590a29c39d2d506c6d02fa409aedeab21174b \
#                     size    4136230
# 2.0.6
# checksums           rmd160  24f69367f70a8c2c43b766f7d3fbada8f7d7a52b \
#                     sha256  03658b5660d16d7b31263a691e058ed37acdab155d68dabbad79998fb552c5df \
#                     size    4420311
# 2.0.9
checksums           rmd160  db2efabf55af41cddf015db0b5213b11ef22b9d0 \
                    sha256  255186dc676ecd0c1dbf10ec8a2cc5d6869b5079d8a38194c2aecdff54b324b1 \
                    size    5246942

patch.pre_args            -p1
configure.args-append     --without-x

compiler.c_standard 2011
compiler.cxx_standard 2011
compiler.whitelist macports-gcc-7

platform darwin 8 {
    patchfiles-append         patch-SDL2-2.0.3_OSX_104.diff

    # the joystick code in sdl 2.0.3 is based on APIs for 10.5+ only

    ######### option 1 disable joystick code ##################

#    configure.args-append     --disable-joystick

    ######### option 2  try to enable joystick using old joystick code from 2.0.1 ##############

    # copy joystick code from 2.0.1 into 2.0.3 source tree
    post-patch {
        delete ${worksrcpath}/src/joystick/darwin/SDL_sysjoystick.c
        delete ${worksrcpath}/src/joystick/darwin/SDL_sysjoystick_c.h
        copy ${portpath}/${filesdir}/SDL_sysjoystick_c.h ${worksrcpath}/src/joystick/darwin
        copy ${portpath}/${filesdir}/SDL_sysjoystick.c ${worksrcpath}/src/joystick/darwin
    }
    # needs extra framwork to support older joystick controller
    configure.ldflags-append  -framework ForceFeedback

    # work around bug in headers - this should be in a ppc only block
    configure.cflags-append   -faltivec

################################################################

    # either way, with or without joystick above, haptic code is not needed
    # 10.4 version has it included in the ForceFeedback framework
    configure.args-append     --disable-haptic
}

platform darwin 9 powerpc {
    patchfiles-append         	patch-SDL_syswm.h.diff \
    							patch-SDL_platform.h.diff \
    							patch-SDL_cocoaevents.m.diff \
    							patch-SDL_cocoaclipboard.m.diff \
    							patch-SDL_cocoawindow.h.diff \
    							patch-SDL_cocoawindow.m.diff \
    							patch-SDL_cocoaopengl.m.diff \
    							patch-SDL_cocoamodes.m.diff \
    							patch-SDL_sysjoystick.c.diff \
    							patch-SDL_cocoavideo.h.diff \
    							patch-SDL_cocoakeyboard.m.diff \
    							patch-SDL_cocoamessagebox.m.diff \
    							patch-SDL_cocoamodes.h.diff \
    							patch-configure.diff \
    							patch-SDL_cocoamouse.m.diff \
    							patch-SDL_cocoashape.m.diff \
    							patch-SDL_cocoaopengl.h.diff \
    							patch-SDL_config_macosx.h.diff \
    							patch-SDL_cocoavideo.m.diff \
    							patch-SDL_sysjoystick_c.h.diff \
    							patch-SDL_rwopsbundlesupport.m.diff \
    							patch-SDL_sysfilesystem.m.diff
}

platform darwin 10 powerpc {
    patchfiles-append         	patch-SDL_syswm.h.diff \
    							patch-SDL_platform.h.diff \
    							patch-SDL_cocoaevents.m.diff \
    							patch-SDL_cocoaclipboard.m.diff \
    							patch-SDL_cocoawindow.h.diff \
    							patch-SDL_cocoawindow.m.diff \
    							patch-SDL_cocoaopengl.m.diff \
    							patch-SDL_cocoamodes.m.diff \
    							patch-SDL_sysjoystick.c.diff \
    							patch-SDL_cocoavideo.h.diff \
    							patch-SDL_cocoakeyboard.m.diff \
    							patch-SDL_cocoamessagebox.m.diff \
    							patch-SDL_cocoamodes.h.diff \
    							patch-configure.diff \
    							patch-SDL_cocoamouse.m.diff \
    							patch-SDL_cocoashape.m.diff \
    							patch-SDL_cocoaopengl.h.diff \
    							patch-SDL_config_macosx.h.diff \
    							patch-SDL_cocoavideo.m.diff \
    							patch-SDL_sysjoystick_c.h.diff \
    							patch-SDL_rwopsbundlesupport.m.diff \
    							patch-SDL_sysfilesystem.m.diff
}

variant x11 {
    configure.args-delete --without-x
    configure.args-append --x-includes=${prefix}/include \
                          --x-libraries=${prefix}/lib \
                          --disable-x11-shared
    depends_lib-append \
        port:xorg-libX11 \
        port:xorg-libXcursor \
        port:xorg-libXext \
        port:xorg-libXi \
        port:xorg-libXinerama \
        port:xorg-libXrandr \
        port:xorg-libXScrnSaver \
        port:xorg-libXxf86vm \
        port:xrender
}
if {${os.subplatform} ne "macosx"} {
    default_variants +x11
}

post-destroot {
    set docdir ${prefix}/share/doc/${name}
    xinstall -d ${destroot}${docdir}
    xinstall -m 0644 -W ${worksrcpath} BUGS.txt COPYING.txt CREDITS.txt \
        README.txt README-SDL.txt TODO.txt WhatsNew.txt \
        ${destroot}${docdir}
}

livecheck.type  regex
livecheck.url   ${homepage}download-2.0.php
livecheck.regex ${my_name}-(\\d+(?:\\.\\d+)*)
