[Bf-blender-cvs] [99e06af9c8c] master: Cleanup: move 'make help_features' into own file

Campbell Barton noreply at git.blender.org
Thu Sep 13 08:10:37 CEST 2018


Commit: 99e06af9c8c2d2c92570796f76baefd405a3b67a
Author: Campbell Barton
Date:   Thu Sep 13 16:20:02 2018 +1000
Branches: master
https://developer.blender.org/rB99e06af9c8c2d2c92570796f76baefd405a3b67a

Cleanup: move 'make help_features' into own file

===================================================================

M	GNUmakefile
A	build_files/cmake/cmake_print_build_options.py

===================================================================

diff --git a/GNUmakefile b/GNUmakefile
index 13f8a558c3a..02e081e03df 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -474,15 +474,7 @@ doc_man: .FORCE
 	$(PYTHON) doc/manpage/blender.1.py $(BLENDER_BIN) blender.1
 
 help_features: .FORCE
-	@$(PYTHON) -c \
-		"import re; \
-		print('\n'.join([ \
-		w for l in open('"$(BLENDER_DIR)"/CMakeLists.txt', 'r').readlines() \
-		if not l.lstrip().startswith('#') \
-		for w in (re.sub(\
-		    r'.*\boption\s*\(\s*(WITH_[a-zA-Z0-9_]+)\s+(\".*\")\s*.*', r'\g<1> - \g<2>', l).strip('() \n'),) \
-		if w.startswith('WITH_')]))" | uniq
-
+	@$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_print_build_options.py" $(BLENDER_DIR)"/CMakeLists.txt"
 
 clean: .FORCE
 	$(MAKE) -C "$(BUILD_DIR)" clean
diff --git a/build_files/cmake/cmake_print_build_options.py b/build_files/cmake/cmake_print_build_options.py
new file mode 100644
index 00000000000..fb7a5b33bf0
--- /dev/null
+++ b/build_files/cmake/cmake_print_build_options.py
@@ -0,0 +1,25 @@
+# Apache License, Version 2.0
+
+# Simple utility that prints all WITH_* options in a CMakeLists.txt
+# Called by 'make help_features'
+
+import re
+import sys
+
+cmakelists_file = sys.argv[-1]
+
+def main():
+    options = []
+    for l in open(cmakelists_file, 'r').readlines():
+        if not l.lstrip().startswith('#'):
+            l_option = re.sub(r'.*\boption\s*\(\s*(WITH_[a-zA-Z0-9_]+)\s+\"(.*)\"\s*.*', r'\g<1> - \g<2>', l)
+            if l_option != l:
+                l_option = l_option.strip()
+                if l_option.startswith('WITH_'):
+                    options.append(l_option)
+
+    print('\n'.join(options))
+
+
+if __name__ == "__main__":
+    main()



More information about the Bf-blender-cvs mailing list