| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/usr/bin/python3
- # Copyright (C) 2009-2022, Panagiotis Christopoulos Charitos and contributors.
- # All rights reserved.
- # Code licensed under the BSD License.
- # http://www.anki3d.org/LICENSE
- import glob
- import subprocess
- import threading
- import multiprocessing
- file_extensions = ["h", "hpp", "c", "cpp", "glsl", "ankiprog"]
- directories = ["AnKi", "Tests", "Sandbox", "Tools", "Samples"]
- def thread_callback(tid):
- """ Call clang-format """
- global mutex
- global file_names
- while True:
- mutex.acquire()
- if len(file_names) > 0:
- file_name = file_names.pop()
- else:
- file_name = None
- mutex.release()
- if file_name is None:
- break
- subprocess.check_call(["./ThirdParty/Bin/Windows64/clang-format.exe", "-sort-includes=false", "-i", file_name])
- # Gather the filenames
- file_names = []
- for directory in directories:
- for extension in file_extensions:
- file_names.extend(glob.glob("./" + directory + "/**/*." + extension, recursive=True))
- file_name_count = len(file_names)
- # Start the threads
- mutex = threading.Lock()
- thread_count = multiprocessing.cpu_count()
- threads = []
- for i in range(0, thread_count):
- thread = threading.Thread(target=thread_callback, args=(i,))
- threads.append(thread)
- thread.start()
- # Join the threads
- for i in range(0, thread_count):
- threads[i].join()
- print("Done! Formatted %d files" % file_name_count)
|