fmake

make any project just by typing `fmake`

commit f071180bd96d15591d0e6b00299bb67841932ea8
parent 3199d8b26439c778d6ae9b7320533fcfc3bbeb21
Author: Bharatvaj Hemanth <bharatvaj@getsh.org>
Date: Mon, 28 Nov 2022 09:17:49 +0530

Add default 'out' directory when there is no std

Add support for 'gn'
2 files changed, 5 insertions(+), 1 deletion(-)
M
README
|
2
++
M
config.h
|
4
+++-
diff --git a/README b/README
@@ -10,6 +10,8 @@ fmake refrains from reading the source files.
 
 fmake "intelligently" knows what targets to build. These can be configured in the config.h file.
 
+Opinionates build directory as 'out' in case of no clear build 'out' directory standard. Avoids in-source builds.
+
 USAGE
 -----
 To avoid complexity, fmake does not fork any process to run the commands. It just prints out the right command.
diff --git a/config.h b/config.h
@@ -8,6 +8,7 @@ typedef enum {
 	FMAKE_AUTOCONF,
 	FMAKE_CONFIGURE,
 	FMAKE_CMAKE,
+	FMAKE_GN,
 	FMAKE_NPM,
 	FMAKE_RUST,
 	FMAKE_PIP,

@@ -28,7 +29,8 @@ static const maker_config_t makers[] = {
 { "BSDMakefile",    FMAKE_BSD_MAKEFILE,   "bmake",         ""            },
 { "build.ninja",    FMAKE_NINJA,          "ninja",         ""            },
 { "configure",      FMAKE_CONFIGURE,      "sh",            "configure"   },
-{ "CMakeLists.txt", FMAKE_CMAKE,          "cmake",         "."           },
+{ "CMakeLists.txt", FMAKE_CMAKE,          "cmake",         "-B out"      },
+{ "BUILD.gn",       FMAKE_GN,             "gn",            "gen out"     },
 { "package.json",   FMAKE_NPM,            "npm",           "install"     },
 { "Cargo.toml",     FMAKE_RUST,           "cargo",         "install"     },
 { "setup.py",       FMAKE_PIP,            "pip",           "install ."   },