Better Way to Build C
Previous Episodes:
References:
– Tsoding – Musializer –
– Tsoding Daily – The Best Coding Interview Question Ever –
Support:
– BTC: bc1qj820dmeazpeq5pjn89mlh9lhws7ghs9v34x9v9
– Servers:
Chapters:
– 0:00:00 – Announcement
– 0:00:42 – Build System of Musializer
– 0:04:15 – Configuration
– 0:10:54 – Best Interview Question
– 0:11:42 – Taking Full Responsibility
– 0:13:10 – Boilerplate
– 0:15:25 – config.h approach
– 0:16:09 – Shortcomings of config.h
– 0:18:29 – Environment variables
– 0:19:38 – Better approach
– 0:21:31 – Generating config.h
– 0:25:46 – Second Stage
– 0:30:29 – Crossplatformness
– 0:32:35 – Shared config
– 0:33:05 – Is This Too Much Voodoo?
– 0:33:49 – Building C code is easy
– 0:34:31 – Two Stages, One File
– 0:38:34 – Testing the UX
– 0:39:51 – Multi-staging is a Powerful Idea
– 0:41:39 – Shortcomings of CMake
– 0:43:13 – “Modifying C is meh”
– 0:43:23 – Integrating Two Stages with Musializer
– 0:52:47 – Tea spill
– 0:53:09 – -D is crossplatform
– 0:54:52 – Microsoft being out of character
– 0:55:34 – Never Trust Twitch Chat
– 0:55:53 – Subcommands
– 0:58:41 – Removing Config structure
– 0:59:39 – Checking UX of adding parameters
– 1:02:49 – Including config.h and logging the stages
– 1:03:27 – Removing Config related code
– 1:04:31 – Build function per target
– 1:11:52 – Hotreload parameter
– 1:12:28 – Shared microphone feature parameter
– 1:15:34 – It’s not about C
– 1:16:40 – ./build/ in search folder
– 1:17:18 – target names
– 1:18:52 – String literals in preprocessor
– 1:20:45 – MUSIALIZER_TARGET_NAME
– 1:22:20 – File per target
– 1:24:28 – nob_linux.c
– 1:25:51 – reset of the target files
– 1:27:20 – build_raylib()
– 1:30:42 – build_dist()
– 1:32:31 – nob subcommands
– 1:34:46 – Adjust defaults
– 1:35:32 – More compilation errors
– 1:36:14 – Sharing hotreload parameter config
– 1:37:42 – Testing hotreloading
– 1:38:20 – Testing disabled hotreloading
– 1:39:06 – Sharing microphone parameter config
– 1:40:21 – Testing microphone feature
– 1:41:03 – Summary
– 1:42:00 – Q: Why not pass config via cmd args?
– 1:43:30 – Outro
[ad_2]
source