mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-19 16:21:17 +00:00
79 lines
2.6 KiB
Python
Executable file
79 lines
2.6 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
#
|
|
# Copyright (c) 2014,Thibault Saunier <thibault.saunier@collabora.com>
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this program; if not, write to the
|
|
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
# Boston, MA 02110-1301, USA.
|
|
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
LIBDIR = r'@LIBDIR@'
|
|
BUILDDIR = r'@BUILDDIR@'
|
|
SRCDIR = r'@SRCDIR@'
|
|
GIT_FIRST_HASH = 'da962d096af9460502843e41b7d25fdece7ff1c2'
|
|
|
|
|
|
def _get_git_first_hash(path):
|
|
cdir = os.path.abspath(os.curdir)
|
|
try:
|
|
os.chdir(path)
|
|
res = subprocess.check_output(['git', 'rev-list', '--max-parents=0', 'HEAD']).decode().rstrip('\n')
|
|
except (subprocess.CalledProcessError, OSError):
|
|
res = ''
|
|
finally:
|
|
os.chdir(cdir)
|
|
|
|
return res
|
|
|
|
|
|
def _in_devel():
|
|
root_dir = os.path.abspath(os.path.dirname(os.path.join(os.path.dirname(os.path.abspath(__file__)),
|
|
"..", "..", "..")))
|
|
return _get_git_first_hash(root_dir) == GIT_FIRST_HASH
|
|
|
|
|
|
def _add_gst_launcher_path():
|
|
f = os.path.abspath(__file__)
|
|
if _in_devel():
|
|
print("Running with development path")
|
|
dir_ = os.path.dirname(os.path.abspath(__file__))
|
|
root = os.path.split(dir_)[0]
|
|
elif f.startswith(BUILDDIR):
|
|
# Make sure to have the configured config.py in the python path
|
|
sys.path.insert(0, os.path.abspath(os.path.join(BUILDDIR, "..")))
|
|
root = os.path.abspath(os.path.join(SRCDIR, "../"))
|
|
else:
|
|
root = os.path.join(LIBDIR, 'gst-validate-launcher', 'python')
|
|
|
|
sys.path.insert(0, root)
|
|
return os.path.join(root, "launcher")
|
|
|
|
|
|
if "__main__" == __name__:
|
|
libsdir = _add_gst_launcher_path()
|
|
from launcher.main import main
|
|
run_profile = os.environ.get('GST_VALIDATE_LAUNCHER_PROFILING', False)
|
|
if run_profile:
|
|
import cProfile
|
|
prof = cProfile.Profile()
|
|
try:
|
|
res = prof.runcall(main, libsdir)
|
|
finally:
|
|
prof.dump_stats('gst-validate-launcher-runstats')
|
|
exit(res)
|
|
|
|
exit(main(libsdir))
|