[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35745] trunk/blender/build_files/cmake/ cmake_qtcreator_project.py: write project files into the build dir.

Campbell Barton ideasman42 at gmail.com
Thu Mar 24 11:54:43 CET 2011


Revision: 35745
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35745
Author:   campbellbarton
Date:     2011-03-24 10:54:42 +0000 (Thu, 24 Mar 2011)
Log Message:
-----------
write project files into the build dir.

Modified Paths:
--------------
    trunk/blender/build_files/cmake/cmake_qtcreator_project.py

Modified: trunk/blender/build_files/cmake/cmake_qtcreator_project.py
===================================================================
--- trunk/blender/build_files/cmake/cmake_qtcreator_project.py	2011-03-24 09:59:02 UTC (rev 35744)
+++ trunk/blender/build_files/cmake/cmake_qtcreator_project.py	2011-03-24 10:54:42 UTC (rev 35745)
@@ -26,11 +26,12 @@
 """
 Example Win32 usage:
  c:\Python32\python.exe c:\blender_dev\blender\build_files\cmake\cmake_qtcreator_project.py c:\blender_dev\cmake_build
- 
+
 example linux usage
  python .~/blenderSVN/blender/build_files/cmake/cmake_qtcreator_project.py ~/blenderSVN/cmake
 """
 
+import sys
 import os
 from os.path import join, dirname, normpath, abspath, splitext, relpath, exists
 
@@ -40,7 +41,21 @@
 
 SIMPLE_PROJECTFILE = False
 
+# get cmake path
+CMAKE_DIR = sys.argv[-1]
 
+if not os.path.exists(os.path.join(CMAKE_DIR, "CMakeCache.txt")):
+    CMAKE_DIR = os.getcwd()
+if not os.path.exists(os.path.join(CMAKE_DIR, "CMakeCache.txt")):
+    print("CMakeCache.txt not found in %r or %r\n    Pass CMake build dir as an argument, or run from that dir, aborting" % (CMAKE_DIR, os.getcwd()))
+    sys.exit(1)
+
+
+# could be either.
+# PROJECT_DIR = base
+PROJECT_DIR = CMAKE_DIR
+
+
 def source_list(path, filename_check=None):
     for dirpath, dirnames, filenames in os.walk(path):
 
@@ -69,10 +84,12 @@
     ext = splitext(filename)[1]
     return (ext == ".py")
 
+
 def is_glsl(filename):
     ext = splitext(filename)[1]
     return (ext == ".glsl")
-    
+
+
 def is_c(filename):
     ext = splitext(filename)[1]
     return (ext in (".c", ".cpp", ".cxx", ".m", ".mm", ".rc"))
@@ -96,12 +113,12 @@
     """ Extracr includes and defines from cmake.
     """
 
-    def create_eclipse_project(cmake_dir):
+    def create_eclipse_project(CMAKE_DIR):
         import sys
         if sys.platform == "win32":
-            cmd = 'cmake %r -G"Eclipse CDT4 - MinGW Makefiles"' % cmake_dir
+            cmd = 'cmake %r -G"Eclipse CDT4 - MinGW Makefiles"' % CMAKE_DIR
         else:
-            cmd = 'cmake %r -G"Eclipse CDT4 - Unix Makefiles"' % cmake_dir
+            cmd = 'cmake %r -G"Eclipse CDT4 - Unix Makefiles"' % CMAKE_DIR
 
         os.system(cmd)
 
@@ -111,18 +128,10 @@
     import os
     import sys
 
-    cmake_dir = sys.argv[-1]
+    create_eclipse_project(CMAKE_DIR)
 
-    if not os.path.exists(os.path.join(cmake_dir, "CMakeCache.txt")):
-        cmake_dir = os.getcwd()
-    if not os.path.exists(os.path.join(cmake_dir, "CMakeCache.txt")):
-        print("CMakeCache.txt not found in %r or %r\n    Pass CMake build dir as an argument, or run from that dir, aborting" % (cmake_dir, os.getcwd()))
-        sys.exit(1)
-
-    create_eclipse_project(cmake_dir)
-
     from xml.dom.minidom import parse
