Merge branch 'blender2.7'
[blender.git] / build_files / cmake / cmake_consistency_check.py
index ab87095874f3d9b550d21d161d3a38b875dc85ff..e23d4dae48a7c8b45f2750ddefad4e24ce98dece 100755 (executable)
@@ -16,8 +16,6 @@
 # along with this program; if not, write to the Free Software Foundation,
 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 #
-# Contributor(s): Campbell Barton
-#
 # ***** END GPL LICENSE BLOCK *****
 
 # <pep8 compliant>
@@ -29,7 +27,8 @@ if not sys.version.startswith("3"):
     sys.exit(1)
 
 from cmake_consistency_check_config import (
-    IGNORE,
+    IGNORE_SOURCE,
+    IGNORE_CMAKE,
     UTF8_CHECK,
     SOURCE_DIR,
     BUILD_DIR,
@@ -156,6 +155,7 @@ def cmake_get_src(f):
                         break
 
                     # replace dirs
+                    l = l.replace("${CMAKE_SOURCE_DIR}", SOURCE_DIR)
                     l = l.replace("${CMAKE_CURRENT_SOURCE_DIR}", cmake_base)
                     l = l.replace("${CMAKE_CURRENT_BINARY_DIR}", cmake_base_bin)
                     l = l.strip('"')
@@ -238,8 +238,16 @@ def cmake_get_src(f):
     filen.close()
 
 
-def is_ignore(f, ignore_used):
-    for index, ig in enumerate(IGNORE):
+def is_ignore_source(f, ignore_used):
+    for index, ig in enumerate(IGNORE_SOURCE):
+        if ig in f:
+            ignore_used[index] = True
+            return True
+    return False
+
+
+def is_ignore_cmake(f, ignore_used):
+    for index, ig in enumerate(IGNORE_CMAKE):
         if ig in f:
             ignore_used[index] = True
             return True
@@ -250,8 +258,12 @@ def main():
 
     print("Scanning:", SOURCE_DIR)
 
+    ignore_used_source = [False] * len(IGNORE_SOURCE)
+    ignore_used_cmake = [False] * len(IGNORE_CMAKE)
+
     for cmake in source_list(SOURCE_DIR, is_cmake):
-        cmake_get_src(cmake)
+        if not is_ignore_cmake(cmake, ignore_used_cmake):
+            cmake_get_src(cmake)
 
     # First do stupid check, do these files exist?
     print("\nChecking for missing references:")
@@ -282,12 +294,10 @@ def main():
     del is_err
     del errs
 
-    ignore_used = [False] * len(IGNORE)
-
     # now check on files not accounted for.
     print("\nC/C++ Files CMake does not know about...")
     for cf in sorted(source_list(SOURCE_DIR, is_c)):
-        if not is_ignore(cf, ignore_used):
+        if not is_ignore_source(cf, ignore_used_source):
             if cf not in global_c:
                 print("missing_c: ", cf)
 
@@ -304,7 +314,7 @@ def main():
 
     print("\nC/C++ Headers CMake does not know about...")
     for hf in sorted(source_list(SOURCE_DIR, is_c_header)):
-        if not is_ignore(hf, ignore_used):
+        if not is_ignore_source(hf, ignore_used_source):
             if hf not in global_h:
                 print("missing_h: ", hf)
 
@@ -326,9 +336,15 @@ def main():
                                 traceback.print_exc()
 
     # Check ignores aren't stale
-    print("\nCheck for unused 'IGNORE' paths...")
-    for index, ig in enumerate(IGNORE):
-        if not ignore_used[index]:
+    print("\nCheck for unused 'IGNORE_SOURCE' paths...")
+    for index, ig in enumerate(IGNORE_SOURCE):
+        if not ignore_used_source[index]:
+            print("unused ignore: %r" % ig)
+
+    # Check ignores aren't stale
+    print("\nCheck for unused 'IGNORE_CMAKE' paths...")
+    for index, ig in enumerate(IGNORE_CMAKE):
+        if not ignore_used_cmake[index]:
             print("unused ignore: %r" % ig)