You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduce new API for running commands (by @rexim, @programmerlexi, @0x152a)
- Add nob_cmd_run()
- Add nob_cmd_run_opt()
- Add struct Nob_Cmd_Opt
- Add nob_procs_flush()
- Add nob_nprocs()
Deprecate old API for running commands. (by @rexim)
We do not plan to delete this API any time, but we believe that the new one is more convenient.
- Deprecate struct Nob_Cmd_Redirect{} (it's not explicitly marked with NOB_DEPRECATED, but functions that use it are)
- Turn nob_cmd_run_async() into a function (otherwise it's not deprecatable with NOB_DEPRECATED)
- Deprecate nob_cmd_run_async()
- Deprecate nob_cmd_run_async_and_reset()
- Deprecate nob_cmd_run_async_redirect()
- Deprecate nob_cmd_run_async_redirect_and_reset()
- Deprecate nob_cmd_run_sync()
- Deprecate nob_cmd_run_sync_and_reset()
- Deprecate nob_cmd_run_sync_redirect()
- Deprecate nob_cmd_run_sync_redirect_and_reset()
- Deprecate nob_procs_append_with_flush()
- Deprecate nob_procs_wait_and_reset()
Introduce deprecation mechanism (by @yuI4140, @rexim)
By default, deprecation warnings are not reported. You have to #define NOB_WARN_DEPRECATED to enable them.
- Add NOB_DEPRECATED()
- Add NOB_WARN_DEPRECATED
Add NOB_DECLTYPE_CAST() for C++-compatible casting of allocation results (by @rexim)
Introduce basic performance measuring mechanism (By @mikmart)
- Add nob_nanos_since_unspecified_epoch()
- Add NOB_NANOS_PER_SEC
Co-authored-by: yuI4140 <[email protected]>
Co-authored-by: Mikko Marttila <[email protected]>
Co-authored-by: 0x152a <[email protected]>
Co-authored-by: programmerlexi <[email protected]>
Copy file name to clipboardExpand all lines: how_to/010_nob_two_stage/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Two Stage Build
2
2
3
-
Quite often when your project grows big enough you end up wanting to configure the build of your application: different sets of enabled features, compilation flags, etc. The recommended approach to this in nob is to setup Two Stage Build system. That is [nob.c](./nob.c) does not do any actual work except generating initial `./build/config.h` and building `./src_build/nob_configed.c` (which `#include`-s the `./build/config.h` file) and then running it.
3
+
Quite often when your project grows big enough you end up wanting to configure the build of your application: different sets of enabled features, compilation flags, etc. The recommended approach to this in nob is to setup Two Stage Build™ system. That is [nob.c](./nob.c) does not do any actual work except generating initial `./build/config.h` and building `./src_build/nob_configed.c` (which `#include`-s the `./build/config.h` file) and then running it.
4
4
5
5
Exact details of the setup is up to your. Here we present just one way of doing it. In fact you have a freedom to do as many stages of your build as you want, analysing your environment in all sorts of different ways (you literally have a system programming language at your disposal). The whole point of nob is that you bootstrap it ONLY with `cc -o nob nob.c` (no additional flags or actions should be required form the user) and the rest is taken care of by your C code.
0 commit comments