diff options
author | Sandy Carter | 2018-08-29 20:29:56 -0700 |
---|---|---|
committer | Sandy Carter | 2018-08-29 21:15:48 -0700 |
commit | e58cf8fdec17b79c3e6a91595096191adab40336 (patch) | |
tree | 7ba93287823d07aabc7709a19b31bcf471c51e74 | |
download | aur-e58cf8fdec17b79c3e6a91595096191adab40336.tar.gz |
Add templight
-rw-r--r-- | .SRCINFO | 29 | ||||
-rw-r--r-- | .gitignore | 8 | ||||
-rw-r--r-- | GetArgumentVectorFix.patch | 46 | ||||
-rw-r--r-- | PKGBUILD | 54 |
4 files changed, 137 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..e68faeca4daf --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,29 @@ +pkgbase = templight-git + pkgdesc = Template Instantiation Profiler and Debugger + pkgver = r138.91589f9 + pkgrel = 1 + url = https://github.com/mikael-s-persson/templight + arch = x86_64 + license = custom:University of Illinois/NCSA Open Source License + makedepends = git + makedepends = subversion + makedepends = llvm + makedepends = cmake + depends = llvm-libs + depends = gcc + depends = clang + depends = compiler-rt + optdepends = templight-tools: Additional facilities to process the profiling data. + provides = templight + conflicts = templight + source = llvm::svn+http://llvm.org/svn/llvm-project/llvm/trunk + source = cfe::svn+http://llvm.org/svn/llvm-project/cfe/trunk + source = git://github.com/mikael-s-persson/templight.git + source = GetArgumentVectorFix.patch + sha256sums = SKIP + sha256sums = SKIP + sha256sums = SKIP + sha256sums = dbc8086e8c2f05ddd4128fd3a0d39261eed19ffd0c9509a50ad656a8a5936c1f + +pkgname = templight-git + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..df73d7cc5008 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +*.src.tar.xz +*.src.tar.xz.sig +*.pkg.tar.xz +src/ +pkg/ +templight/ +cfe/ +llvm/ diff --git a/GetArgumentVectorFix.patch b/GetArgumentVectorFix.patch new file mode 100644 index 000000000000..ed798cb2a52b --- /dev/null +++ b/GetArgumentVectorFix.patch @@ -0,0 +1,46 @@ +diff --git a/templight_driver.cpp b/templight_driver.cpp +index 1731687..c113fce 100644 +--- a/templight_driver.cpp ++++ b/templight_driver.cpp +@@ -57,6 +57,9 @@ + #include "llvm/Support/TargetSelect.h" + #include "llvm/Support/Timer.h" + #include "llvm/Support/raw_ostream.h" ++#ifdef _WIN32 ++#include "Windows/WindowsSupport.h" ++#endif + + #include "TemplightAction.h" + +@@ -475,7 +478,21 @@ void ExecuteTemplightCommand(Driver &TheDriver, DiagnosticsEngine &Diags, + + } + +- ++// llvm::sys::Process::GetArgumentVector was renamed as of rL330216 ++// https://reviews.llvm.org/rL330216 ++// This aims to preserves compatibility, but the better way to do it would ++// be to let InitLLVM do the job ++std::error_code GetArgumentVector( ++ SmallVectorImpl<const char *> &ArgsOut, ArrayRef<const char *> ArgsIn, ++ SpecificBumpPtrAllocator<char> &ArgAllocator) { ++#ifdef _WIN32 ++ return windows::GetCommandLineArguments(ArgsOut, ArgAllocator); ++#else ++ ArgsOut.append(ArgsIn.begin(), ArgsIn.end()); ++ (void)ArgAllocator; ++ return std::error_code(); ++#endif ++} + + int main(int argc_, const char **argv_) { + llvm::sys::PrintStackTraceOnErrorSignal(argv_[0]); +@@ -486,7 +503,7 @@ int main(int argc_, const char **argv_) { + + SmallVector<const char *, 256> argv; + llvm::SpecificBumpPtrAllocator<char> ArgAllocator; +- std::error_code EC = llvm::sys::Process::GetArgumentVector( ++ std::error_code EC = GetArgumentVector( + argv, llvm::makeArrayRef(argv_, argc_), ArgAllocator); + if (EC) { + llvm::errs() << "error: couldn't get arguments: " << EC.message() << '\n'; diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..8ad59778b183 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,54 @@ +pkgname=templight-git +pkgver=r138.91589f9 +pkgrel=1 +pkgdesc="Template Instantiation Profiler and Debugger" +arch=('x86_64') +url="https://github.com/mikael-s-persson/templight" +license=('custom:University of Illinois/NCSA Open Source License') +depends=('llvm-libs' 'gcc' 'clang' 'compiler-rt') +optdepends=('templight-tools: Additional facilities to process the profiling data.') +makedepends=('git' 'subversion' 'llvm' 'cmake') +provides=("templight") +conflicts=("templight") +source=(llvm::svn+http://llvm.org/svn/llvm-project/llvm/trunk + cfe::svn+http://llvm.org/svn/llvm-project/cfe/trunk + git://github.com/mikael-s-persson/templight.git + GetArgumentVectorFix.patch) +sha256sums=('SKIP' + 'SKIP' + 'SKIP' + 'dbc8086e8c2f05ddd4128fd3a0d39261eed19ffd0c9509a50ad656a8a5936c1f') + +pkgver() { + cd "$srcdir/templight" + echo "r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)" +} + +prepare() { + cd ${srcdir}/templight + + # Patch templight + # https://github.com/mikael-s-persson/templight/issues/65 + patch -p1 -i ${srcdir}/GetArgumentVectorFix.patch + + # Checkout minimal clang and add templight to tools + cp -r ${srcdir}/cfe ${srcdir}/llvm/tools/clang + cp -r ${srcdir}/templight ${srcdir}/llvm/tools/clang/tools/templight + echo "add_clang_subdirectory(templight)" >> ${srcdir}/llvm/tools/clang/tools/CMakeLists.txt +} + +build() { + mkdir -p "${srcdir}/llvm/build" + cd "${srcdir}/llvm/build" + + cmake .. -DCMAKE_BUILD_TYPE=Release + make templight +} + +package() { + mkdir -p "$pkgdir/usr/bin" + install -m755 "${srcdir}/llvm/build/bin/templight++" "$pkgdir/usr/bin" + install -Dm644 ${srcdir}/templight/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} + +# vim:set ts=2 sw=2 et: |