Explicit package control - easier to manage 32-bit linux this way
parent
f2de0c71c3
commit
344ed6c913
|
@ -25,6 +25,19 @@
|
||||||
// OS and compiler index
|
// OS and compiler index
|
||||||
//
|
//
|
||||||
|
|
||||||
|
typedef u32 Tier_Code;
|
||||||
|
enum{
|
||||||
|
Tier_Demo,
|
||||||
|
Tier_Super,
|
||||||
|
Tier_COUNT,
|
||||||
|
};
|
||||||
|
|
||||||
|
char *tier_names[] = {
|
||||||
|
"demo",
|
||||||
|
"super",
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef u32 Platform_Code;
|
||||||
enum{
|
enum{
|
||||||
Platform_Windows,
|
Platform_Windows,
|
||||||
Platform_Linux,
|
Platform_Linux,
|
||||||
|
@ -40,6 +53,7 @@ char *platform_names[] = {
|
||||||
"mac",
|
"mac",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef u32 Compiler_Code;
|
||||||
enum{
|
enum{
|
||||||
Compiler_CL,
|
Compiler_CL,
|
||||||
Compiler_GCC,
|
Compiler_GCC,
|
||||||
|
@ -55,6 +69,21 @@ char *compiler_names[] = {
|
||||||
"clang",
|
"clang",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef u32 Arch_Code;
|
||||||
|
enum{
|
||||||
|
Arch_X64,
|
||||||
|
Arch_X86,
|
||||||
|
|
||||||
|
//
|
||||||
|
Arch_COUNT,
|
||||||
|
Arch_None = Arch_COUNT,
|
||||||
|
};
|
||||||
|
|
||||||
|
char *arch_names[] = {
|
||||||
|
"x64",
|
||||||
|
"x86",
|
||||||
|
};
|
||||||
|
|
||||||
#if OS_WINDOWS
|
#if OS_WINDOWS
|
||||||
# define This_OS Platform_Windows
|
# define This_OS Platform_Windows
|
||||||
#elif OS_LINUX
|
#elif OS_LINUX
|
||||||
|
@ -115,22 +144,6 @@ char **platform_includes[Platform_COUNT][Compiler_COUNT] = {
|
||||||
|
|
||||||
char *default_custom_target = "../code/custom/4coder_default_bindings.cpp";
|
char *default_custom_target = "../code/custom/4coder_default_bindings.cpp";
|
||||||
|
|
||||||
// NOTE(allen): Architectures
|
|
||||||
|
|
||||||
enum{
|
|
||||||
Arch_X64,
|
|
||||||
Arch_X86,
|
|
||||||
|
|
||||||
//
|
|
||||||
Arch_COUNT,
|
|
||||||
Arch_None = Arch_COUNT,
|
|
||||||
};
|
|
||||||
|
|
||||||
char *arch_names[] = {
|
|
||||||
"x64",
|
|
||||||
"x86",
|
|
||||||
};
|
|
||||||
|
|
||||||
// NOTE(allen): Build flags
|
// NOTE(allen): Build flags
|
||||||
|
|
||||||
enum{
|
enum{
|
||||||
|
@ -582,12 +595,6 @@ get_4coder_dist_name(Arena *arena, u32 platform, char *tier, u32 arch){
|
||||||
return(name);
|
return(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
enum{
|
|
||||||
Tier_Demo,
|
|
||||||
Tier_Super,
|
|
||||||
Tier_COUNT,
|
|
||||||
};
|
|
||||||
|
|
||||||
function void
|
function void
|
||||||
package_for_arch(Arena *arena, u32 arch, char *cdir, char *build_dir, char *pack_dir, i32 tier, char *tier_name, char *current_dist_tier, u32 flags, char** dist_files, i32 dist_file_count){
|
package_for_arch(Arena *arena, u32 arch, char *cdir, char *build_dir, char *pack_dir, i32 tier, char *tier_name, char *current_dist_tier, u32 flags, char** dist_files, i32 dist_file_count){
|
||||||
char *arch_name = arch_names[arch];
|
char *arch_name = arch_names[arch];
|
||||||
|
@ -633,8 +640,20 @@ package_for_arch(Arena *arena, u32 arch, char *cdir, char *build_dir, char *pack
|
||||||
fm_zip(parent_dir, "4coder", zip_name);
|
fm_zip(parent_dir, "4coder", zip_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal u32
|
||||||
|
tier_flags(Tier_Code code){
|
||||||
|
u32 result = 0;
|
||||||
|
switch (code){
|
||||||
|
case Tier_Super:
|
||||||
|
{
|
||||||
|
result = SUPER;
|
||||||
|
}break;
|
||||||
|
}
|
||||||
|
return(result);
|
||||||
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
package(Arena *arena, char *cdir){
|
package(Arena *arena, char *cdir, Tier_Code tier, Arch_Code arch){
|
||||||
// NOTE(allen): meta
|
// NOTE(allen): meta
|
||||||
char *build_dir = fm_str(arena, BUILD_DIR);
|
char *build_dir = fm_str(arena, BUILD_DIR);
|
||||||
char *pack_dir = fm_str(arena, PACK_DIR);
|
char *pack_dir = fm_str(arena, PACK_DIR);
|
||||||
|
@ -648,34 +667,16 @@ package(Arena *arena, char *cdir){
|
||||||
printf("dist files: %s, %s, %s\n", dist_files[0], dist_files[1], dist_files[2]);
|
printf("dist files: %s, %s, %s\n", dist_files[0], dist_files[1], dist_files[2]);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
|
||||||
char *tier_names[] = { "demo", "super", };
|
|
||||||
u32 base_flags = SHIP | DEBUG_INFO | OPTIMIZATION;
|
u32 base_flags = SHIP | DEBUG_INFO | OPTIMIZATION;
|
||||||
u32 tier_flags[] = { 0, SUPER, };
|
|
||||||
|
|
||||||
fm_make_folder_if_missing(arena, pack_dir);
|
fm_make_folder_if_missing(arena, pack_dir);
|
||||||
|
|
||||||
for (u32 i = 0; i < Tier_COUNT; i += 1){
|
char *tier_name = tier_names[tier];
|
||||||
char *tier_name = tier_names[i];
|
u32 flags = base_flags | tier_flags(tier);
|
||||||
u32 flags = base_flags | tier_flags[i];
|
|
||||||
|
|
||||||
Temp_Memory temp = begin_temp(arena);
|
Temp_Memory temp = begin_temp(arena);
|
||||||
char *current_dist_tier = fm_str(arena, ".." SLASH "current_dist_", tier_name);
|
char *current_dist_tier = fm_str(arena, ".." SLASH "current_dist_", tier_name);
|
||||||
|
package_for_arch(arena, arch, cdir, build_dir, pack_dir, tier, tier_name, current_dist_tier, flags, dist_files, ArrayCount(dist_files));
|
||||||
u32 arch_count = Arch_COUNT;
|
|
||||||
u32 arch_array[2] = {
|
|
||||||
Arch_X64,
|
|
||||||
Arch_X86,
|
|
||||||
};
|
|
||||||
if (This_OS == Platform_Mac){
|
|
||||||
arch_count = 1;
|
|
||||||
}
|
|
||||||
for (u32 arch_ind = 0; arch_ind < arch_count; arch_ind += 1){
|
|
||||||
u32 arch = arch_array[arch_ind];
|
|
||||||
package_for_arch(arena, arch, cdir, build_dir, pack_dir, i, tier_name, current_dist_tier, flags, dist_files, ArrayCount(dist_files));
|
|
||||||
}
|
|
||||||
|
|
||||||
end_temp(temp);
|
end_temp(temp);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv){
|
int main(int argc, char **argv){
|
||||||
|
@ -700,8 +701,17 @@ int main(int argc, char **argv){
|
||||||
#if defined(DEV_BUILD) || defined(OPT_BUILD) || defined(DEV_BUILD_X86) || defined(OPT_BUILD_X86)
|
#if defined(DEV_BUILD) || defined(OPT_BUILD) || defined(DEV_BUILD_X86) || defined(OPT_BUILD_X86)
|
||||||
standard_build(&arena, cdir, flags, arch);
|
standard_build(&arena, cdir, flags, arch);
|
||||||
|
|
||||||
#elif defined(PACKAGE)
|
#elif defined(PACKAGE_DEMO_X64)
|
||||||
package(&arena, cdir);
|
package(&arena, cdir, Tier_Demo, Arch_X64);
|
||||||
|
|
||||||
|
#elif defined(PACKAGE_DEMO_X86)
|
||||||
|
package(&arena, cdir, Tier_Demo, Arch_X86);
|
||||||
|
|
||||||
|
#elif defined(PACKAGE_SUPER_X64)
|
||||||
|
package(&arena, cdir, Tier_Super, Arch_X64);
|
||||||
|
|
||||||
|
#elif defined(PACKAGE_SUPER_X86)
|
||||||
|
package(&arena, cdir, Tier_Super, Arch_X86);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
# error No build type specified.
|
# error No build type specified.
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
chmod 777 bin/build-linux.sh
|
chmod +x bin/build-linux.sh
|
||||||
bin/build-linux.sh "-DPACKAGE"
|
bin/build-linux.sh "-DPACKAGE_DEMO_X64"
|
||||||
|
bin/build-linux.sh "-DPACKAGE_SUPER_X64"
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
chmod 777 bin/build-mac.sh
|
chmod +x bin/build-mac.sh
|
||||||
bin/build-mac.sh "-DPACKAGE"
|
bin/build-mac.sh "-DPACKAGE_DEMO_X64"
|
||||||
|
bin/build-mac.sh "-DPACKAGE_SUPER_X64"
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
chmod +x bin/build-linux.sh
|
||||||
|
bin/build-linux.sh "-DPACKAGE_DEMO_X86"
|
||||||
|
bin/build-linux.sh "-DPACKAGE_SUPER_X86"
|
|
@ -1,3 +1,6 @@
|
||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
bin\build.bat /DPACKAGE
|
bin\build.bat /DPACKAGE_DEMO_X64
|
||||||
|
bin\build.bat /DPACKAGE_DEMO_X86
|
||||||
|
bin\build.bat /DPACKAGE_SUPER_X64
|
||||||
|
bin\build.bat /DPACKAGE_SUPER_X86
|
||||||
|
|
Loading…
Reference in New Issue