Ticket #50697: VLC+ffmpeg.diff

File VLC+ffmpeg.diff, 49.4 KB (added by RJVB (René Bertin), 8 years ago)
  • multimedia/VLC/Portfile

    old new  
    11# -*- coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:et:sw=4:ts=4:sts=4
    2 # $Id: Portfile 148228 2016-04-30 17:55:10Z mps@macports.org $
     2# $Id: Portfile 146115 2016-02-28 16:09:05Z devans@macports.org $
    33
    4 PortSystem          1.0
    5 PortGroup           compiler_blacklist_versions 1.0
    6 PortGroup           active_variants 1.1
    7 
    8 # TODO
    9 # if {[file exists ${prefix}/etc/macports/locales.tcl]} {
    10 #     # experimental feature to cut down the NLS/locale files, which take up over 50% of
    11 #     # the install footprint for VLC. This feature loads the locale_select PortGroup
    12 #     # if its configuration file exist; a variant is then added which prunes all translations from
    13 #     # ${destroot}${prefix}/share/locale except those whitelisted in etc/macports/locales.tcl .
    14 #     PortGroup       locale_select 1.0
    15 # }
    16 
    17 name                VLC
    18 version             2.2.2
    19 revision            4
    20 
    21 categories          multimedia devel
    22 maintainers         nomaintainer
    23 
    24 description         VLC is a cross-platform media player and streaming server
    25 long_description    VLC media player is a highly portable multimedia player for \
    26                     various audio and video formats (MPEG-1, MPEG-2, MPEG-4, DivX, \
    27                     mp3, ogg, ...) as well as DVDs, VCDs, and various streaming protocols. \
    28                     It can also be used as a server to stream in unicast or multicast \
    29                     in IPv4 or IPv6 on a high-bandwidth network.
     4PortSystem              1.0
     5PortGroup               compiler_blacklist_versions 1.0
     6PortGroup               active_variants 1.1
     7PortGroup               conflicts_build 1.0
    308
    31 homepage            http://www.videolan.org
     9if {[file exists ${prefix}/etc/macports/locales.tcl]} {
     10    # experimental feature to cut down the NLS/locale files, which take up over 50% of
     11    # the install footprint for VLC. This feature loads the locale_select PortGroup
     12    # if its configuration file exist; a variant is then added which prunes all translations from
     13    # ${destroot}${prefix}/share/locale except those whitelisted in etc/macports/locales.tcl .
     14    PortGroup           locale_select 1.0
     15}
     16
     17name                    VLC
     18
     19categories              multimedia devel
     20maintainers             gmail.com:rjvbertin openmaintainer
     21
     22description             VLC is a cross-platform media player and streaming server
     23long_description        VLC media player is a highly portable multimedia player for \
     24                        various audio and video formats (MPEG-1, MPEG-2, MPEG-4, DivX, \
     25                        mp3, ogg, ...) as well as DVDs, VCDs, and various streaming protocols. \
     26                        It can also be used as a server to stream in unicast or multicast \
     27                        in IPv4 or IPv6 on a high-bandwidth network.
     28
     29homepage                http://www.videolan.org
    3230
    33 subport             lib${name} {
     31subport lib${name} {
    3432    maintainers         gmail.com:rjvbertin openmaintainer
    3533    description         the core engine and interface to VLC's multimedia framework
    3634    long_description    libVLC is the core engine and the interface to the multimedia \
     
    4038    homepage            http://www.videolan.org/vlc/libvlc.html
    4139}
    4240
     41subport ffmpeg-VLC {}
     42set FFMPEG_VLC_PREFIX   ${prefix}/lib/vlc/ffmpeg
     43
    4344if {${subport} eq ${name}} {
    4445    conflicts           lib${name} libVLC-devel VLC-devel
    4546}
    4647
    47 license             GPL-2
     48# VLC-2.1 and later are x86_64-only: https://trac.videolan.org/vlc/ticket/8161
     49universal_variant       no
     50supported_archs         x86_64
    4851
    49 platforms           darwin
     52##
     53###################  ports VLC and libVLC  ###################
     54##
     55if {(${subport} eq ${name}) || (${subport} eq "lib${name}")} {
     56    version             2.2.3
     57    license             GPL-2
     58
     59    platforms           darwin
     60
     61    master_sites        http://download.videolan.org/pub/videolan/vlc/${version}/
     62    distname            vlc-${version}
     63    use_xz              yes
     64
     65    checksums           rmd160  8c6d4194da37210fe409c965f430898fbe7f2416 \
     66                        sha256  b9d7587d35f13c3c981964c8cc8b03f1c7c8edf528be476b3ca1d2efedd5bf5b
     67
     68    # Enable HFS compression.
     69    if {[file exists ${prefix}/bin/bsdtar]} {
     70#         depends_extract-append      port:libarchive
     71        extract.post_args \
     72                        "| ${prefix}/bin/bsdtar -x --hfsCompression"
     73    }
    5074
    51 master_sites        http://download.videolan.org/pub/videolan/vlc/${version}/
    52 distname            vlc-${version}
    53 use_xz              yes
    54 
    55 checksums           rmd160  ff302536334622427e06250457c74f061d4329f8 \
    56                     sha256  9ad23128be16f9b40ed772961272cb0748ed8e4aa1bc79c129e589feebea5fb5
    57 
    58 # Enable HFS compression.
    59 depends_extract-append      port:libarchive
    60 extract.post_args           "| bsdtar -x --hfsCompression"
    61 
    62 depends_build       port:pkgconfig
    63 
    64 depends_lib         port:a52dec \
    65                     port:avahi \
    66                     port:bzip2 \
    67                     port:faad2 \
    68                     path:lib/libavcodec.dylib:ffmpeg \
    69                     port:flac \
    70                     port:fluidsynth \
    71                     port:fontconfig \
    72                     port:freetype \
    73                     port:fribidi \
    74                     port:gettext \
    75                     path:lib/pkgconfig/glib-2.0.pc:glib2 \
    76                     port:gmp \
    77                     port:gnutls \
    78                     port:jpeg \
    79                     port:lame \
    80                     port:libass \
    81                     port:libbluray \
    82                     port:libcddb \
    83                     port:libcdio \
    84                     port:libdc1394 \
    85                     port:libdca \
    86                     port:libdvbpsi \
    87                     port:libdvdnav \
    88                     port:libdvdread \
    89                     port:libebml \
    90                     port:libgcrypt \
    91                     port:libgpg-error \
    92                     port:libiconv \
    93                     port:libid3tag \
    94                     port:libidn \
    95                     port:libmad \
    96                     port:libmatroska \
    97                     port:libmodplug \
    98                     port:libmpcdec \
    99                     port:libmpeg2 \
    100                     port:libmtp \
    101                     port:libogg \
    102                     port:libopus \
    103                     port:libpng \
    104                     port:libproxy \
    105                     port:libsamplerate \
    106                     port:libsdl \
    107                     port:libsdl_image \
    108                     port:libsndfile \
    109                     port:libssh2 \
    110                     port:libtheora \
    111                     port:libupnp \
    112                     port:libusb \
    113                     port:libvorbis \
    114                     port:libvpx \
    115                     port:libxml2 \
    116                     port:live555 \
    117                     port:ncurses \
    118                     port:nettle \
    119                     port:opencv \
    120                     port:openjpeg15 \
    121                     path:lib/libssl.dylib:openssl \
    122                     port:orc \
    123                     port:p11-kit \
    124                     port:readline \
    125                     port:schroedinger \
    126                     port:speex \
    127                     port:taglib \
    128                     port:tiff \
    129                     port:twolame \
    130                     port:vcdimager \
    131                     port:x264 \
    132                     port:x265
    133 
    134 # the +qt5 and/or +qt4 variants of port:opencv currently lead to build errors
    135 pre-configure {
    136     if {![active_variants opencv "" {qt4 qt5}]} {
    137         ui_error "${subport} cannot currently be built against port:opencv with the qt4 or qt5 variant.\
    138         Install port:opencv without either qt variant and try again. This is only a build conflict; \
    139         after building you can reactivate your preferred opencv variant"
    140         return -code error "Install or activate port:opencv without a qt variant before building ${subport}"
     75    depends_build       port:pkgconfig
     76
     77    depends_lib         path:${FFMPEG_VLC_PREFIX}/lib/libavcodec.dylib:ffmpeg-VLC \
     78                        port:a52dec \
     79                        port:avahi \
     80                        port:bzip2 \
     81                        port:faad2 \
     82                        port:flac \
     83                        port:fluidsynth \
     84                        port:fontconfig \
     85                        port:freetype \
     86                        port:fribidi \
     87                        port:gettext \
     88                        path:lib/pkgconfig/glib-2.0.pc:glib2 \
     89                        port:gmp \
     90                        port:gnutls \
     91                        port:jpeg \
     92                        port:lame \
     93                        port:libass \
     94                        port:libbluray \
     95                        port:libcddb \
     96                        port:libcdio \
     97                        port:libdc1394 \
     98                        port:libdca \
     99                        port:libdvbpsi \
     100                        port:libdvdnav \
     101                        port:libdvdread \
     102                        port:libebml \
     103                        port:libgcrypt \
     104                        port:libgpg-error \
     105                        port:libiconv \
     106                        port:libid3tag \
     107                        port:libidn \
     108                        port:libmad \
     109                        port:libmatroska \
     110                        port:libmodplug \
     111                        port:libmpcdec \
     112                        port:libmpeg2 \
     113                        port:libmtp \
     114                        port:libogg \
     115                        port:libopus \
     116                        port:libpng \
     117                        port:libproxy \
     118                        port:libsamplerate \
     119                        port:libsdl \
     120                        port:libsdl_image \
     121                        port:libsndfile \
     122                        port:libssh2 \
     123                        port:libtheora \
     124                        port:libupnp \
     125                        port:libusb \
     126                        port:libvorbis \
     127                        port:libvpx \
     128                        port:libxml2 \
     129                        port:live555 \
     130                        port:ncurses \
     131                        port:nettle \
     132                        port:openjpeg15 \
     133                        path:lib/libssl.dylib:openssl \
     134                        port:orc \
     135                        port:p11-kit \
     136                        port:readline \
     137                        port:schroedinger \
     138                        port:speex \
     139                        port:taglib \
     140                        port:tiff \
     141                        port:twolame \
     142                        port:vcdimager \
     143                        port:x264 \
     144                        port:x265
     145
     146    pre-fetch {
     147        if {${os.platform} eq "darwin" && ${os.major} < 10} {
     148            ui_error "${name} ${version} requires Mac OS X 10.6 or greater."
     149            return -code error "incompatible Mac OS X version"
     150        }
    141151    }
    142 }
    143152
    144 # VLC 2.2.2 should have full Lua 5.3 compatibility, for now, depend on port:lua52
    145 # That requires the patch-for-lua52.diff which is appended to patchfiles below.
    146 # update 2.2.2 : lua 5.3 gives compiler syntax errors so we stick with 5.2 for now.
    147 depends_lib-append  port:lua52
    148 # depends_lib-append  port:lua
     153# port:opencv depends on port:ffmpeg and thus enters in conflict with us depending on our own ffmpeg build
     154# 1 viable solution as long as this is the case: drop the opencv filter.
     155#     depends_lib-append  port:opencv
     156#     # the +qt5 and/or +qt4 variants of port:opencv currently lead to build errors. A patch has
     157#     # been submitted (but not included) that resolves the issue for qt4, not yet for qt5.
     158#     # https://trac.macports.org/ticket/50709
     159#     # For regular users a single check in the pre-fetch would suffice, but this maintainer
     160#     # needs the check at other opportune moments too.
     161#     proc check_opencv {} {
     162#         global subport
     163#         if {![active_variants opencv "" {qt4 qt5}]} {
     164#             ui_error "${subport} cannot currently be built against port:opencv with the qt5 variant.\
     165#             Install port:opencv without that variant and try again. This is only a build conflict; \
     166#             after building you can reactivate your preferred opencv variant"
     167#             return -code error "Install or activate port:opencv without the qt5 variant before building ${subport}"
     168#         }
     169#     }
     170#     pre-fetch {
     171#         check_opencv
     172#     }
     173#     pre-configure {
     174#         check_opencv
     175#     }
     176#     pre-build {
     177#         check_opencv
     178#     }
     179#     patchfiles-append   patch-opencv_includes.diff
     180#     # The opencv example apparently builds on 10.11 but I'm having issues with it on 10.9
     181#     # it doesn't appear to be indispensable, so simply skip it.
     182#     patchfiles-append   patch-no-opencv_example.diff
     183
     184    # VLC 2.2.2 should have full Lua 5.3 compatibility, for now, depend on port:lua52
     185    # That requires the patch-for-lua52.diff which is appended to patchfiles below.
     186    # update 2.2.2 : lua 5.3 gives compiler syntax errors so we stick with 5.2 for now.
     187    depends_lib-append  port:lua52
     188    # depends_lib-append  port:lua
     189
     190    # VLC doesn't currently build for me using port:clang-3.8
     191    compiler.blacklist-append \
     192                        gcc-4.2 llvm-gcc-4.2 macports-clang-3.8 {clang < 300}
     193
     194    patchfiles          buildfix-package.mak.patch \
     195                        configure.ac-no-arch.patch \
     196                        PR-34741-no__clang_version__.patch \
     197                        static_assert.patch \
     198                        no-sparkle.patch \
     199                        patch-vlc-no-O4.diff
    149200
    150 # VLC-2.1 and later are x86_64-only: https://trac.videolan.org/vlc/ticket/8161
    151 universal_variant   no
    152 supported_archs     x86_64
     201    post-patch {
     202        reinplace "s:librsvg-2/librsvg:librsvg:" \
     203            ${worksrcpath}/modules/text_renderer/svg.c
    153204
    154 compiler.blacklist  gcc-4.2 llvm-gcc-4.2 {clang < 300}
     205        if {[string match *clang* ${configure.cxx}] && ${configure.cxx_stdlib} == "libc++"} {
     206            reinplace "s:-lstdc\+\+:-lc++:" \
     207                ${worksrcpath}/configure.ac \
     208                ${worksrcpath}/modules/access/Makefile.am
     209        }
     210        # patch source using ffmpeg to use the correct header file locations
     211        foreach dir {libavcodec libavformat libavresample libavutil libpostproc libswresample libswscale} {
     212            foreach module {access codec/avcodec demux/avformat hw/vdpau packetizer video_chroma} {
     213                foreach cf [glob -nocomplain ${worksrcpath}/modules/${module}/*.c] {
     214                    reinplace "s|${dir}/|${dir}-VLC/|g" ${cf}
     215                }
     216                foreach cf [glob -nocomplain ${worksrcpath}/modules/${module}/*.h] {
     217                    reinplace "s|${dir}/|${dir}-VLC/|g" ${cf}
     218                }
     219            }
     220            reinplace "s|libpostproc/|libpostproc-VLC/|g" ${worksrcpath}/modules/video_filter/postproc.c
     221            reinplace "s|${dir}/|${dir}-VLC/|g" ${worksrcpath}/configure.ac ${worksrcpath}/configure
     222            reinplace "s|HAVE_LIBAVUTIL_AV|HAVE_LIBAVUTIL_VLC_AV|g" \
     223                    ${worksrcpath}/modules/codec/avcodec/avcommon.h \
     224                    ${worksrcpath}/modules/codec/avcodec/avcommon_compat.h
     225            reinplace "s|HAVE_LIBAVFORMAT_AV|HAVE_LIBAVFORMAT_VLC_AV|g" \
     226                    ${worksrcpath}/modules/codec/avcodec/avcommon.h \
     227                    ${worksrcpath}/modules/codec/avcodec/avcommon_compat.h
     228            reinplace "s|HAVE_LIBAVCODEC_AV|HAVE_LIBAVCODEC_VLC_AV|g" \
     229                    ${worksrcpath}/modules/codec/avcodec/avcommon.h \
     230                    ${worksrcpath}/modules/codec/avcodec/avcommon_compat.h
     231            reinplace "s|HAVE_LIBSWSCALE_SW|HAVE_LIBSWSCALE_VLC_SW|g" \
     232                    ${worksrcpath}/modules/codec/avcodec/avcommon.h \
     233                    ${worksrcpath}/modules/codec/avcodec/avcommon_compat.h
     234        }
     235    }
     236    post-configure {
     237        system -W ${worksrcpath} "patch -Np0 -i ${filespath}/patch-static_assert.diff"
     238    }
    155239
    156 pre-fetch {
    157     if {${os.platform} eq "darwin" && ${os.major} < 10} {
    158         ui_error "${name} ${version} requires Mac OS X 10.6 or greater."
    159         return -code error "incompatible Mac OS X version"
     240    use_autoreconf      yes
     241    autoreconf.cmd      ./bootstrap
     242    autoreconf.pre_args
     243    autoreconf.args
     244    depends_build-append port:libtool port:autoconf port:automake
     245
     246    configure.env-append \
     247                        CXXCPP="${configure.cxx} -E"
     248    # splice in ffmpeg-VLC's pkgconfig path, hoping that PKG_CONFIG_PATH hasn't been set by anyone else
     249    configure.env-append \
     250                        PKG_CONFIG_PATH=${FFMPEG_VLC_PREFIX}/lib/pkgconfig
     251    build.args-append   DESTDIR=${worksrcpath}/dest_ignore V=1
     252
     253    # gl.c:121:3: error: Platform not recognized.
     254    configure.cppflags-append -D__unix__=1
     255
     256    # live555 is installed to a weird location
     257    configure.cppflags-append -I${prefix}/lib/live/liveMedia/include
     258
     259    build.target        all
     260    destroot.target     install
     261
     262    livecheck.url       http://download.videolan.org/pub/videolan/vlc/
     263    livecheck.regex     <a href=\"(\\d\[\\d|\.|\\w\]+).*/\">
     264
     265    # Other
     266    configure.args-append \
     267                        --with-contrib=${worksrcpath}/contrib \
     268                        --disable-debug --disable-update-check --enable-gnutls \
     269                        --disable-notify --disable-dbus --enable-lua \
     270                        --disable-gnomevfs --disable-growl --disable-macosx-vlc-app
     271
     272    # Input Plugins
     273    configure.args-append \
     274                        --enable-dvdnav --enable-dvdread --disable-smbclient --enable-vcdx \
     275                        --disable-macosx-qtkit --disable-macosx-eyetv --disable-realrtsp \
     276                        --disable-freerdp --disable-opencv --enable-sftp
     277
     278    # Mux/Demux Plugins
     279    configure.args-append \
     280                        --enable-dvbpsi --enable-ogg --enable-mux_ogg \
     281                        --enable-mkv --enable-mod --enable-mpc --disable-shout
     282
     283    # Codec Plugins
     284    configure.args-append \
     285                        --enable-a52 --enable-faad --enable-flac --enable-live555 \
     286                        --enable-opus --enable-vorbis --enable-ogg --enable-mad --enable-libass \
     287                        --enable-dca --enable-png --disable-quicktime --enable-twolame \
     288                        --enable-speex --enable-theora --enable-x264 --enable-x265 --enable-postproc \
     289                        --disable-gst-decode --enable-avcodec --enable-avformat --enable-swscale \
     290                        --disable-fluidsynth --enable-schroedinger --enable-vpx
     291
     292    # Video Plugins. We do our best to deactivate X11 and disable its auto-detection by
     293    # claiming the headers and libs are somewhere they're not.
     294    configure.args-append \
     295                        --disable-caca --enable-sdl --enable-sdl-image \
     296                        --without-x --disable-xcb --disable-xvideo \
     297                        --x-includes=${destroot} --x-libraries=${destroot} \
     298                        --enable-freetype --enable-fontconfig --enable-fribidi \
     299                        --disable-svg --disable-svgdec
     300
     301    # Audio Plugins
     302    configure.args-append \
     303                        --disable-jack \
     304                        --enable-samplerate \
     305                        --disable-pulse \
     306                        --disable-chromaprint
     307
     308    # Interface Plugins
     309    configure.args-append \
     310                        --disable-macosx \
     311                        --disable-macosx-dialog-provider \
     312                        --disable-qt \
     313                        --enable-ncurses \
     314                        --disable-skins2 \
     315                        --disable-vnc
     316
     317    # Visualisations and Video Filter Plugins
     318    configure.args-append \
     319                        --disable-goom
     320
     321    # Service Discovery Plugins
     322    configure.args-append \
     323                        --enable-bonjour \
     324                        --enable-upnp
     325
     326    # 20150209: Jack really would require a newer variant than what's currently in MacPorts
     327    variant jack description {Enable jack and fluidsynth plugins for audio output} {
     328        depends_lib-append      port:jack port:fluidsynth port:portaudio
     329        configure.args-delete   --disable-jack --disable-fluidsynth
     330        configure.args-append   --enable-jack --enable-fluidsynth
    160331    }
    161 }
    162332
    163 patchfiles          buildfix-package.mak.patch \
    164                     configure.ac-no-arch.patch \
    165                     PR-34741-no__clang_version__.patch \
    166                     static_assert.patch \
    167                     no-sparkle.patch \
    168                     patch-vlc-no-O4.diff \
    169                     patch-opencv_includes.diff
    170 
    171 # The opencv example apparently builds on 10.11 but I'm having issues with it on 10.9
    172 # it doesn't appear to be indispensable, so simply skip it.
    173 patchfiles-append   patch-no-opencv_example.diff
    174 
    175 post-patch {
    176     reinplace "s:librsvg-2/librsvg:librsvg:" \
    177         ${worksrcpath}/modules/text_renderer/svg.c
    178 
    179     if {[string match *clang* ${configure.cxx}] && ${configure.cxx_stdlib} == "libc++"} {
    180         reinplace "s:-lstdc\+\+:-lc++:" \
    181             ${worksrcpath}/configure.ac \
    182             ${worksrcpath}/modules/access/Makefile.am
     333    variant dbus description {Enable DBus support} {
     334        depends_lib-append      port:dbus
     335        configure.args-replace  --disable-dbus --enable-dbus
    183336    }
    184 }
    185337
    186 use_autoreconf      yes
    187 autoreconf.cmd      ./bootstrap
    188 autoreconf.pre_args
    189 autoreconf.args
    190 depends_build-append port:libtool port:autoconf port:automake
    191 
    192 configure.env-append CXXCPP="${configure.cxx} -E"
    193 build.args-append    DESTDIR=${worksrcpath}/dest_ignore V=1
    194 
    195 # gl.c:121:3: error: Platform not recognized.
    196 configure.cppflags-append -D__unix__=1
    197 
    198 # live555 is installed to a weird location
    199 configure.cppflags-append -I${prefix}/lib/live/liveMedia/include
    200 
    201 build.target        all
    202 destroot.target     install
    203 
    204 livecheck.url       http://download.videolan.org/pub/videolan/vlc/
    205 livecheck.regex     <a href=\"(\\d\[\\d|\.|\\w\]+).*/\">
    206 
    207 # Other
    208 configure.args-append \
    209                     --with-contrib=${worksrcpath}/contrib \
    210                     --disable-debug --disable-update-check --enable-gnutls \
    211                     --disable-notify --disable-dbus --enable-lua \
    212                     --disable-gnomevfs --disable-growl --disable-macosx-vlc-app
    213 
    214 # Input Plugins
    215 configure.args-append \
    216                     --enable-dvdnav --enable-dvdread --disable-smbclient --enable-vcdx \
    217                     --disable-macosx-qtkit --disable-macosx-eyetv --disable-realrtsp \
    218                     --disable-freerdp --enable-opencv --enable-sftp
    219 
    220 # Mux/Demux Plugins
    221 configure.args-append \
    222                     --enable-dvbpsi --enable-ogg --enable-mux_ogg \
    223                     --enable-mkv --enable-mod --enable-mpc --disable-shout
    224 
    225 # Codec Plugins
    226 configure.args-append \
    227                     --enable-a52 --enable-faad --enable-flac --enable-live555 \
    228                     --enable-opus --enable-vorbis --enable-ogg --enable-mad --enable-libass \
    229                     --enable-dca --enable-png --disable-quicktime --enable-twolame \
    230                     --enable-speex --enable-theora --enable-x264 --enable-x265 --enable-postproc \
    231                     --disable-gst-decode --enable-avcodec --enable-avformat --enable-swscale \
    232                     --disable-fluidsynth --enable-schroedinger --enable-vpx
    233 
    234 # Video Plugins. We do our best to deactivate X11 and disable its auto-detection by
    235 # claiming the headers and libs are somewhere they're not.
    236 configure.args-append \
    237                     --disable-caca --enable-sdl --enable-sdl-image \
    238                     --without-x --disable-xcb --disable-xvideo \
    239                     --x-includes=${destroot} --x-libraries=${destroot} \
    240                     --enable-freetype --enable-fontconfig --enable-fribidi \
    241                     --disable-svg --disable-svgdec
    242 
    243 # Audio Plugins
    244 configure.args-append \
    245                     --disable-jack \
    246                     --enable-samplerate \
    247                     --disable-pulse \
    248                     --disable-chromaprint
    249 
    250 # Interface Plugins
    251 configure.args-append \
    252                     --disable-macosx \
    253                     --disable-macosx-dialog-provider \
    254                     --disable-qt \
    255                     --enable-ncurses \
    256                     --disable-skins2 \
    257                     --disable-vnc
    258 
    259 # Visualisations and Video Filter Plugins
    260 configure.args-append \
    261                     --disable-goom
    262 
    263 # Service Discovery Plugins
    264 configure.args-append \
    265                     --enable-bonjour \
    266                     --enable-upnp
    267 
    268 # 20150209: Jack really would require a newer variant than what's currently in MacPorts
    269 variant jack description {Enable jack and fluidsynth plugins for audio output} {
    270     depends_lib-append      port:jack port:fluidsynth port:portaudio
    271     configure.args-delete   --disable-jack --disable-fluidsynth
    272     configure.args-append   --enable-jack --enable-fluidsynth
    273 }
     338    variant qtkit description {Enable qtcapture and qtaudio} {
     339        configure.args-replace  --disable-macosx-qtkit --enable-macosx-qtkit
     340    }
    274341
    275 variant dbus description {Enable DBus support} {
    276     depends_lib-append      port:dbus
    277     configure.args-replace  --disable-dbus --enable-dbus
    278 }
     342    variant svg description {Enable SVG rendering and decoding support} {
     343        depends_lib-append      port:librsvg
     344        configure.args-replace  --disable-svg --enable-svg
     345        configure.args-replace  --disable-svgdec --enable-svgdec
     346    }
    279347
    280 variant qtkit description {Enable qtcapture and qtaudio} {
    281     configure.args-replace  --disable-macosx-qtkit --enable-macosx-qtkit
    282 }
     348    variant shout description {Enable Shoutcast/Icecast streaming output support} {
     349        depends_lib-append      port:libshout2
     350        configure.args-replace  --disable-shout --enable-shout
     351    }
    283352
    284 variant svg description {Enable SVG rendering and decoding support} {
    285     depends_lib-append      port:librsvg
    286     configure.args-replace  --disable-svg --enable-svg
    287     configure.args-replace  --disable-svgdec --enable-svgdec
    288 }
     353    variant smb description {Enable Samba 3 input support} {
     354        depends_lib-append      port:samba3
     355        configure.args-replace  --disable-smbclient --enable-smbclient
     356        configure.ldflags-append    -L${prefix}/lib/samba3
     357    }
    289358
    290 variant shout description {Enable Shoutcast/Icecast streaming output support} {
    291     depends_lib-append      port:libshout2
    292     configure.args-replace  --disable-shout --enable-shout
    293 }
     359    variant pulse description {Enable PulseAudio support} {
     360        depends_lib-append      port:pulseaudio
     361        configure.args-replace  --disable-pulse --enable-pulse
     362    }
    294363
    295 variant smb description {Enable Samba 3 input support} {
    296     depends_lib-append      port:samba3
    297     configure.args-replace  --disable-smbclient --enable-smbclient
    298     configure.ldflags-append    -L${prefix}/lib/samba3
    299 }
     364    variant x11 {
     365        depends_lib-append \
     366            port:xorg-libX11 \
     367            port:xorg-libXau \
     368            port:xorg-libXdmcp \
     369            port:xorg-libXext \
     370            port:xorg-libXrandr \
     371            port:xorg-libxcb \
     372            port:xrender \
     373            port:XviD \
     374            port:mesa \
     375            port:xorg-libXinerama \
     376            port:xorg-libXv \
     377            port:xorg-libXxf86vm \
     378            port:xorg-xcb-util \
     379            port:xorg-xcb-util-keysyms
     380
     381        configure.args-delete   --without-x --disable-xvideo --disable-xcb \
     382                                --x-includes=${destroot} --x-libraries=${destroot}
     383        configure.args-append   --with-x --enable-xvideo --enable-xcb
     384    }
    300385
    301 variant pulse description {Enable PulseAudio support} {
    302     depends_lib-append      port:pulseaudio
    303     configure.args-replace  --disable-pulse --enable-pulse
    304 }
     386    if {${subport} ne "lib${name}"} {
     387        variant qt4 conflicts qt5 description {Build using Qt4 UI. This will use qt4-mac. Experimental and probably dysfunctional} {
     388            patchfiles-append       patch-vlc-no-qt5.diff \
     389                                    patch-vlc-qt-configureac.diff \
     390                                    patch-simplepreferences.diff
    305391
    306 variant x11 {
    307     depends_lib-append \
    308         port:xorg-libX11 \
    309         port:xorg-libXau \
    310         port:xorg-libXdmcp \
    311         port:xorg-libXext \
    312         port:xorg-libXrandr \
    313         port:xorg-libxcb \
    314         port:xrender \
    315         port:XviD \
    316         port:mesa \
    317         port:xorg-libXinerama \
    318         port:xorg-libXv \
    319         port:xorg-libXxf86vm \
    320         port:xorg-xcb-util \
    321         port:xorg-xcb-util-keysyms
    322 
    323     configure.args-delete   --without-x --disable-xvideo --disable-xcb \
    324                             --x-includes=${destroot} --x-libraries=${destroot}
    325     configure.args-append   --with-x --enable-xvideo --enable-xcb
    326 }
     392            configure.args-replace  --disable-qt --enable-qt
    327393
    328 if {${subport} ne "lib${name}"} {
    329     variant qt4 conflicts qt5 description {Build using Qt4 UI. This will use qt4-mac. Experimental and probably dysfunctional} {
    330         patchfiles-append       patch-vlc-no-qt5.diff \
    331                                 patch-vlc-qt-configureac.diff \
    332                                 patch-simplepreferences.diff
     394            PortGroup               qt4 1.0
     395        }
     396        variant qt5 conflicts qt4 description {Build using Qt5 UI. This will use qt5-mac. Experimental and probably dysfunctional} {
     397            patchfiles-append       patch-vlc-qt-configureac.diff \
     398                                    patch-simplepreferences.diff
    333399
    334         configure.args-replace  --disable-qt --enable-qt
     400            configure.args-replace  --disable-qt --enable-qt
    335401
    336         PortGroup               qt4 1.0
     402            PortGroup               qt5 1.0
     403        }
    337404    }
    338     variant qt5 conflicts qt4 description {Build using Qt5 UI. This will use qt5-mac. Experimental and probably dysfunctional} {
    339         patchfiles-append       patch-vlc-qt-configureac.diff \
    340                                 patch-simplepreferences.diff
    341405
    342         configure.args-replace  --disable-qt --enable-qt
     406    variant quartz {
     407        depends_lib-delete      port:libsamplerate
     408        depends_lib-append      port:BGHUDAppKit
     409
     410        patchfiles-append       patch-vlc-for-macports.diff
     411
     412        configure.args-delete   --disable-macosx \
     413                                --enable-samplerate \
     414                                --disable-realrtsp
     415        configure.args-append   --enable-macosx
     416        # taken from VLC's own configure.sh script for OS X:
     417        configure.args-append   --disable-samplerate \
     418                                --enable-merge-ffmpeg \
     419                                --enable-realrtsp
     420    }
    343421
    344         PortGroup               qt5 1.0
     422    # FreeRDP currently doesn't build with CMake >= 3.1 (#47389)
     423    variant freerdp description {Build the FreeRDP support; currently dysfunctional} {
     424        depends_lib-append          port:FreeRDP
     425        # access/rdp.c:45:11: fatal error: 'freerdp/version.h' file not found
     426        configure.cppflags-append   -DFREERDP_INTERFACE_VERSION \
     427                                    -DFREERDP_VERSION_MAJOR=1 \
     428                                    -DFREERDP_VERSION_MINOR=1
     429        configure.args-replace      --disable-freerdp --enable-freerdp
    345430    }
    346 }
    347431
    348 variant quartz {
    349     depends_lib-delete      port:libsamplerate
    350     depends_lib-append      port:BGHUDAppKit
    351 
    352     patchfiles-append       patch-vlc-for-macports.diff
    353 
    354     configure.args-delete   --disable-macosx \
    355                             --enable-samplerate \
    356                             --disable-realrtsp
    357     configure.args-append   --enable-macosx
    358     # taken from VLC's own configure.sh script for OS X:
    359     configure.args-append   --disable-samplerate \
    360                             --enable-merge-ffmpeg \
    361                             --enable-realrtsp
    362 }
     432    variant huge \
     433        requires jack shout svg \
     434        description {Enable all variants except quartz, smb, freerdp and x11} {}
    363435
    364 # FreeRDP currently doesn't build with CMake >= 3.1 (#47389)
    365 variant freerdp description {Build the FreeRDP support; currently dysfunctional} {
    366     depends_lib-append          port:FreeRDP
    367     # access/rdp.c:45:11: fatal error: 'freerdp/version.h' file not found
    368     configure.cppflags-append   -DFREERDP_INTERFACE_VERSION \
    369                                 -DFREERDP_VERSION_MAJOR=1 \
    370                                 -DFREERDP_VERSION_MINOR=1
    371     configure.args-replace      --disable-freerdp --enable-freerdp
    372 }
     436    if {${subport} ne "lib${name}"} {
     437        variant full \
     438            requires huge quartz smb x11 \
     439            description {Enable all variants except x11 (and except freerdp, currently)} {}
     440    } else {
     441        variant full \
     442            requires huge quartz smb \
     443            description {Enable all variants (except freerdp, currently)} {}
     444    }
     445
     446    # this patchfile can probably go with VLC 2.2.2, or should be reviewed then.
     447    # update 2.2.2 : lua 5.3 gives compiler syntax errors so we stick with 5.2 for now.
     448    patchfiles-append           patch-for-lua52.diff
     449
     450    platform macosx {
     451        default_variants-append +quartz +qtkit
     452
     453        configure.args-replace  --disable-macosx-eyetv --enable-macosx-eyetv
     454
     455        if {${subport} ne "lib${name}"} {
     456            configure.args-replace  --disable-macosx-vlc-app --enable-macosx-vlc-app
     457        }
     458
     459        post-patch {
     460            reinplace "s/Appkit/AppKit/" ${worksrcpath}/configure.ac
     461            reinplace "/Sparkle.framework/d" \
     462                ${worksrcpath}/extras/package/macosx/vlc.xcodeproj/project.pbxproj
     463            reinplace "/SDKROOT/d" \
     464                ${worksrcpath}/extras/package/macosx/vlc.xcodeproj/project.pbxproj
     465            reinplace "/Growl.framework/d" \
     466                ${worksrcpath}/extras/package/macosx/package.mak
     467
     468            reinplace "s:LD_LIBRARY_PATH:DYLD_LIBRARY_PATH:g" \
     469                ${worksrcpath}/Makefile.am
     470
     471            reinplace "/argv/s/environ/*_NSGetEnviron()/" \
     472                ${worksrcpath}/modules/misc/inhibit/xdg.c \
     473                ${worksrcpath}/modules/stream_filter/decomp.c
     474
     475            reinplace "s/extern char \\*\\*environ;/#include <crt_externs.h>/" \
     476                ${worksrcpath}/modules/misc/inhibit/xdg.c \
     477                ${worksrcpath}/modules/stream_filter/decomp.c
     478
     479            if {![file exists ${worksrcpath}/contrib/BGHUDAppKit.framework]} {
     480                ln -s ${frameworks_dir}/BGHUDAppKit.framework ${worksrcpath}/contrib/BGHUDAppKit.framework
     481            }
     482
     483            # To trick configure
     484            file mkdir "${worksrcpath}/contrib/lib"
     485        }
    373486
    374 variant huge \
    375     requires jack shout svg \
    376     description {Enable all variants except quartz, smb, freerdp and x11} {}
    377 
    378 if {${subport} ne "lib${name}"} {
    379     variant full \
    380         requires huge quartz smb x11 \
    381         description {Enable all variants except x11 (and except freerdp, currently)} {}
    382 } else {
    383     variant full \
    384         requires huge quartz smb \
    385         description {Enable all variants (except freerdp, currently)} {}
     487        post-destroot {
     488            eval file delete [glob ${destroot}${prefix}/lib/vlc/plugins/*/*.la]
     489
     490            if {[variant_isset qt4] || [variant_isset qt5] || [variant_isset quartz]} {
     491                if {${subport} ne "lib${name}"} {
     492                    copy ${worksrcpath}/VLC.app ${destroot}${applications_dir}/VLC.app
     493
     494                    # These are already in ${prefix}, so we don't need to bundle them as well
     495                    delete ${destroot}${applications_dir}/VLC.app/Contents/Frameworks
     496                    delete ${destroot}${applications_dir}/VLC.app/Contents/lib
     497
     498                    # There's no need to install these into the bundle and the prefix
     499                    delete ${destroot}${applications_dir}/VLC.app/Contents/MacOS/include
     500                    delete ${destroot}${applications_dir}/VLC.app/Contents/MacOS/lib
     501                    delete ${destroot}${applications_dir}/VLC.app/Contents/MacOS/plugins
     502                    delete ${destroot}${applications_dir}/VLC.app/Contents/MacOS/share/locale
     503                    delete ${destroot}${applications_dir}/VLC.app/Contents/MacOS/share/lua
     504
     505                    # http://trac.macports.org/ticket/35131
     506                    ln -s ${prefix}/lib ${destroot}${applications_dir}/VLC.app/Contents/MacOS/lib
     507                    ln -s ${prefix}/lib/vlc/plugins ${destroot}${applications_dir}/VLC.app/Contents/MacOS/plugins
     508                    ln -s ${prefix}/lib/vlc/lua ${destroot}${applications_dir}/VLC.app/Contents/MacOS/share/lua
     509                    ln -s ${prefix}/share/locale ${destroot}${applications_dir}/VLC.app/Contents/MacOS/share/locale
     510
     511                    # the vlc executable needs to be started with a full path to the app bundle executable
     512                    # or else the Mac OS X interface will hang beyond even a ^C or ^\ :
     513                    move ${destroot}${prefix}/bin/vlc ${destroot}${prefix}/bin/vlc.exe
     514                    system "echo \"#!/bin/sh\nexec \\\"${applications_dir}/VLC.app/Contents/MacOS/VLC\\\" \\\"\\\$\@\\\"\" > ${destroot}${prefix}/bin/vlc"
     515                    system "chmod 755 ${destroot}${prefix}/bin/vlc"
     516                } else {
     517                    delete ${destroot}${prefix}/bin
     518                    delete ${destroot}${prefix}/share/applications
     519                    delete ${destroot}${prefix}/share/man
     520                }
     521            }
     522        }
     523        post-activate {
     524            if {[variant_isset qt4] || [variant_isset qt5]} {
     525                notes-append "The Qt interface modules for VLC are currently dysfunctional. If you encounter bugs with them, please file them with VLC and not MacPorts."
     526            }
     527            system "${prefix}/lib/vlc/vlc-cache-gen -f ${prefix}/lib/vlc"
     528        }
     529    }
    386530}
    387531
    388 # this patchfile can probably go with VLC 2.2.2, or should be reviewed then.
    389 # update 2.2.2 : lua 5.3 gives compiler syntax errors so we stick with 5.2 for now.
    390 patchfiles-append           patch-for-lua52.diff
     532##
     533#################  support port ffmpeg-VLC  ##################
     534##
     535if {${subport} eq "ffmpeg-VLC"} {
     536    PortGroup           xcodeversion 1.0
     537
     538    version             2.8.6
     539    revision            1
     540    license             LGPL-2.1+
     541    categories          multimedia
     542    maintainers         gmail.com:rjvbertin openmaintainer
    391543
    392 platform macosx {
    393     default_variants-append +quartz +qtkit
     544    description         Custom FFMpeg build for port:VLC and port:libVLC.
     545    long_description    Custom FFMpeg build for port:VLC and port:libVLC.
    394546
    395     configure.args-replace  --disable-macosx-eyetv --enable-macosx-eyetv
     547    platforms           darwin
     548    homepage            http://www.ffmpeg.org/
     549    master_sites        http://www.ffmpeg.org/releases/
     550
     551    use_bzip2           yes
     552    distname            ffmpeg-${version}
     553
     554    checksums           rmd160  5b61b6b0521d39ca31dcfb7fff1dfa26d9e7667a \
     555                        sha256  40611e329bc354592c6f8f1deb033c31b91f80e91f5707ca4f9afceca78d8e62
     556
     557    depends_build       port:pkgconfig \
     558                        port:gmake
     559
     560# libvpx is static only so can be considered a build dependency (#47934)
     561
     562    depends_build-append \
     563                        port:libvpx
     564
     565    depends_lib         port:lame \
     566                        port:libiconv \
     567                        port:openjpeg15 \
     568                        port:xz \
     569                        port:zlib
     570
     571# depends_lib-append  port:libvorbis \
     572#                     port:libopus \
     573#                     port:libogg \
     574#                     port:libtheora \
     575#                     port:libass \
     576#                     port:gnutls \
     577#                     port:fontconfig \
     578#                     port:freetype \
     579#                     port:bzip2
     580
     581    build.cmd           ${prefix}/bin/gmake
     582    build.env-append    V=1
     583
     584#
     585# enable auto configure of asm optimizations
     586# requires Xcode 3.1 or better on Leopard
     587#
     588    minimum_xcodeversions {9 3.1}
     589
     590    if {[lsearch [get_canonical_archs] i386] != -1} {
     591        # clang-3.1 hits https://trac.macports.org/ticket/30137 (<rdar://problem/11542429>)
     592        # clang-139 hits https://trac.macports.org/ticket/38141
     593        compiler.blacklist-append {clang < 422.1.7}
     594    }
    396595
    397     if {${subport} ne "lib${name}"} {
    398         configure.args-replace  --disable-macosx-vlc-app --enable-macosx-vlc-app
     596    configure.cflags-append -DHAVE_LRINTF ${configure.cppflags}
     597    configure.args      --prefix=${FFMPEG_VLC_PREFIX} \
     598                        --progs-suffix=-VLC \
     599                        --build-suffix=-VLC \
     600                        --disable-doc \
     601                        --disable-encoder=vorbis \
     602                        --enable-libopenjpeg \
     603                        --disable-debug \
     604                        --disable-avdevice \
     605                        --disable-devices \
     606                        --disable-avfilter \
     607                        --disable-filters \
     608                        --disable-protocol=concat \
     609                        --disable-bsfs \
     610                        --disable-bzlib \
     611                        --enable-avresample \
     612                        --enable-libmp3lame \
     613                        --enable-libvpx \
     614                        --disable-libbluray \
     615                        --disable-sdl \
     616                        --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape \
     617                        --enable-shared --disable-static --enable-pthreads \
     618                        --cc=${configure.cc}
     619
     620# this is the old gpl2 variant. VLC is GPL2'ed, so we can just as well build ffmpeg
     621# with these components.
     622    configure.args-append \
     623                        --enable-gpl \
     624                        --enable-postproc
     625# configure.args-append \
     626#                     --enable-libx264 \
     627#                     --enable-libxvid
     628# depends_lib-append  port:XviD \
     629#                     port:x264
     630
     631    configure.args-append \
     632                        --arch=${configure.build_arch}
     633    configure.env-append \
     634                        ASFLAGS='[get_canonical_archflags]'
     635    if {${build_arch} eq "x86_64"} {
     636        depends_build-append \
     637                        port:yasm
     638        configure.args-append \
     639                        --enable-yasm
    399640    }
    400641
    401     post-patch {
    402         reinplace "s/Appkit/AppKit/" ${worksrcpath}/configure.ac
    403         reinplace "/Sparkle.framework/d" \
    404             ${worksrcpath}/extras/package/macosx/vlc.xcodeproj/project.pbxproj
    405         reinplace "/SDKROOT/d" \
    406             ${worksrcpath}/extras/package/macosx/vlc.xcodeproj/project.pbxproj
    407         reinplace "/Growl.framework/d" \
    408             ${worksrcpath}/extras/package/macosx/package.mak
    409 
    410         reinplace "s:LD_LIBRARY_PATH:DYLD_LIBRARY_PATH:g" \
    411             ${worksrcpath}/Makefile.am
    412 
    413         reinplace "/argv/s/environ/*_NSGetEnviron()/" \
    414             ${worksrcpath}/modules/misc/inhibit/xdg.c \
    415             ${worksrcpath}/modules/stream_filter/decomp.c
    416 
    417         reinplace "s/extern char \\*\\*environ;/#include <crt_externs.h>/" \
    418             ${worksrcpath}/modules/misc/inhibit/xdg.c \
    419             ${worksrcpath}/modules/stream_filter/decomp.c
     642    license             GPL-2+
    420643
    421         if {![file exists ${worksrcpath}/contrib/BGHUDAppKit.framework]} {
    422             ln -s ${frameworks_dir}/BGHUDAppKit.framework ${worksrcpath}/contrib/BGHUDAppKit.framework
     644    platform darwin {
     645        if {${os.major} < 9} {
     646            configure.args-append --disable-asm
    423647        }
    424648
    425         # To trick configure
    426         file mkdir "${worksrcpath}/contrib/lib"
    427     }
     649        # VDA (video hardware acceleration, mostly H264) is only supported on 10.6.3+ up to (excluding) 10.11.
     650        #if {(${os.major} > 10 || (${os.major} == 10 && ${os.minor} >= 3)) && (${os.major} < 15)}
     651        # Due to a bug in ffmpeg(?), we have to enable VDA on 10.11 as well, even though it shouldn't be supported.
     652        # More information: https://github.com/mpv-player/mpv/issues/2299
     653        if {${os.major} > 10 || (${os.major} == 10 && ${os.minor} >= 3)} {
     654            configure.args-delete --disable-vda
     655            configure.args-append --enable-vda
     656        }
    428657
    429     post-destroot {
    430         eval file delete [glob ${destroot}${prefix}/lib/vlc/plugins/*/*.la]
     658        # VideotoolBox, a new hardware acceleration framework, is supported on 10.8+ and "here to stay".
     659        # It provides support for H264, H263, MPEG1, MPEG2 and MPEG4.
     660        if {${os.major} > 11} {
     661            configure.args-delete --disable-videotoolbox
     662            configure.args-append --enable-videotoolbox
     663        }
    431664
    432         if {[variant_isset qt4] || [variant_isset qt5] || [variant_isset quartz]} {
    433             if {${subport} ne "lib${name}"} {
    434                 copy ${worksrcpath}/VLC.app ${destroot}${applications_dir}/VLC.app
    435 
    436                 # These are already in ${prefix}, so we don't need to bundle them as well
    437                 delete ${destroot}${applications_dir}/VLC.app/Contents/Frameworks
    438                 delete ${destroot}${applications_dir}/VLC.app/Contents/lib
    439 
    440                 # There's no need to install these into the bundle and the prefix
    441                 delete ${destroot}${applications_dir}/VLC.app/Contents/MacOS/include
    442                 delete ${destroot}${applications_dir}/VLC.app/Contents/MacOS/lib
    443                 delete ${destroot}${applications_dir}/VLC.app/Contents/MacOS/plugins
    444                 delete ${destroot}${applications_dir}/VLC.app/Contents/MacOS/share/locale
    445                 delete ${destroot}${applications_dir}/VLC.app/Contents/MacOS/share/lua
    446 
    447                 # http://trac.macports.org/ticket/35131
    448                 ln -s ${prefix}/lib ${destroot}${applications_dir}/VLC.app/Contents/MacOS/lib
    449                 ln -s ${prefix}/lib/vlc/plugins ${destroot}${applications_dir}/VLC.app/Contents/MacOS/plugins
    450                 ln -s ${prefix}/lib/vlc/lua ${destroot}${applications_dir}/VLC.app/Contents/MacOS/share/lua
    451                 ln -s ${prefix}/share/locale ${destroot}${applications_dir}/VLC.app/Contents/MacOS/share/locale
    452 
    453                 # the vlc executable needs to be started with a full path to the app bundle executable
    454                 # or else the Mac OS X interface will hang beyond even a ^C or ^\ :
    455                 move ${destroot}${prefix}/bin/vlc ${destroot}${prefix}/bin/vlc.exe
    456                 system "echo \"#!/bin/sh\nexec \\\"${applications_dir}/VLC.app/Contents/MacOS/VLC\\\" \\\"\\\$\@\\\"\" > ${destroot}${prefix}/bin/vlc"
    457                 system "chmod 755 ${destroot}${prefix}/bin/vlc"
    458             } else {
    459                 delete ${destroot}${prefix}/bin
    460                 delete ${destroot}${prefix}/share/applications
    461                 delete ${destroot}${prefix}/share/man
    462             }
     665        # Apple GCC has problems with SIMD intrinsics and -Werror=no-missing-prototypes.
     666        if {${os.major} < 11} {
     667            patchfiles-append patch-configure-no-error-on-missing-prototypes.diff
     668        }
     669
     670        # kCVPixelFormatType_OneComponent8 used in avfoundation indev is only available on 10.8+
     671        if {${os.major} < 12} {
     672            configure.args-append --disable-indev=avfoundation
    463673        }
    464674    }
    465     post-activate {
    466         if {[variant_isset qt4] || [variant_isset qt5]} {
    467             notes-append "The Qt interface modules for VLC are currently dysfunctional. If you encounter bugs with them, please file them with VLC and not MacPorts."
     675
     676#
     677# configure isn't autoconf and they do use a dep cache
     678#
     679
     680    platform darwin 8 {
     681        post-patch {
     682            reinplace "s:,-compatibility_version,$\(LIBMAJOR\)::" ${worksrcpath}/configure
     683        }
     684    }
     685
     686    destroot.target     install-libs install-headers
     687
     688    post-destroot {
     689        file delete -force ${destroot}${prefix}/share/examples
     690        # We need to make sure that the linker will use our libraries and not one
     691        # from a location like ${prefix}/lib . That's why we use --build-suffix, but
     692        # that still requires us to provide pkg-config files with the standard names:
     693        foreach pc [glob ${destroot}${FFMPEG_VLC_PREFIX}/lib/pkgconfig/*.pc] {
     694            set standardname [strsed ${pc} "s/-VLC.pc/.pc/"]
     695            ln -s [file tail ${pc}] ${standardname}
     696        }
     697        # oblige dependent code to include files from our own renamed header file directories, so it
     698        # cannot include mismatching headers by accident (e.g. those from ffmpeg 3.x).
     699        foreach dir {libavcodec libavformat libavresample libavutil libpostproc libswresample libswscale} {
     700            file rename ${destroot}${FFMPEG_VLC_PREFIX}/include/${dir} ${destroot}${FFMPEG_VLC_PREFIX}/include/${dir}-VLC
    468701        }
    469         system "${prefix}/lib/vlc/vlc-cache-gen -f ${prefix}/lib/vlc"
     702        foreach dir {libavcodec libavformat libavresample libavutil libpostproc libswresample libswscale} {
     703            foreach header [glob -nocomplain ${destroot}${FFMPEG_VLC_PREFIX}/include/*/*.h] {
     704                reinplace "s|${dir}/|${dir}-VLC/|g" ${header}
     705            }
     706        }
     707        # packageable: ${destroot}${FFMPEG_VLC_PREFIX}/{include,lib/lib*VLC.dylib,lib/pkgconfig}
    470708    }
     709
     710    livecheck.type      regex
     711    livecheck.url       ${master_sites}
     712    livecheck.regex     "${name}-(\\d+(?:\\.\\d+)*)${extract.suffix}"
    471713}
    472714
    473715# kate: backspace-indents true; indent-pasted-text true; indent-width 4; keep-extra-spaces true; remove-trailing-spaces modified; replace-tabs true; replace-tabs-save true; syntax Tcl/Tk; tab-indents true; tab-width 4;