From 8d18384809957cc923752e10a86adab129e3df48 Mon Sep 17 00:00:00 2001 From: Chris Bieneman Date: Wed, 21 Aug 2019 01:48:28 +0000 Subject: [PATCH] Autogenerate the shebang lines for tools/opt-viewer Summary: Since these files depend on the built python modules, they need to use the right python binary to run them. So use configure_file to set the right shebang line. Patch By: cbiesinger (Christian Biesinger) Reviewers: chandlerc, beanz, anemet Reviewed By: anemet Subscribers: compnerd, JDevlieghere, mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65983 llvm-svn: 369486 --- llvm/CMakeLists.txt | 2 ++ llvm/tools/opt-viewer/CMakeLists.txt | 21 ++++++++++++++++++--- .../opt-viewer/{opt-diff.py => opt-diff.py.in} | 2 +- .../opt-viewer/{opt-stats.py => opt-stats.py.in} | 2 +- .../opt-viewer/{opt-viewer.py => opt-viewer.py.in} | 2 +- .../opt-viewer/{optrecord.py => optrecord.py.in} | 2 +- 6 files changed, 24 insertions(+), 7 deletions(-) rename llvm/tools/opt-viewer/{opt-diff.py => opt-diff.py.in} (98%) rename llvm/tools/opt-viewer/{opt-stats.py => opt-stats.py.in} (98%) rename llvm/tools/opt-viewer/{opt-viewer.py => opt-viewer.py.in} (99%) rename llvm/tools/opt-viewer/{optrecord.py => optrecord.py.in} (99%) diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 678f1a7..0e77e0e 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -660,6 +660,8 @@ if( ${PYTHON_VERSION_STRING} VERSION_LESS 2.7 ) message(FATAL_ERROR "Python 2.7 or newer is required") endif() +get_filename_component(PYTHON_BASENAME ${PYTHON_EXECUTABLE} NAME) + ###### # LLVMBuild Integration # diff --git a/llvm/tools/opt-viewer/CMakeLists.txt b/llvm/tools/opt-viewer/CMakeLists.txt index 19b6069..1864c2b 100644 --- a/llvm/tools/opt-viewer/CMakeLists.txt +++ b/llvm/tools/opt-viewer/CMakeLists.txt @@ -1,13 +1,28 @@ set (files + "optpmap.py" + "style.css") + +set (generated_files "opt-diff.py" "opt-stats.py" "opt-viewer.py" - "optpmap.py" - "optrecord.py" - "style.css") + "optrecord.py") + +foreach (file ${generated_files}) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/${file}.in + ${CMAKE_CURRENT_BINARY_DIR}/${file}) +endforeach (file) foreach (file ${files}) install(PROGRAMS ${file} DESTINATION share/opt-viewer COMPONENT opt-viewer) endforeach (file) + + +foreach (file ${generated_files}) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${file} + DESTINATION share/opt-viewer + COMPONENT opt-viewer) +endforeach (file) diff --git a/llvm/tools/opt-viewer/opt-diff.py b/llvm/tools/opt-viewer/opt-diff.py.in similarity index 98% rename from llvm/tools/opt-viewer/opt-diff.py rename to llvm/tools/opt-viewer/opt-diff.py.in index 36e81a5..a561bb6 100755 --- a/llvm/tools/opt-viewer/opt-diff.py +++ b/llvm/tools/opt-viewer/opt-diff.py.in @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env @PYTHON_BASENAME@ from __future__ import print_function diff --git a/llvm/tools/opt-viewer/opt-stats.py b/llvm/tools/opt-viewer/opt-stats.py.in similarity index 98% rename from llvm/tools/opt-viewer/opt-stats.py rename to llvm/tools/opt-viewer/opt-stats.py.in index f4ee3a7..4f10286 100755 --- a/llvm/tools/opt-viewer/opt-stats.py +++ b/llvm/tools/opt-viewer/opt-stats.py.in @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env @PYTHON_BASENAME@ from __future__ import print_function diff --git a/llvm/tools/opt-viewer/opt-viewer.py b/llvm/tools/opt-viewer/opt-viewer.py.in similarity index 99% rename from llvm/tools/opt-viewer/opt-viewer.py rename to llvm/tools/opt-viewer/opt-viewer.py.in index 4c10588..288e01e 100755 --- a/llvm/tools/opt-viewer/opt-viewer.py +++ b/llvm/tools/opt-viewer/opt-viewer.py.in @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env @PYTHON_BASENAME@ from __future__ import print_function diff --git a/llvm/tools/opt-viewer/optrecord.py b/llvm/tools/opt-viewer/optrecord.py.in similarity index 99% rename from llvm/tools/opt-viewer/optrecord.py rename to llvm/tools/opt-viewer/optrecord.py.in index f6fd772..79d377c 100644 --- a/llvm/tools/opt-viewer/optrecord.py +++ b/llvm/tools/opt-viewer/optrecord.py.in @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env @PYTHON_BASENAME@ from __future__ import print_function -- 2.7.4