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-diff.py => opt-diff.py.in} | 2 +- .../{opt-stats.py => opt-stats.py.in} | 2 +- .../{opt-viewer.py => opt-viewer.py.in} | 2 +- .../{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 678f1a74bdd1..0e77e0ebdeb7 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 19b606933082..1864c2b60b18 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 36e81a5d569a..a561bb626d0b 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 f4ee3a7d44e6..4f102861663d 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 4c105886cfdf..288e01ea1d18 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 f6fd772689a9..79d377c34faa 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