diff options
| author | ruki <[email protected]> | 2020-02-19 22:44:07 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-02-19 10:24:43 +0800 |
| commit | e630b2edcccc8fd988f630959ac0cda5933251da (patch) | |
| tree | 8319ffa56cf319df33f4ee4bd69ec60873693558 | |
| parent | 88afc0485cbadc8f18044fa701c3118700a99cc0 (diff) | |
improve trybuild with config
| -rw-r--r-- | xmake/actions/build/main.lua | 9 | ||||
| -rw-r--r-- | xmake/modules/private/action/trybuild/autotools.lua | 6 | ||||
| -rw-r--r-- | xmake/modules/private/action/trybuild/cmake.lua | 2 |
3 files changed, 12 insertions, 5 deletions
diff --git a/xmake/actions/build/main.lua b/xmake/actions/build/main.lua index 285f2c10c..2918bb95f 100644 --- a/xmake/actions/build/main.lua +++ b/xmake/actions/build/main.lua @@ -36,14 +36,16 @@ function _try_build() config.load() -- rebuild it? do clean first + local targetname = option.get("target") if option.get("rebuild") then - task.run("clean", {target = option.get("target")}) + task.run("clean", {target = targetname}) end -- get the buildsystem tool local configfile = nil local tool = nil local trybuild = config.get("trybuild") + local trybuild_detected = nil if trybuild then tool = import("private.action.trybuild." .. trybuild, {try = true, anonymous = true}) if tool then @@ -56,7 +58,7 @@ function _try_build() tool = import("private.action.trybuild." .. name, {anonymous = true}) configfile = tool.detect() if configfile then - config.set("trybuild", name, {readonly = true, force = true}) + trybuild_detected = name break end end @@ -64,6 +66,9 @@ function _try_build() -- try building it if configfile and tool and (trybuild or utils.confirm({default = true, description = "${bright}" .. path.filename(configfile) .. "${clear} found, try building it"})) then + if not trybuild then + task.run("config", {target = targetname, trybuild = trybuild_detected}) + end tool.build() end end diff --git a/xmake/modules/private/action/trybuild/autotools.lua b/xmake/modules/private/action/trybuild/autotools.lua index b9f45bbc7..505054404 100644 --- a/xmake/modules/private/action/trybuild/autotools.lua +++ b/xmake/modules/private/action/trybuild/autotools.lua @@ -25,7 +25,7 @@ import("lib.detect.find_file") -- get build directory function _get_buildir() - return config.buildir() + return config.buildir() or "build" end -- get artifacts directory @@ -41,9 +41,11 @@ end -- do clean function clean() if find_file("[mM]akefile", os.curdir()) then - os.exec("make clean") if option.get("all") then + os.exec("make distclean") os.tryrm(_get_artifacts_dir()) + else + os.exec("make clean") end end end diff --git a/xmake/modules/private/action/trybuild/cmake.lua b/xmake/modules/private/action/trybuild/cmake.lua index 54e066311..6308df5d2 100644 --- a/xmake/modules/private/action/trybuild/cmake.lua +++ b/xmake/modules/private/action/trybuild/cmake.lua @@ -25,7 +25,7 @@ import("lib.detect.find_file") -- get build directory function _get_buildir() - return config.buildir() + return config.buildir() or "build" end -- get artifacts directory |
