fmake

make any project just by typing `fmake`
git clone git@getsh.org:fmake.git
Log | Files | Refs | README | LICENSE

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:
MREADME | 25+++++++++++--------------
Mconfig.h | 23++++++++++++++---------
Dlist.txt | 17-----------------
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