Jelajahi Sumber

optimize compile time

blueloveTH 1 tahun lalu
induk
melakukan
1d32d2b42a
3 mengubah file dengan 26 tambahan dan 9 penghapusan
  1. 0 1
      include/pocketpy/_generated.h
  2. 21 8
      prebuild.py
  3. 5 0
      src/_generated.cpp

File diff ditekan karena terlalu besar
+ 0 - 1
include/pocketpy/_generated.h


+ 21 - 8
prebuild.py

@@ -1,6 +1,6 @@
 import os
 
-def generate_python_sources():
+def get_sources():
     sources = {}
     for file in sorted(os.listdir("python")):
         if not file.endswith(".py"):
@@ -17,18 +17,31 @@ def generate_python_sources():
         const_char_array.append('0')
         const_char_array = ','.join(const_char_array)
         sources[key] = '{' + const_char_array + '}'
+    return sources
 
-    header = '''#pragma once
+sources = get_sources()
+
+# use LF line endings instead of CRLF
+with open("include/pocketpy/_generated.h", "wt", encoding='utf-8', newline='\n') as f:
+    data = '''#pragma once
 // generated by prebuild.py
 
 namespace pkpy{
 '''
     for key in sorted(sources.keys()):
         value = sources[key]
-        header += f'    inline const char kPythonLibs_{key}[] = {value};\n'
-    header += '}\n'
-    return header
+        data += f'    extern const char kPythonLibs_{key}[];\n'
+    data += '}    // namespace pkpy\n'
+    f.write(data)
 
-# use LF line endings instead of CRLF
-with open("include/pocketpy/_generated.h", "wt", encoding='utf-8', newline='\n') as f:
-    f.write(generate_python_sources())
+with open("src/_generated.cpp", "wt", encoding='utf-8', newline='\n') as f:
+    data = '''// generated by prebuild.py
+#include "pocketpy/_generated.h"
+
+namespace pkpy{
+'''
+    for key in sorted(sources.keys()):
+        value = sources[key]
+        data += f'    const char kPythonLibs_{key}[] = {value};\n'
+    data += '}    // namespace pkpy\n'
+    f.write(data)

File diff ditekan karena terlalu besar
+ 5 - 0
src/_generated.cpp


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini