[Piglit] [PATCH 1/2] cmake: Install piglit as piglit.py on Windows.

Dylan Baker baker.dylan.c at gmail.com
Tue Jun 3 15:01:57 PDT 2014


On Tuesday, June 03, 2014 06:58:37 PM jfonseca at vmware.com wrote:
> From: José Fonseca <jfonseca at vmware.com>
> 
> Windows doesn't support #!.  Instead it knows how to invoke scripts
> based off the file extension.
> ---
>  CMakeLists.txt | 7 ++++++-
>  piglit         | 4 ++++
>  2 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index a77a2a8..fed58bb 100644
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -450,8 +450,13 @@ install (
>  	REGEX "CMakeFiles|CMakeLists" EXCLUDE
>  )
> 
> +if (WIN32)
> +	set (PYTHON_SUFFIX ".py")
> +else ()
> +	set (PYTHON_SUFFIX "")
> +endif ()
>  install (
> -	PROGRAMS piglit RENAME piglit${PIGLIT_INSTALL_VERSION_SUFFIX}
> +	PROGRAMS piglit RENAME
> piglit${PIGLIT_INSTALL_VERSION_SUFFIX}${PYTHON_SUFFIX} DESTINATION
> ${CMAKE_INSTALL_BINDIR}
>  )
> 
> diff --git a/piglit b/piglit
> index dcb51db..bf53876 100755
> --- a/piglit
> +++ b/piglit
> @@ -40,6 +40,10 @@ import argparse
>  # muck with things, if not we need to screw with the python path
>  if not path.exists('HACKING'):
>      _binpath, _bin = path.split(__file__)
> +    _binname, _binext = path.splitext(_bin)
> +    if _binext == '.py':
> +        # Drop .py extension (used on Windows)
> +        _bin = _binname

This is to allow the sys.path manipulation to work on windows, correct?
In that case could we wrap this in an obvious windows specific check,
something like:
if sys.platform == 'win32':
	_bin = path.splitext(_bin)[0]  # remove '.py' from name

>      _libdir = path.abspath(path.join(_binpath, '..', 'lib', _bin))
>      sys.path.append(_libdir)
>      if 'PIGLIT_SOURCE_DIR' not in os.environ:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20140603/7a61a4a8/attachment.sig>


More information about the Piglit mailing list