mirror of
https://github.com/Relintai/scons_gd.git
synced 2025-02-14 17:00:20 +01:00
37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
import SCons
|
|
class CustomCacheDir1(SCons.CacheDir.CacheDir):
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
print("INSTANCIATED %s" % str(type(self).__name__))
|
|
|
|
@classmethod
|
|
def copy_to_cache(cls, env, src, dst):
|
|
print("MY_CUSTOM_CACHEDIR_CLASS1")
|
|
super().copy_to_cache(env, src, dst)
|
|
|
|
class CustomCacheDir2(SCons.CacheDir.CacheDir):
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
print("INSTANCIATED %s" % str(type(self).__name__))
|
|
|
|
@classmethod
|
|
def copy_to_cache(cls, env, src, dst):
|
|
print("MY_CUSTOM_CACHEDIR_CLASS2")
|
|
super().copy_to_cache(env, src, dst)
|
|
|
|
env = Environment(tools=[])
|
|
env.CacheDir('cache1', CustomCacheDir1)
|
|
env.CacheDir('cache2', CustomCacheDir2)
|
|
|
|
# two cachedirs were initialized, but the second one was the most recent
|
|
# and should remain in the cloned environment, even when we switch the
|
|
# original environment back. The cachedir2 should be the only copy_to_cache
|
|
# function we call.
|
|
cloned = env.Clone()
|
|
cloned.Command('file.out', 'file.in', Copy('$TARGET', '$SOURCE'))
|
|
|
|
env.CacheDir('cache1', CustomCacheDir1)
|
|
|