[152453] trunk/dports/lang/llvm-devel/Portfile
jeremyhu at macports.org
jeremyhu at macports.org
Fri Sep 9 13:59:31 PDT 2016
Revision: 152453
https://trac.macports.org/changeset/152453
Author: jeremyhu at macports.org
Date: 2016-09-09 13:59:31 -0700 (Fri, 09 Sep 2016)
Log Message:
-----------
llvm-devel: Initial stab at an lldb subport (#45251)
Modified Paths:
--------------
trunk/dports/lang/llvm-devel/Portfile
Modified: trunk/dports/lang/llvm-devel/Portfile
===================================================================
--- trunk/dports/lang/llvm-devel/Portfile 2016-09-09 20:47:19 UTC (rev 152452)
+++ trunk/dports/lang/llvm-devel/Portfile 2016-09-09 20:59:31 UTC (rev 152453)
@@ -12,9 +12,11 @@
set llvm_version devel
set llvm_version_no_dot devel
set clang_executable_version 4.0
+set lldb_executable_version 4.0.0
name llvm-${llvm_version}
revision 0
subport clang-${llvm_version} {}
+subport lldb-${llvm_version} {}
set suffix mp-${llvm_version}
set sub_prefix ${prefix}/libexec/llvm-${llvm_version}
dist_subdir llvm
@@ -67,6 +69,20 @@
depends_lib-append port:libedit port:libffi port:ncurses port:zlib
default_variants +analyzer
+} elseif {${subport} eq "lldb-${llvm_version}"} {
+ homepage http://lldb.llvm.org/
+ description the LLVM debugger
+ long_description Lldb is the "LLVM native" debugger.
+
+ depends_lib port:libxml2 port:libomp port:llvm-${llvm_version} port:python27 \
+ port:ncurses
+ depends_build-append port:cctools port:swig-python port:doxygen
+ depends_skip_archcheck-append cctools
+
+ # Clang doesn't actually use any of these, but the LLVM makefile
+ # system overlinks its binaries. Remove (or convert to build deps?)
+ # after #46040 is resolved.
+ depends_lib-append port:libedit port:libffi port:ncurses port:zlib
}
fetch.type svn
@@ -98,6 +114,8 @@
}
} elseif {${subport} eq "clang-${llvm_version}"} {
distfiles-append cfe-${version}.src${extract.suffix} compiler-rt-${version}.src${extract.suffix} libcxx-${version}.src${extract.suffix} clang-tools-extra-${version}.src${extract.suffix}
+ } elseif {${subport} eq "lldb-${llvm_version}"} {
+ distfiles-append cfe-${version}.src${extract.suffix} lldb-${version}.src${extract.suffix}
}
}
@@ -135,7 +153,30 @@
}
}
}
+if {${subport} eq "lldb-${llvm_version}"} {
+ # lldb needs the clang sources present, so we apply the applicable patches.
+ patchfiles-append \
+ 1001-MacPorts-Only-Prepare-clang-format-for-replacement-w.patch \
+ 1002-MacPorts-Only-Fix-name-of-scan-view-executable-insid.patch \
+ 1003-Default-to-ppc7400-for-OSX-10.5.patch \
+ 1004-Only-call-setpriority-PRIO_DARWIN_THREAD-0-PRIO_DARW.patch \
+ 1005-Default-to-fragile-ObjC-runtime-when-targeting-darwi.patch \
+ openmp-locations.patch
+ # https://llvm.org/bugs/show_bug.cgi?id=25681
+ if {${worksrcdir} eq "trunk" || ${worksrcdir} eq "release_${llvm_version_no_dot}"} {
+ # Cannot set cppflags due to https://cmake.org/Bug/view.php?id=12928
+ # Cannot set cxxflags due to https://llvm.org/bugs/show_bug.cgi?id=25904
+ #configure.cxxflags-append -DSVN_REVISION='"${svn.revision}"'
+
+ post-patch {
+ reinplace "1 i \\
+ #define SVN_REVISION \"${svn.revision}\"
+ " ${worksrcpath}/tools/clang/lib/Basic/Version.cpp
+ }
+ }
+}
+
configure.post_args ../${worksrcdir}
default configure.dir {${workpath}/build}
default build.dir {${workpath}/build}
@@ -181,6 +222,20 @@
configure.args-append \
-DCOMPILER_RT_BUILD_SANITIZERS=OFF
}
+} elseif {${subport} eq "lldb-${llvm_version}"} {
+ #select.group lldb
+ #select.file ${filespath}/mp-${subport}
+
+ configure.args-append \
+ -DLLDB_CODESIGN_IDENTITY=- \
+ -DCLANG_ENABLE_ARCMT=OFF \
+ -DCLANG_INCLUDE_TESTS=OFF \
+ -DCLANG_ENABLE_STATIC_ANALYZER=OFF \
+ -DLLVM_BUILD_RUNTIME=ON \
+ -DLIBCXX_ENABLE_SHARED=OFF \
+ -DLIBCXX_INSTALL_LIBRARY=OFF \
+ -DPYTHON_EXECUTABLE=${prefix}/bin/python2.7 \
+ -DPYTHON_INCLUDE_DIR=${prefix}/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
}
# llvm-3.5 and later requires a C++11 runtime
@@ -303,6 +358,17 @@
file rename ${workpath}/libcxx-${version}.src ${worksrcpath}/projects/libcxx
file rename ${workpath}/clang-tools-extra-${version}.src ${worksrcpath}/tools/clang/tools/extra
}
+ } elseif {${subport} eq "lldb-${llvm_version}"} {
+ if {${worksrcdir} eq "trunk"} {
+ system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/cfe/trunk clang"
+ system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/lldb/trunk lldb"
+ } elseif {${worksrcdir} eq "release_${llvm_version_no_dot}" } {
+ system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/cfe/branches/release_${llvm_version_no_dot} clang"
+ system -W ${worksrcpath}/tools "svn ${proxy_args} co -r ${svn.revision} https://llvm.org/svn/llvm-project/lldb/branches/release_${llvm_version_no_dot} lldb"
+ } else {
+ file rename ${workpath}/cfe-${version}.src ${worksrcpath}/tools/clang
+ file rename ${workpath}/lldb-${version}.src ${worksrcpath}/tools/lldb
+ }
}
}
@@ -317,6 +383,39 @@
}
}
+if {${subport} eq "lldb-${llvm_version}"} {
+ post-patch {
+ reinplace "s|@@PREFIX@@|${prefix}|" \
+ ${worksrcpath}/tools/clang/lib/Driver/Tools.cpp
+
+ reinplace "s|@CLANG_FORMAT_PATH@|${prefix}/bin/clang-format-${suffix}|g" \
+ ${worksrcpath}/tools/clang/tools/clang-format/clang-format-bbedit.applescript \
+ ${worksrcpath}/tools/clang/tools/clang-format/clang-format-diff.py \
+ ${worksrcpath}/tools/clang/tools/clang-format/clang-format-sublime.py \
+ ${worksrcpath}/tools/clang/tools/clang-format/clang-format.el \
+ ${worksrcpath}/tools/clang/tools/clang-format/clang-format.py
+ }
+
+ build.dir ${build.dir}/tools/lldb
+
+ destroot {
+ destroot.target install/fast
+ system "cd ${destroot.dir} && ${destroot.cmd} ${destroot.pre_args} ${destroot.target} ${destroot.post_args}"
+
+ foreach bin {lldb lldb-mi lldb-server} {
+ delete ${destroot}${sub_prefix}/bin/${bin}
+ file rename ${destroot}${sub_prefix}/bin/${bin}-${lldb_executable_version} ${destroot}${sub_prefix}/bin/${bin}
+ }
+
+ xinstall -m 755 -d ${destroot}${prefix}/share/doc/lldb-${llvm_version}
+ xinstall -m 644 ${worksrcpath}/tools/lldb/docs/code-signing.txt ${destroot}${prefix}/share/doc/lldb-${llvm_version}/
+ }
+ post-activate {
+ ui_msg "Please follow the instructions in ${prefix}/lldb-${llvm_version}/code-signing.txt and then codesign the debugserver with:"
+ ui_msg " sudo codesign --force --deep --preserve-metadata=identifier,entitlements,resource-rules,requirements,flags,team-identifier --sign <identity> ${sub_prefix}/bin/debugserver"
+ }
+}
+
post-destroot {
foreach bin [glob ${destroot}${sub_prefix}/bin/*] {
set bin_filename [string map "${sub_prefix} ${prefix}" ${bin}]-${suffix}
@@ -342,6 +441,8 @@
# http://trac.macports.org/ticket/33207
ln -s ${prefix}/libexec/ld64/ld ${destroot}${sub_prefix}/bin/ld
+ } elseif {${subport} eq "lldb-${llvm_version}"} {
+ delete ${destroot}${prefix}/bin/debugserver-${suffix}
}
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20160909/2c41ae55/attachment.html>
More information about the macports-changes
mailing list