def make_debian(packagename, files, env): package_file="{}/{}-{}-{}.deb".format(PACKAGE_TMP_DIR,packagename, env["VERSION_STRING"], env["TARGET_ARCH"]) package_folder=scons.Dir("{}/{}".format(PACKAGE_TMP_DIR,packagename)) # dirty workaround for http://article.gmane.org/gmane.comp.programming.tools.scons.user/19939 class DependencyStringWrapper(Value): def __init__(*args,**kwargs): Value.__init__(*args,**kwargs) def get_text_contents(self): return self.read() dependency_string=DependencyStringWrapper("") env.Command(target=dependency_string, source=[f[0] for f in files], action=build_library_dependencies) controlfile=env.Textfile(target="{}/DEBIAN/control".format(package_folder), source= [ env.File("{}/{}.template".format(PACKAGE_TMP_DIR,packagename)), "Version: $VERSION_STRING\nArchitecture: $TARGET_ARCH\nDepends: ", dependency_string, "\n" ],TEXTFILESUFFIX="",LINESEPARATOR="") package_files=[env.Command("{}{}".format(package_folder,f[1]),f[0],scons.Copy("$TARGET","$SOURCE")) for f in files] package_dependencies=[package_folder]+package_files+[controlfile ,scons.Glob("{}/DEBIAN/*".format(package_folder)) ] package_file_node=env.Command(package_file, package_dependencies, "fakeroot dpkg-deb --build $SOURCE $TARGET".format(package_folder,package_file)) return package_file_node
def setDylibInternalPath(target, source, env): # Copy the library file srcName = str(source[0]) tgtName = str(target[0]) Script.Execute(Script.Copy(tgtName, srcName)) # Then run install_name_tool cmd = "install_name_tool " cmd += "-id " + os.path.abspath(tgtName) + " " cmd += tgtName os.system(cmd)