# -*- 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

name                audacity

subport audacity {

PortGroup           github 1.0
PortGroup           cmake 1.1
PortGroup           qt6 1.0
PortGroup           wxWidgets 1.0

github.setup        audacity audacity 4.0.1 Audacity-
revision            0
conflicts           audacity2 audacity3
categories          audio
license             GPL-3
maintainers         {makr @mohd-akram} openmaintainer

description         multi-track audio editor

long_description    Audacity is an easy-to-use, multi-track audio editor and \
                    recorder for Windows, macOS, GNU/Linux and other operating \
                    systems.

homepage            https://www.audacityteam.org

checksums           rmd160  e2805b68076feaf8152f3d004cd179565f21d3e2 \
                    sha256  6cf1230a1aa940a9188476737d342100c5de6480a476f253fc844bd031d7e6f4 \
                    size    190348052

distname            ${name}-sources-${version}
use_xz              yes

worksrcdir          ${name}-${version}

qt6.find_method     prefix_path

qt6.depends_build   qttools
qt6.depends_lib     qt5compat qtdeclarative qtnetworkauth qtsvg

wxWidgets.use       wxWidgets-3.2

depends_build-append \
                    path:bin/pkg-config:pkgconfig \
                    port:rapidjson \
                    port:utfcpp

depends_lib         port:expat \
                    port:flac \
                    port:freetype \
                    port:harfbuzz \
                    port:lame \
                    port:libogg \
                    port:libopus \
                    port:libsbsms \
                    port:libsndfile \
                    port:libvorbis \
                    port:loop-tempo-estimator \
                    port:mpg123 \
                    port:opusfile \
                    port:pffft \
                    port:portaudio \
                    port:pugixml \
                    port:soundtouch \
                    port:soxr \
                    port:sqlite3 \
                    port:twolame \
                    port:wavpack \
                    port:${wxWidgets.port} \
                    port:zlib

patchfiles          patch-app-cmake.diff \
                    patch-wxwidgets.diff

# https://github.com/audacity/audacity/issues/12011
patchfiles-append   patch-vst.diff

post-patch {
    move ${worksrcpath}/src/effects/audio_unit/view/AudioUnitControl.mm \
        ${worksrcpath}/src/effects/audio_unit/view/audiounitcontrol.mm
    reinplace "s|require_source_dep|require_dep|g" \
        ${worksrcpath}/buildscripts/cmake/DependencyManifest.cmake
    reinplace "s|require_dep(nyquist)|require_source_dep(nyquist)|g" \
        ${worksrcpath}/buildscripts/cmake/DependencyManifest.cmake
    # TODO - remove this once tft releases a new compatible version
    reinplace "s|require_dep(tft)|require_source_dep(tft)|g" \
        ${worksrcpath}/buildscripts/cmake/DependencyManifest.cmake
    # reinplace "s|tft_add_to_build()||" \
        # ${worksrcpath}/src/au3wrap/CMakeLists.txt
    reinplace "s|^set(MUSE_MODULE_VST ON)|set(MUSE_MODULE_VST OFF)|" \
        ${worksrcpath}/CMakeLists.txt
    reinplace "s|loop_tempo_estimator_add_to_build()||" \
        ${worksrcpath}/src/importexport/import/CMakeLists.txt
    reinplace "s|add_subdirectory(\${CMAKE_CURRENT_LIST_DIR}/thirdparty/pffft au3-pffft)||" \
        ${worksrcpath}/src/au3wrap/CMakeLists.txt
}

compiler.cxx_standard   2017

configure.cppflags-append   -I${prefix}/include/pffft

# Needs to be in a block for cmake.prefix_path to be set properly
pre-configure {
    # Use OpenGL framework instead of mesa
    configure.pre_args-delete   -DCMAKE_FIND_FRAMEWORK=LAST
}

configure.args      -DAU4_BUILD_MODE=release \
                    -DAU_MODULE_EFFECTS_VST=OFF \
                    -DEXTDEPS_OVERRIDE_ALL=SYSTEM \
                    -DMUSE_COMPILE_USE_CCACHE=OFF \
                    -DMUSE_ENABLE_UNIT_TESTS=OFF \
                    -DMUSE_MODULE_UPDATE=OFF \
                    -DWX_CONFIG=${wxWidgets.wxconfig}

post-destroot {
    platform darwin {
        move ${destroot}${prefix}/audacity.app \
            ${destroot}${applications_dir}/Audacity.app
    }
}

github.livecheck.regex {([0-9.]+)}

}

subport audacity-manual {
    PortGroup           obsolete 1.0

    version             3.7.9
    revision            1
}
