summaryrefslogtreecommitdiff
path: root/third_party/waf/waflib/extras/unc.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/waf/waflib/extras/unc.py')
-rw-r--r--third_party/waf/waflib/extras/unc.py110
1 files changed, 0 insertions, 110 deletions
diff --git a/third_party/waf/waflib/extras/unc.py b/third_party/waf/waflib/extras/unc.py
deleted file mode 100644
index e630c2a7d05..00000000000
--- a/third_party/waf/waflib/extras/unc.py
+++ /dev/null
@@ -1,110 +0,0 @@
-#! /usr/bin/env python
-# encoding: utf-8
-# Thomas Nagy, 2014 (ita)
-
-"""
-This module enables automatic handling of network paths of the form \\server\share for both input
-and output files. While a typical script may require the following::
-
- import os
- def build(bld):
-
- node = bld.root.make_node('\\\\COMPUTER\\share\\test.txt')
-
- # mark the server/share levels as folders
- k = node.parent
- while k:
- k.cache_isdir = True
- k = k.parent
-
- # clear the file if removed
- if not os.path.isfile(node.abspath()):
- node.sig = None
-
- # create the folder structure
- if node.parent.height() > 2:
- node.parent.mkdir()
-
- # then the task generator
- def myfun(tsk):
- tsk.outputs[0].write("data")
- bld(rule=myfun, source='wscript', target=[nd])
-
-this tool will make the process much easier, for example::
-
- def configure(conf):
- conf.load('unc') # do not import the module directly
-
- def build(bld):
- def myfun(tsk):
- tsk.outputs[0].write("data")
- bld(rule=myfun, update_outputs=True,
- source='wscript',
- target='\\\\COMPUTER\\share\\test.txt')
- bld(rule=myfun, update_outputs=True,
- source='\\\\COMPUTER\\share\\test.txt',
- target='\\\\COMPUTER\\share\\test2.txt')
-"""
-
-import os
-from waflib import Node, Utils, Context
-
-def find_resource(self, lst):
- if isinstance(lst, str):
- lst = [x for x in Node.split_path(lst) if x and x != '.']
-
- if lst[0].startswith('\\\\'):
- if len(lst) < 3:
- return None
- node = self.ctx.root.make_node(lst[0]).make_node(lst[1])
- node.cache_isdir = True
- node.parent.cache_isdir = True
-
- ret = node.search_node(lst[2:])
- if not ret:
- ret = node.find_node(lst[2:])
- if ret and os.path.isdir(ret.abspath()):
- return None
- return ret
-
- return self.find_resource_orig(lst)
-
-def find_or_declare(self, lst):
- if isinstance(lst, str):
- lst = [x for x in Node.split_path(lst) if x and x != '.']
-
- if lst[0].startswith('\\\\'):
- if len(lst) < 3:
- return None
- node = self.ctx.root.make_node(lst[0]).make_node(lst[1])
- node.cache_isdir = True
- node.parent.cache_isdir = True
- ret = node.find_node(lst[2:])
- if not ret:
- ret = node.make_node(lst[2:])
- if not os.path.isfile(ret.abspath()):
- ret.sig = None
- ret.parent.mkdir()
- return ret
-
- return self.find_or_declare_orig(lst)
-
-def abspath(self):
- """For MAX_PATH limitations"""
- ret = self.abspath_orig()
- if not ret.startswith("\\"):
- return "\\\\?\\" + ret
- return ret
-
-if Utils.is_win32:
- Node.Node.find_resource_orig = Node.Node.find_resource
- Node.Node.find_resource = find_resource
-
- Node.Node.find_or_declare_orig = Node.Node.find_or_declare
- Node.Node.find_or_declare = find_or_declare
-
- Node.Node.abspath_orig = Node.Node.abspath
- Node.Node.abspath = abspath
-
- for k in list(Context.cache_modules.keys()):
- Context.cache_modules["\\\\?\\" + k] = Context.cache_modules[k]