aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--fix-gn-sln.py20
1 files changed, 17 insertions, 3 deletions
diff --git a/fix-gn-sln.py b/fix-gn-sln.py
index ced4718216..2c814f8ae7 100644
--- a/fix-gn-sln.py
+++ b/fix-gn-sln.py
@@ -7,16 +7,30 @@ import glob
import sys
from shutil import copyfile
-srcDir = sys.argv[1]
-
# Get list of existing directories to use as configs
configs = []
+configsWithSln = []
+srcDir = ""
+newestSlnTimestamp = 0
for root, dirs, files in os.walk("out"):
for outDir in dirs:
- if os.path.exists("out/" + outDir + "/build.ninja.d"):
+ gnFile = os.path.join("out", outDir, "build.ninja.d")
+ slnFile = os.path.join("out", outDir, "all.sln")
+ if os.path.exists(gnFile):
configs.append(outDir)
+ if os.path.exists(slnFile):
+ configsWithSln.append(outDir)
+ slnTimestamp = os.path.getmtime(slnFile)
+ if slnTimestamp > newestSlnTimestamp:
+ newestSlnTimestamp = slnTimestamp
+ srcDir = outDir
break
+# We need at least one config with a solution
+if len(configsWithSln) == 0:
+ print "ERROR: At least one GN directory must have been built with --ide=vs"
+ sys.exit()
+
# Ensure directories exist
try:
os.makedirs("out/sln/obj")