commit c7a6f92d6155cb29cac14260bd9b69baafe8f505
parent 356ae291822d8d03dce901528b13059dbf8debdb
Author: Bharatvaj Hemanth <bharatvaj@getsh.org>
Date: Sat, 26 Nov 2022 03:03:15 +0530
Fix contents of README and rm list.txt
Add support for gradle builds
Diffstat:
3 files changed, 25 insertions(+), 40 deletions(-)
diff --git a/README b/README
@@ -7,22 +7,10 @@ fmake is a program that brings `make`s interface to almost any build system.
See this |list.txt| for the number of build systems available.
+fmake refrains from reading the source files
-fmake refrains from reading the source files, but does so when required like reading a version number or detecting a syntax.
-
-Every build system has ranking that is followed so that
-autotools - 1
-cmake - 1
-make - 2
-
-
-fmake "intelligently" knows what targets to build
-
-mapper files
-------------
-
-`fmake` has the analogy of mapper files which can be used to make a project.
+fmake "intelligently" knows what targets to build.
These can be configured in the config.h file.
USAGE
@@ -33,3 +21,12 @@ To avoid complexity, fmake does not fork any process to run the commands. It jus
`make='$(fmake)'` This should be added in your .bash_profile, .zshrc for fmake to work.
When none is found, it just defaults to the `make` in $PATH
+
+Supported build files
+---------------------
+* *make
+* bazel
+* cmake
+* configure
+* gradle
+* Much more to be added soon
diff --git a/config.h b/config.h
@@ -9,6 +9,7 @@ typedef enum {
FMAKE_CMAKE,
FMAKE_NPM,
FMAKE_RUST,
+ FMAKE_GRADLE,
FMAKE_PIP,
} maker_t;
@@ -23,15 +24,19 @@ typedef struct {
ARG, cmdlists[ARG]
static const maker_config_t makers[] = {
- { "configure", FMAKE_CMAKE, "sh", "configure" },
- { "Makefile", FMAKE_POSIX_MAKEFILE, "make", "" },
- { "makefile", FMAKE_POSIX_MAKEFILE, "make", "" },
- { "GNUMakefile", FMAKE_GNU_MAKEFILE, "gmake", "" },
- { "BSDMakefile", FMAKE_BSD_MAKEFILE, "bmake", "" },
- { "CMakeLists.txt", FMAKE_CMAKE, "cmake", "-B out/" },
- { "package.json", FMAKE_NPM, "npm", "install" },
- { "Cargo.toml", FMAKE_RUST, "cargo", "install" },
- { "setup.py", FMAKE_PIP, "pip", "install ." },
+{ "configure", FMAKE_CMAKE, "sh", "configure" },
+{ "Makefile", FMAKE_POSIX_MAKEFILE, "make", "" },
+{ "makefile", FMAKE_POSIX_MAKEFILE, "make", "" },
+{ "GNUMakefile", FMAKE_GNU_MAKEFILE, "gmake", "" },
+{ "BSDMakefile", FMAKE_BSD_MAKEFILE, "bmake", "" },
+{ "CMakeLists.txt", FMAKE_CMAKE, "cmake", "-B out/" },
+{ "package.json", FMAKE_NPM, "npm", "install" },
+{ "Cargo.toml", FMAKE_RUST, "cargo", "install" },
+{ "setup.py", FMAKE_PIP, "pip", "install ." },
+#ifdef _WIN32
+{ "gradlew.bat", FMAKE_GRADLE, "./gradlew.bat", "" },
+#endif
+{ "gradlew", FMAKE_GRADLE, "sh", "gradlew" },
};
static int8_t *detected_indices = 0;
diff --git a/list.txt b/list.txt
@@ -1,17 +0,0 @@
-Supported build files
----------------------
-
-* .sln
-* .xcrun
-
-* cmake
-
-* gmake
-* bmake
-* nmake
-
-* bazel
-* gradle
-* meson
-
-* autotools