81 lines
3.5 KiB
Diff
81 lines
3.5 KiB
Diff
--- a/SConstruct
|
|
+++ b/SConstruct
|
|
@@ -18,7 +18,7 @@ if 'SCHROOT_CHROOT_NAME' in os.environ a
|
|
env.Append(LINKFLAGS = ["-static-libstdc++"])
|
|
|
|
opts = Variables()
|
|
-opts.Add(PathVariable("PREFIX", "Directory to install under", "/usr/local", PathVariable.PathIsDirCreate))
|
|
+opts.Add(PathVariable("PREFIX", "Directory to install under", "/usr", PathVariable.PathIsDirCreate))
|
|
opts.Add(PathVariable("DESTDIR", "Destination root directory", "", PathVariable.PathAccept))
|
|
opts.Add(EnumVariable("mode", "Compilation mode", "release", allowed_values=("release", "debug", "profile")))
|
|
opts.Update(env)
|
|
@@ -66,22 +66,22 @@ sky = env.Program("endless-sky", Glob("b
|
|
|
|
|
|
# Install the binary:
|
|
-env.Install("$DESTDIR$PREFIX/games", sky)
|
|
+install = env.Install("$PREFIX/bin", sky)
|
|
|
|
# Install the desktop file:
|
|
-env.Install("$DESTDIR$PREFIX/share/applications", "endless-sky.desktop")
|
|
+install += env.Install("$PREFIX/share/applications", "endless-sky.desktop")
|
|
|
|
# Install app center metadata:
|
|
-env.Install("$DESTDIR$PREFIX/share/appdata", "endless-sky.appdata.xml")
|
|
+install += env.Install("$PREFIX/share/appdata", "endless-sky.appdata.xml")
|
|
|
|
# Install icons, keeping track of all the paths.
|
|
# Most Ubuntu apps supply 16, 22, 24, 32, 48, and 256, and sometimes others.
|
|
sizes = ["16x16", "22x22", "24x24", "32x32", "48x48", "256x256"]
|
|
icons = []
|
|
for size in sizes:
|
|
- destination = "$DESTDIR$PREFIX/share/icons/hicolor/" + size + "/apps/endless-sky.png"
|
|
+ destination = "$PREFIX/share/icons/hicolor/" + size + "/apps/endless-sky.png"
|
|
icons.append(destination)
|
|
- env.InstallAs(destination, "icons/icon_" + size + ".png")
|
|
+ install += env.InstallAs(destination, "icons/icon_" + size + ".png")
|
|
|
|
# If any of those icons changed, also update the cache.
|
|
# Do not update the cache if we're not installing into "usr".
|
|
@@ -90,28 +90,30 @@ if env.get("PREFIX").startswith("/usr/")
|
|
env.Command(
|
|
[],
|
|
icons,
|
|
- "gtk-update-icon-cache -t $DESTDIR$PREFIX/share/icons/hicolor/")
|
|
+ "gtk-update-icon-cache -t $PREFIX/share/icons/hicolor/")
|
|
|
|
# Install the man page.
|
|
env.Command(
|
|
- "$DESTDIR$PREFIX/share/man/man6/endless-sky.6.gz",
|
|
+ "$PREFIX/share/man/man6/endless-sky.6.gz",
|
|
"endless-sky.6",
|
|
"gzip -c $SOURCE > $TARGET")
|
|
|
|
# Install the data files.
|
|
def RecursiveInstall(env, target, source):
|
|
rootIndex = len(env.Dir(source).abspath) + 1
|
|
+ inst = []
|
|
for node in env.Glob(os.path.join(source, '*')):
|
|
if node.isdir():
|
|
name = node.abspath[rootIndex:]
|
|
- RecursiveInstall(env, os.path.join(target, name), node.abspath)
|
|
+ inst += RecursiveInstall(env, os.path.join(target, name), node.abspath)
|
|
else:
|
|
- env.Install(target, node)
|
|
-RecursiveInstall(env, "$DESTDIR$PREFIX/share/games/endless-sky/data", "data")
|
|
-RecursiveInstall(env, "$DESTDIR$PREFIX/share/games/endless-sky/images", "images")
|
|
-RecursiveInstall(env, "$DESTDIR$PREFIX/share/games/endless-sky/sounds", "sounds")
|
|
-env.Install("$DESTDIR$PREFIX/share/games/endless-sky", "credits.txt")
|
|
-env.Install("$DESTDIR$PREFIX/share/games/endless-sky", "keys.txt")
|
|
+ inst += env.Install(target, node)
|
|
+ return inst
|
|
+install += RecursiveInstall(env, "$PREFIX/share/games/endless-sky/data", "data")
|
|
+install += RecursiveInstall(env, "$PREFIX/share/games/endless-sky/images", "images")
|
|
+install += RecursiveInstall(env, "$PREFIX/share/games/endless-sky/sounds", "sounds")
|
|
+install += env.Install("$PREFIX/share/games/endless-sky", "credits.txt")
|
|
+install += env.Install("$PREFIX/share/games/endless-sky", "keys.txt")
|
|
|
|
# Make the word "install" in the command line do an installation.
|
|
-env.Alias("install", "$DESTDIR$PREFIX")
|
|
+env.Alias("install", install)
|