Subversion Repositories configs

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
141 - 1
# Note that the path could itself be a python file, or a directory
2
 
3
# Python's compile_all module only works on directories, and requires a max
4
# recursion depth
5
 
6
# Note that the py_byte_compile macro should work for all Python versions
7
# Which unfortunately makes the definition more complicated than it should be
8
 
9
%py_byte_compile()\
10
py2_byte_compile () {\
11
    python_binary="%1"\
12
    bytecode_compilation_path="%2"\
13
    find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
14
    find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2]) for f in sys.argv[1:]]' || :\
15
}\
16
\
17
py3_byte_compile () {\
18
    python_binary="%1"\
19
    bytecode_compilation_path="%2"\
20
    find $bytecode_compilation_path -type f -a -name "*.py" -print0 | xargs -0 $python_binary -O -c 'import py_compile, sys; [py_compile.compile(f, dfile=f.partition("$RPM_BUILD_ROOT")[2], optimize=opt) for opt in range(2) for f in sys.argv[1:]]' || :\
21
}\
22
\
23
# Get version without a dot (36 instead of 3.6), bash doesn't compare floats well \
24
python_version=$(%1 -c "import sys; sys.stdout.write('{0.major}{0.minor}'.format(sys.version_info))") \
25
# The bytecompilation syntax has changed between Python 3.4 and Python 3.5, so for 3.4 and earlier we use the "Python 2" syntax \
26
[ "$python_version" -ge 35 ] && py3_byte_compile "%1" "%2" || py2_byte_compile "%1" "%2" \
27
%{nil}