clean up build stuffs
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -34,6 +34,10 @@ nob.ilk
|
||||
*.dylib
|
||||
*.a
|
||||
|
||||
# Generated source
|
||||
*.gen.h
|
||||
*.gen.cpp
|
||||
|
||||
# Misc
|
||||
*.exe
|
||||
!nob.c
|
||||
|
||||
65
build.c
65
build.c
@@ -109,7 +109,7 @@ static const char *frameworks[] = {
|
||||
|
||||
static bool build_lunasvg_lib(const char *build_dir, bool debug) {
|
||||
const char *obj_dir = nob_temp_sprintf("%s/lunasvg_obj", build_dir);
|
||||
const char *lib_path = nob_temp_sprintf("%s/liblunasvg.a", build_dir);
|
||||
const char *lib_path = "vendor/lunasvg/liblunasvg.a";
|
||||
|
||||
// Collect all source paths to check if rebuild is needed
|
||||
{
|
||||
@@ -231,7 +231,7 @@ static bool build_lunasvg_lib(const char *build_dir, bool debug) {
|
||||
|
||||
static bool build_freetype_lib(const char *build_dir, bool debug) {
|
||||
const char *obj_dir = nob_temp_sprintf("%s/freetype_obj", build_dir);
|
||||
const char *lib_path = nob_temp_sprintf("%s/libfreetype.a", build_dir);
|
||||
const char *lib_path = "vendor/freetype/libfreetype.a";
|
||||
|
||||
if (!nob_needs_rebuild(lib_path, freetype_sources, NOB_ARRAY_LEN(freetype_sources))) {
|
||||
nob_log(NOB_INFO, "freetype is up to date");
|
||||
@@ -305,15 +305,24 @@ int main(int argc, char **argv) {
|
||||
for (int i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "debug") == 0) debug = true;
|
||||
else if (strcmp(argv[i], "clean") == 0) clean = true;
|
||||
else {
|
||||
nob_log(NOB_ERROR, "unknown argument: %s", argv[i]);
|
||||
nob_log(NOB_ERROR, "usage: %s [debug] [clean]", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
const char *build_dir = debug ? "build_debug" : "build_release";
|
||||
|
||||
if (clean) {
|
||||
nob_log(NOB_INFO, "Cleaning %s/", build_dir);
|
||||
Nob_Cmd cmd = {0};
|
||||
nob_cmd_append(&cmd, "rm", "-rf", build_dir);
|
||||
{ Nob_Cmd_Opt opt = {0}; if (!nob_cmd_run_opt(&cmd, opt)) return 1; }
|
||||
nob_log(NOB_INFO, "Cleaning build artifacts");
|
||||
{ Nob_Cmd cmd = {0}; nob_cmd_append(&cmd, "rm", "-rf", "build_debug");
|
||||
Nob_Cmd_Opt opt = {0}; nob_cmd_run_opt(&cmd, opt); }
|
||||
{ Nob_Cmd cmd = {0}; nob_cmd_append(&cmd, "rm", "-rf", "build_release");
|
||||
Nob_Cmd_Opt opt = {0}; nob_cmd_run_opt(&cmd, opt); }
|
||||
remove("vendor/lunasvg/liblunasvg.a");
|
||||
remove("vendor/freetype/libfreetype.a");
|
||||
remove("src/renderer/font_inter.gen.h");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -335,10 +344,8 @@ int main(int argc, char **argv) {
|
||||
if (!build_freetype_lib(build_dir, debug)) return 1;
|
||||
|
||||
// Generate embedded font header
|
||||
const char *gen_dir = nob_temp_sprintf("%s/generated", build_dir);
|
||||
if (!nob_mkdir_if_not_exists(gen_dir)) return 1;
|
||||
if (!embed_font_file("assets/fonts/Inter-Regular.ttf",
|
||||
nob_temp_sprintf("%s/font_inter.h", gen_dir))) return 1;
|
||||
"src/renderer/font_inter.gen.h")) return 1;
|
||||
|
||||
// Unity build: single clang++ invocation compiles main.cpp (which #includes everything)
|
||||
{
|
||||
@@ -351,7 +358,6 @@ int main(int argc, char **argv) {
|
||||
nob_cmd_append(&cmd, "-Isrc", "-Ivendor/clay");
|
||||
nob_cmd_append(&cmd, "-Ivendor/lunasvg/include");
|
||||
nob_cmd_append(&cmd, "-Ivendor/freetype/include");
|
||||
nob_cmd_append(&cmd, nob_temp_sprintf("-I%s", build_dir));
|
||||
nob_cmd_append(&cmd, "-DLUNASVG_BUILD_STATIC");
|
||||
|
||||
if (debug) {
|
||||
@@ -365,8 +371,8 @@ int main(int argc, char **argv) {
|
||||
|
||||
// Reset language mode so .a is treated as a library, not source
|
||||
nob_cmd_append(&cmd, "-x", "none");
|
||||
nob_cmd_append(&cmd, nob_temp_sprintf("%s/liblunasvg.a", build_dir));
|
||||
nob_cmd_append(&cmd, nob_temp_sprintf("%s/libfreetype.a", build_dir));
|
||||
nob_cmd_append(&cmd, "vendor/lunasvg/liblunasvg.a");
|
||||
nob_cmd_append(&cmd, "vendor/freetype/libfreetype.a");
|
||||
|
||||
{
|
||||
size_t i;
|
||||
@@ -454,7 +460,7 @@ static const char *link_libs[] = {
|
||||
|
||||
static bool build_lunasvg_lib(const char *build_dir, bool debug) {
|
||||
const char *obj_dir = nob_temp_sprintf("%s\\lunasvg_obj", build_dir);
|
||||
const char *lib_path = nob_temp_sprintf("%s\\lunasvg.lib", build_dir);
|
||||
const char *lib_path = debug ? "vendor\\lunasvg\\lunasvg_d.lib" : "vendor\\lunasvg\\lunasvg.lib";
|
||||
|
||||
// Check if rebuild is needed
|
||||
{
|
||||
@@ -540,7 +546,7 @@ static bool build_lunasvg_lib(const char *build_dir, bool debug) {
|
||||
|
||||
static bool build_freetype_lib(const char *build_dir, bool debug) {
|
||||
const char *obj_dir = nob_temp_sprintf("%s\\freetype_obj", build_dir);
|
||||
const char *lib_path = nob_temp_sprintf("%s\\freetype.lib", build_dir);
|
||||
const char *lib_path = debug ? "vendor\\freetype\\freetype_d.lib" : "vendor\\freetype\\freetype.lib";
|
||||
|
||||
if (!nob_needs_rebuild(lib_path, freetype_sources, NOB_ARRAY_LEN(freetype_sources))) {
|
||||
nob_log(NOB_INFO, "freetype is up to date");
|
||||
@@ -598,16 +604,28 @@ int main(int argc, char **argv) {
|
||||
for (int i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "debug") == 0) debug = true;
|
||||
else if (strcmp(argv[i], "clean") == 0) clean = true;
|
||||
else {
|
||||
nob_log(NOB_ERROR, "unknown argument: %s", argv[i]);
|
||||
nob_log(NOB_ERROR, "usage: %s [debug] [clean]", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
const char *build_dir = debug ? "build_debug" : "build_release";
|
||||
|
||||
if (clean) {
|
||||
nob_log(NOB_INFO, "Cleaning %s/", build_dir);
|
||||
Nob_Cmd cmd = {0};
|
||||
nob_cmd_append(&cmd, "cmd.exe", "/c",
|
||||
nob_temp_sprintf("if exist %s rmdir /s /q %s", build_dir, build_dir));
|
||||
{ Nob_Cmd_Opt opt = {0}; if (!nob_cmd_run_opt(&cmd, opt)) return 1; }
|
||||
nob_log(NOB_INFO, "Cleaning build artifacts");
|
||||
{ Nob_Cmd cmd = {0}; nob_cmd_append(&cmd, "cmd.exe", "/c",
|
||||
"if exist build_debug rmdir /s /q build_debug");
|
||||
Nob_Cmd_Opt opt = {0}; nob_cmd_run_opt(&cmd, opt); }
|
||||
{ Nob_Cmd cmd = {0}; nob_cmd_append(&cmd, "cmd.exe", "/c",
|
||||
"if exist build_release rmdir /s /q build_release");
|
||||
Nob_Cmd_Opt opt = {0}; nob_cmd_run_opt(&cmd, opt); }
|
||||
remove("vendor\\lunasvg\\lunasvg.lib");
|
||||
remove("vendor\\lunasvg\\lunasvg_d.lib");
|
||||
remove("vendor\\freetype\\freetype.lib");
|
||||
remove("vendor\\freetype\\freetype_d.lib");
|
||||
remove("src\\renderer\\font_inter.gen.h");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -618,10 +636,8 @@ int main(int argc, char **argv) {
|
||||
if (!build_freetype_lib(build_dir, debug)) return 1;
|
||||
|
||||
// Generate embedded font header
|
||||
const char *gen_dir = nob_temp_sprintf("%s\\generated", build_dir);
|
||||
if (!nob_mkdir_if_not_exists(gen_dir)) return 1;
|
||||
if (!embed_font_file("assets/fonts/Inter-Regular.ttf",
|
||||
nob_temp_sprintf("%s\\font_inter.h", gen_dir))) return 1;
|
||||
"src\\renderer\\font_inter.gen.h")) return 1;
|
||||
|
||||
// Unity build: single cl.exe invocation compiles main.cpp (which #includes everything)
|
||||
{
|
||||
@@ -631,7 +647,6 @@ int main(int argc, char **argv) {
|
||||
nob_cmd_append(&cmd, "/Isrc", "/Ivendor/clay");
|
||||
nob_cmd_append(&cmd, "/Ivendor/lunasvg/include");
|
||||
nob_cmd_append(&cmd, "/Ivendor/freetype/include");
|
||||
nob_cmd_append(&cmd, nob_temp_sprintf("/I%s", build_dir));
|
||||
nob_cmd_append(&cmd, "/DLUNASVG_BUILD_STATIC");
|
||||
|
||||
if (debug) {
|
||||
@@ -651,8 +666,8 @@ int main(int argc, char **argv) {
|
||||
nob_cmd_append(&cmd, "/SUBSYSTEM:CONSOLE");
|
||||
nob_cmd_append(&cmd, nob_temp_sprintf("/PDB:%s/autosample.pdb", build_dir));
|
||||
nob_cmd_append(&cmd, "/DEBUG");
|
||||
nob_cmd_append(&cmd, nob_temp_sprintf("%s/lunasvg.lib", build_dir));
|
||||
nob_cmd_append(&cmd, nob_temp_sprintf("%s/freetype.lib", build_dir));
|
||||
nob_cmd_append(&cmd, debug ? "vendor/lunasvg/lunasvg_d.lib" : "vendor/lunasvg/lunasvg.lib");
|
||||
nob_cmd_append(&cmd, debug ? "vendor/freetype/freetype_d.lib" : "vendor/freetype/freetype.lib");
|
||||
{
|
||||
size_t i;
|
||||
for (i = 0; i < NOB_ARRAY_LEN(link_libs); i++)
|
||||
|
||||
@@ -14,7 +14,7 @@ struct RendererDesc {
|
||||
|
||||
Renderer *renderer_create(RendererDesc *desc);
|
||||
void renderer_destroy(Renderer *renderer);
|
||||
B32 renderer_begin_frame(Renderer *renderer);
|
||||
B32 renderer_begin_frame(Renderer *renderer);
|
||||
void renderer_end_frame(Renderer *renderer, Clay_RenderCommandArray render_commands);
|
||||
void renderer_resize(Renderer *renderer, S32 width, S32 height);
|
||||
void renderer_set_font_scale(Renderer *renderer, F32 scale);
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
#include FT_FREETYPE_H
|
||||
#include FT_BITMAP_H
|
||||
#define internal static
|
||||
#include "generated/font_inter.h"
|
||||
#include "renderer/font_inter.gen.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define DX12_ENABLE_DEBUG_LAYER
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include FT_FREETYPE_H
|
||||
#include FT_BITMAP_H
|
||||
#define internal static
|
||||
#include "generated/font_inter.h"
|
||||
#include "renderer/font_inter.gen.h"
|
||||
|
||||
#define NUM_BACK_BUFFERS 2
|
||||
#define MAX_VERTICES (64 * 1024)
|
||||
|
||||
Reference in New Issue
Block a user