aboutsummaryrefslogtreecommitdiff
path: root/code/build.cpp
blob: 394b611b0e84d3c08d9173333c37989b8ee56b36 (plain) (blame)
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
#include "libs/build.h"

void Build(char *Env[], char *Name, str8 Flags)
{
    
    printf("%s\n", Name);
    str8_list BuildCommandList = CommonBuildCommand(false, true ,true);
    Str8ListAppend(&BuildCommandList, Flags);
    str8 BuildCommand = Str8ListJoin(BuildCommandList, sizeof(OutputBuffer), OutputBuffer, ' ');
    
    linux_command_result CommandResult = LinuxRunCommandString(BuildCommand, Env, true);
    smm BytesToRead = LinuxErrorWrapperRead(CommandResult.Stderr, OutputBuffer, CommandResult.StderrBytesToRead);
    if(BytesToRead)
    {
        printf("%*s", (int)BytesToRead, OutputBuffer);
    }
    
}


int main(int ArgsCount, char *Args[], char *Env[])
{
    LinuxChangeToExecutableDirectory(Args);
    LinuxRebuildSelf(ArgsCount, Args, Env);
    
    Build(Env, "[linux handmade compile]",
						    S8Lit("-DHANDMADE_INTERNAL=1 -DHANDMADE_SLOW=1 -DHANDMADE_SMALL_RESOLUTION=1 "
                "-lX11 -lXfixes -lasound "
                "-o linux_handmade "
                "../code/libs/hm_linux/linux_handmade.cpp"));
    
    Build(Env, "[handmade compile]", 
          S8Lit("-shared -fPIC "
                "-DHANDMADE_INTERNAL=1 -DHANDMADE_SLOW=1"
                "-Wno-implicit-int-float-conversion -Wno-float-conversion -Wno-implicit-float-conversion -Wno-shorten-64-to-32 "
                "-o handmade.so "
                "../code/handmade.cpp"));
    
    return 0;
}