# -*- 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
# $Id: Portfile 117140 2014-02-17 15:18:38Z nicos@macports.org $

PortSystem          1.0
PortGroup           kde4 1.1
PortGroup           muniversal 1.0
PortGroup           compiler_blacklist_versions 1.0

name                kdevelop
version             4.6.0
categories          kde kde4
platforms           darwin
license             GPL-2+
maintainers         nicos openmaintainer

description         KDE development IDE
long_description    KDevelop is a free, open source IDE (Integrated \
                    Development Environment) for MS Windows, Mac OS X, \
                    Linux, Solaris and FreeBSD. It is a feature-full, \
                    plugin extensible IDE for C/C++ and other programming \
                    languages. It is based on KDevPlatform, and the KDE \
                    and Qt libraries and is under development since 1998.

homepage            http://www.kdevelop.org/
master_sites        kde:stable/kdevelop/${version}/src/

checksums           rmd160  77dc0d3e3afc08db1d28914b00c041d50bee1759 \
                    sha256  1ee9e7b8c46f575dd29d920cfd6284130f2e738a2e1f52dfd97b075fab2e4c73

use_xz              yes

depends_run-append  port:cmake

depends_lib-append  port:kdelibs4 \
                    port:kdevplatform \
                    port:kate \
                    port:oxygen-icons

compiler.blacklist-append {clang < 500}
compiler.blacklist-append macports-clang-3.1 macports-clang-3.0
compiler.blacklist-append macports-llvm-gcc-4.2 llvm-gcc-4.2

#Binaries do not link to openssl, nor use the ssl backend of kdelibs4
license_noconflict  openssl

pre-configure {
    #Suppress these arguments from cmake portgroup 
    #which break compilation for develop
    configure.args-delete   -DCMAKE_OSX_DEPLOYMENT_TARGET="" \
                            -DCMAKE_OSX_SYSROOT=/
}

pre-build {
    #Mac compilers do not link with .so libraries
    reinplace "s|../../../lib/kdevcpplanguagesupport.so||g" \
        ${workpath}/build/languages/cpp/tests/CMakeFiles/cppassistantstest.dir/link.txt
}

#1. Avoid automatic use of okteta unless specified in variant (find scripts are broken)
#2-3. Change use of std::list with QList which is recognized during build
patchfiles          patch-okteta.diff \
                    patch-declarationbuilder.diff \
                    patch-context.diff

if {![variant_isset docs]} {
    patchfiles-append   patch-CMakeLists.diff
}

variant valgrind description \
    "Obsolete stub variant (kdevelop does not use valgrind anymore)" {}

variant okteta description "Adds support for okteta" {
    depends_lib-append  port:okteta
    patchfiles-delete   patch-okteta.diff
}    

#Using c++0x for Lion and higher in case of clang 64-bit
if {${configure.compiler} eq "clang" && ${os.platform} eq "darwin" && ${os.major} >= 11} {
    lappend merger_configure_args(x86_64)   -DCMAKE_CXX_FLAGS='-stdlib=libc++' -DHAVE_UNORDERED_MAP=1
    if {${build_arch} eq "x86_64" && ![variant_isset universal]} {
        configure.args-append               -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DHAVE_UNORDERED_MAP=1
    }
}

livecheck.url       http://kde.mirrors.hoobly.com/stable/${name}
livecheck.regex     "\(\\d+(?:\\.\\d+)*)\/"