-    tree = parse(os.path.join(cmake_dir, ".cproject"))
+    tree = parse(os.path.join(CMAKE_DIR, ".cproject"))
     '''
     f = open(".cproject_pretty", 'w')
     f.write(tree.toprettyxml(indent="    ", newl=""))
@@ -165,26 +174,27 @@
 
     return includes, defines
 
+
 def create_qtc_project_main():
     files = list(source_list(base, filename_check=is_project_file))
-    files_rel = [relpath(f, start=base) for f in files]
+    files_rel = [relpath(f, start=PROJECT_DIR) for f in files]
     files_rel.sort()
 
     # --- qtcreator specific, simple format
     if SIMPLE_PROJECTFILE:
         # --- qtcreator specific, simple format
         PROJECT_NAME = "Blender"
-        f = open(join(base, "%s.files" % PROJECT_NAME), 'w')
+        f = open(join(PROJECT_DIR, "%s.files" % PROJECT_NAME), 'w')
         f.write("\n".join(files_rel))
 
-        f = open(join(base, "%s.includes" % PROJECT_NAME), 'w')
+        f = open(join(PROJECT_DIR, "%s.includes" % PROJECT_NAME), 'w')
         f.write("\n".join(sorted(list(set(dirname(f) for f in files_rel if is_c_header(f))))))
 
-        qtc_prj = join(base, "%s.creator" % PROJECT_NAME)
+        qtc_prj = join(PROJECT_DIR, "%s.creator" % PROJECT_NAME)
         f = open(qtc_prj, 'w')
         f.write("[General]\n")
 
-        qtc_cfg = join(base, "%s.config" % PROJECT_NAME)
+        qtc_cfg = join(PROJECT_DIR, "%s.config" % PROJECT_NAME)
         if not exists(qtc_cfg):
             f = open(qtc_cfg, 'w')
             f.write("// ADD PREDEFINED MACROS HERE!\n")
@@ -196,46 +206,49 @@
         includes.sort()
 
         PROJECT_NAME = "Blender"
-        f = open(join(base, "%s.files" % PROJECT_NAME), 'w')
+        FILE_NAME = PROJECT_NAME.lower()
+        f = open(join(PROJECT_DIR, "%s.files" % FILE_NAME), 'w')
         f.write("\n".join(files_rel))
 
-        f = open(join(base, "%s.includes" % PROJECT_NAME), 'w')
+        f = open(join(PROJECT_DIR, "%s.includes" % FILE_NAME), 'w')
         f.write("\n".join(sorted(includes)))
 
-        qtc_prj = join(base, "%s.creator" % PROJECT_NAME)
+        qtc_prj = join(PROJECT_DIR, "%s.creator" % FILE_NAME)
         f = open(qtc_prj, 'w')
         f.write("[General]\n")
 
-        qtc_cfg = join(base, "%s.config" % PROJECT_NAME)
+        qtc_cfg = join(PROJECT_DIR, "%s.config" % FILE_NAME)
         f = open(qtc_cfg, 'w')
         f.write("// ADD PREDEFINED MACROS HERE!\n")
         f.write("\n".join([("#define %s %s" % item) for item in defines]))
 
-    print("Main Blender project file written to: %s" % qtc_prj)
+    print("Blender project file written to: %s" % qtc_prj)
     # --- end
 
+
 def create_qtc_project_python():
     files = list(source_list(base, filename_check=is_py))
-    files_rel = [relpath(f, start=base) for f in files]
+    files_rel = [relpath(f, start=PROJECT_DIR) for f in files]
     files_rel.sort()
 
     # --- qtcreator specific, simple format
     PROJECT_NAME = "Blender_Python"
-    f = open(join(base, "%s.files" % PROJECT_NAME), 'w')
+    FILE_NAME = PROJECT_NAME.lower()
+    f = open(join(PROJECT_DIR, "%s.files" % FILE_NAME), 'w')
     f.write("\n".join(files_rel))
-    
-    qtc_prj = join(base, "%s.creator" % PROJECT_NAME)
+
+    qtc_prj = join(PROJECT_DIR, "%s.creator" % FILE_NAME)
     f = open(qtc_prj, 'w')
     f.write("[General]\n")
-    
-    qtc_cfg = join(base, "%s.config" % PROJECT_NAME)
+
+    qtc_cfg = join(PROJECT_DIR, "%s.config" % FILE_NAME)
     if not exists(qtc_cfg):
         f = open(qtc_cfg, 'w')
         f.write("// ADD PREDEFINED MACROS HERE!\n")
-    
-    print("Blender python project file written to: %s" % qtc_prj)
 
+    print("Python project file written to:  %s" % qtc_prj)
 
+
 def main():
     create_qtc_project_main()
     create_qtc_project_python()




More information about the Bf-blender-cvs mailing list