Ticket #145: xpra-packages-with-alterantive-names.patch
File xpra-packages-with-alterantive-names.patch, 4.1 KB (added by , 7 years ago) |
---|
-
setup.py
90 90 vpx_include_dir = "%s\\include" % vpx_PATH 91 91 vpx_lib_dir = "%s\\lib\\Win32" % vpx_PATH 92 92 93 def pkgconfig(* args):93 def pkgconfig(*packages): 94 94 def add_to_PATH(bindir): 95 95 import os 96 96 if os.environ['PATH'].find(bindir)<0: 97 97 os.environ['PATH'] = bindir + ';' + os.environ['PATH'] 98 98 if bindir not in sys.path: 99 99 sys.path.append(bindir) 100 if args[0]=="x264":100 if "x264" in packages[0]: 101 101 add_to_PATH(ffmpeg_bin_dir) 102 102 return {'include_dirs': ["xpra/x264/win32", ffmpeg_include_dir], 103 103 'library_dirs': ["xpra/x264/win32", ffmpeg_lib_dir], 104 104 'libraries': ["x264lib", "swscale", "avcodec", "avutil"]} 105 elif args[0]=="vpx":105 elif "vpx" in packages[0]: 106 106 add_to_PATH(ffmpeg_bin_dir) 107 107 return {'include_dirs': ["xpra/vpx/win32", vpx_include_dir, ffmpeg_include_dir], 108 108 'library_dirs': ["xpra/vpx/win32", vpx_lib_dir, ffmpeg_lib_dir], 109 109 'libraries': ["vpxmt", "vpxmtd", "swscale", "avcodec", "avutil"]} 110 110 else: 111 raise Exception("unknown package config: %s" % str( args))111 raise Exception("unknown package config: %s" % str(packages)) 112 112 113 113 import py2exe #@UnresolvedImport 114 114 assert py2exe is not None … … 152 152 ) 153 153 else: 154 154 # Tweaked from http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/502261 155 def pkgconfig(*packages, **ekw): 155 def pkgconfig(*packages_options, **ekw): 156 packages = [] 157 #find out which package name to use from potentially many options 158 #and bail out early with a meaningful error if we can't find any valid options 159 for package_options in packages_options: 160 #for this package options, find the ones that work 161 valid_option = None 162 if type(package_options)==str: 163 options = [package_options] #got given just one string 164 else: 165 assert type(package_options)==list 166 options = package_options #got given a list of options 167 for option in options: 168 cmd = ["pkg-config", "--exists", option] 169 proc = subprocess.Popen(cmd, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 170 status = proc.wait() 171 if status==0: 172 valid_option = option 173 break 174 if not valid_option: 175 raise Exception("cannot find a valid pkg-config package for %s" % (package_options,)) 176 packages.append(valid_option) 177 print("pkgconfig(%s,%s) using package names=%s" % (packages_options, ekw, packages)) 156 178 flag_map = {'-I': 'include_dirs', 157 179 '-L': 'library_dirs', 158 180 '-l': 'libraries'} … … 172 194 kw.setdefault('extra_link_args', []).append(token) 173 195 for k, v in kw.items(): # remove duplicates 174 196 kw[k] = list(set(v)) 175 print("pkgconfig(%s,%s) =%s" % (packages, ekw, kw))197 print("pkgconfig(%s,%s) keywords=%s" % (packages_options, ekw, kw)) 176 198 return kw 177 199 178 200 scripts=["scripts/parti", "scripts/parti-repl", … … 245 267 packages.append("xpra.x264") 246 268 cython_add(Extension("xpra.x264.codec", 247 269 ["xpra/x264/codec.pyx", "xpra/x264/x264lib.c"], 248 **pkgconfig( "x264", "libswscale", "libavcodec")270 **pkgconfig(["libx264", "x264"], "libswscale", "libavcodec") 249 271 ), min_version=(0, 16)) 250 272 if vpx_ENABLED: 251 273 packages.append("xpra.vpx") 252 274 cython_add(Extension("xpra.vpx.codec", 253 275 ["xpra/vpx/codec.pyx", "xpra/vpx/vpxlib.c"], 254 **pkgconfig( "vpx", "libswscale", "libavcodec")276 **pkgconfig(["libvpx", "vpx"], "libswscale", "libavcodec") 255 277 ), min_version=(0, 16)) 256 278 257 279