|
|
@@ -12,13 +12,14 @@ linux_common = "-Wfatal-errors --std=c++17 -O2 -Wall -Wno-sign-compare -Wno-unus
|
|
|
linux_cmd = "clang++ -o pocketpy src/main.cpp " + linux_common
|
|
|
linux_lib_cmd = "clang++ -fPIC -shared -o pocketpy.so src/tmp.cpp " + linux_common
|
|
|
|
|
|
+class LibBuildEnv:
|
|
|
+ def __enter__(self):
|
|
|
+ with open("src/tmp.cpp", "w", encoding='utf-8') as f:
|
|
|
+ f.write('#include "pocketpy.h"')
|
|
|
|
|
|
-def lib_pre_build():
|
|
|
- with open("src/tmp.cpp", "w", encoding='utf-8') as f:
|
|
|
- f.write('#include "pocketpy.h"')
|
|
|
-
|
|
|
-def lib_post_build():
|
|
|
- os.remove("src/tmp.cpp")
|
|
|
+ def __exit__(self, *args):
|
|
|
+ if os.path.exists("src/tmp.cpp"):
|
|
|
+ os.remove("src/tmp.cpp")
|
|
|
|
|
|
windows_common = "CL -std:c++17 /utf-8 -GR- -EHsc -O2"
|
|
|
windows_cmd = windows_common + " -Fe:pocketpy src/main.cpp"
|
|
|
@@ -30,18 +31,16 @@ if sys.argv.__len__() == 1:
|
|
|
|
|
|
if "windows" in sys.argv:
|
|
|
if "-lib" in sys.argv:
|
|
|
- lib_pre_build()
|
|
|
- os.system(windows_lib_cmd)
|
|
|
- lib_post_build()
|
|
|
+ with LibBuildEnv():
|
|
|
+ os.system(windows_lib_cmd)
|
|
|
else:
|
|
|
os.system(windows_cmd)
|
|
|
DONE()
|
|
|
|
|
|
if "linux" in sys.argv:
|
|
|
if "-lib" in sys.argv:
|
|
|
- lib_pre_build()
|
|
|
- os.system(linux_lib_cmd)
|
|
|
- lib_post_build()
|
|
|
+ with LibBuildEnv():
|
|
|
+ os.system(linux_lib_cmd)
|
|
|
else:
|
|
|
os.system(linux_cmd)
|
|
|
DONE()
|