aboutsummaryrefslogtreecommitdiff
path: root/lcb.py
blob: 54a6b6503c1d330ee515c5a6cda9451e8ea48a6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Jacopo Grandi, 15/08/2020
# Link - Compile - Build
# mingw command creation and execution

try:
    import os
    import sys

    if len(sys.argv) > 1:
        os.chdir(sys.argv[1])
        
    if not("main.c" in os.listdir(".")): 
        # try searching father folder
        os.chdir("../")
        if not("main.c" in os.listdir(".")): 
            print("no main.c found, press any key to abort...")
            import msvcrt as m
            m.getch()
            quit()

    dirs = "-I. "
    fs = ""
    for d in os.listdir("."):
        if d.find(".") == -1:
            flag = False
            for f in os.listdir("./"+d+"/"):
                if f.endswith(".c"):
                    fs += d+"/"+f+" "
                    flag = True
            if flag: dirs += "-I" + d + " "

    cons = ""
    f = open("main.c", "r");
    mainraw = f.read(); f.close();
    if "#define LCB_NO_CONSOLE" in mainraw.splitlines(): 
        cons = "-Wl,-subsystem,windows"

    os.system("mkdir build")
    cmd = "g++ "+\
        "main.c "+\
        fs+\
        dirs+\
        "-IC:\MinGW_libs\include\SDL2 "+\
        "-IC:\MinGW_libs\include\plibsys "+\
        "-LC:\MinGW_libs\lib "+\
        "-w "+\
        "-lmingw32 -lSDL2main -lSDL2 -lSDL2_mixer -lplibsys "+\
        "-o build/test "+\
        cons
    print(cmd)
    r = os.system(cmd)

    if r == 0:
        print("build successfull")
        os.chdir("build")
        os.system("test.exe")
    else:
        os.system("pause")
except e: 
    import traceback; 
    open("error.txt", "w").write(''.join(tb.format_exception(None, e, e.__traceback__)))