diff options
author | Alp Toker <alp@nuanti.com> | 2014-06-04 03:57:44 +0000 |
---|---|---|
committer | Alp Toker <alp@nuanti.com> | 2014-06-04 03:57:44 +0000 |
commit | a5bd2adbc74fe77909efcf16a9462aa8c00f47ad (patch) | |
tree | 8827d934b4030df459cb0a93be497a2d05817adc /lib/Support | |
parent | 4830b9c727d5b2c4e30b51ea31b3a74473416bbe (diff) | |
download | llvm-a5bd2adbc74fe77909efcf16a9462aa8c00f47ad.tar.gz llvm-a5bd2adbc74fe77909efcf16a9462aa8c00f47ad.tar.bz2 llvm-a5bd2adbc74fe77909efcf16a9462aa8c00f47ad.tar.xz |
GraphWriter: support the XDG open utility
This runs a suitable viewer on Unix desktop environments specified by
Freedesktop.org (GNOME, KDE, Linux distributions etc.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210147 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support')
-rw-r--r-- | lib/Support/GraphWriter.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/Support/GraphWriter.cpp b/lib/Support/GraphWriter.cpp index 1521475a8b..a7bb4f26a5 100644 --- a/lib/Support/GraphWriter.cpp +++ b/lib/Support/GraphWriter.cpp @@ -164,12 +164,14 @@ bool llvm::DisplayGraph(StringRef FilenameRef, bool wait, return ExecGraphViewer(ViewerPath, args, Filename, wait, ErrMsg); } - enum PSViewerKind { PSV_None, PSV_OSXOpen, PSV_Ghostview }; + enum PSViewerKind { PSV_None, PSV_OSXOpen, PSV_XDGOpen, PSV_Ghostview }; PSViewerKind PSViewer = PSV_None; #ifdef __APPLE__ - if (S.TryFindProgram("open", ViewerPath)) + if (!PSViewer && S.TryFindProgram("open", ViewerPath)) PSViewer = PSV_OSXOpen; #endif + if (!PSViewer && S.TryFindProgram("xdg-open", ViewerPath)) + PSViewer = PSV_XDGOpen; if (!PSViewer && S.TryFindProgram("gv", ViewerPath)) PSViewer = PSV_Ghostview; @@ -202,6 +204,10 @@ bool llvm::DisplayGraph(StringRef FilenameRef, bool wait, args.push_back("-W"); args.push_back(PSFilename.c_str()); break; + case PSV_XDGOpen: + wait = false; + args.push_back(PSFilename.c_str()); + break; case PSV_Ghostview: args.push_back("--spartan"); args.push_back(PSFilename.c_str()); |