diff --git a/scripts/monkey.lua b/scripts/monkey.lua deleted file mode 100644 index b71ffd453..000000000 --- a/scripts/monkey.lua +++ /dev/null @@ -1,170 +0,0 @@ --- imports -import("core.base.option") -import("core.platform.platform") -import("packages", {alias = "get_packages"}) - --- the options -local options = -{ - {'v', "verbose", "k", nil, "Enable verbose information." } -, {'D', "diagnosis", "k", nil, "Enable diagnosis information." } -, {nil, "shallow", "k", nil, "Only install the root packages." } -, {'k', "kind", "kv", nil, "Enable static/shared library." } -, {'p', "plat", "kv", nil, "Set the given platform." } -, {'a', "arch", "kv", nil, "Set the given architecture." } -, {'m', "mode", "kv", nil, "Set the given mode." } -, {nil, "cflags", "kv", nil, "Set the cflags." } -, {nil, "cxxflags", "kv", nil, "Set the cxxflags." } -, {nil, "ldflags", "kv", nil, "Set the ldflags." } -, {nil, "ndk", "kv", nil, "Set the android NDK directory." } -, {nil, "sdk", "kv", nil, "Set the SDK directory of cross toolchain." } -, {nil, "vs_sdkver", "kv", nil, "Set the Windows SDK version." } -, {nil, "vs_runtime", "kv", nil, "Set the VS Runtime library." } -, {nil, "mingw", "kv", nil, "Set the MingW directory." } -, {nil, "toolchain", "kv", nil, "Set the toolchain name." } -, {nil, "packages", "vs", nil, "The package list." } -} - - --- require packages -function _require_packages(argv, packages) - local config_argv = {"f", "-c"} - if argv.verbose then - table.insert(config_argv, "-v") - end - if argv.diagnosis then - table.insert(config_argv, "-D") - end - if argv.plat then - table.insert(config_argv, "--plat=" .. argv.plat) - end - if argv.arch then - table.insert(config_argv, "--arch=" .. argv.arch) - end - if argv.mode then - table.insert(config_argv, "--mode=" .. argv.mode) - end - if argv.ndk then - table.insert(config_argv, "--ndk=" .. argv.ndk) - end - if argv.sdk then - table.insert(config_argv, "--sdk=" .. argv.sdk) - end - if argv.vs_sdkver then - table.insert(config_argv, "--vs_sdkver=" .. argv.vs_sdkver) - end - if argv.vs_runtime then - table.insert(config_argv, "--vs_runtime=" .. argv.vs_runtime) - end - if argv.mingw then - table.insert(config_argv, "--mingw=" .. argv.mingw) - end - if argv.toolchain then - table.insert(config_argv, "--toolchain=" .. argv.toolchain) - end - if argv.cflags then - table.insert(config_argv, "--cflags=" .. argv.cflags) - end - if argv.cxxflags then - table.insert(config_argv, "--cxxflags=" .. argv.cxxflags) - end - if argv.ldflags then - table.insert(config_argv, "--ldflags=" .. argv.ldflags) - end - os.vexecv("xmake", config_argv) - local require_argv = {"require", "-f", "-y"} - if argv.verbose then - table.insert(require_argv, "-v") - end - if argv.diagnosis then - table.insert(require_argv, "-D") - end - if argv.shallow then - table.insert(require_argv, "--shallow") - end - if argv.mode == "debug" and argv.kind == "shared" then - table.insert(require_argv, "--extra={debug=true,configs={shared=true}}") - elseif argv.mode == "debug" then - table.insert(require_argv, "--extra={debug=true}") - elseif argv.kind == "shared" then - table.insert(require_argv, "--extra={configs={shared=true}}") - end - table.join2(require_argv, packages) - os.vexecv("xmake", require_argv) -end - --- the given package is supported? -function _package_is_supported(argv, packagename) - local packages = get_packages() - if packages then - local plat = argv.plat or os.subhost() - local packages_plat = packages[plat] - for _, package in ipairs(packages_plat) do - if package and packagename:split("%s+")[1] == package.name then - local arch = argv.arch or platform.archs(plat)[1] or os.arch() - for _, package_arch in ipairs(package.archs) do - if arch == package_arch then - return true - end - end - end - end - end -end - --- the main entry -function main(...) - - -- parse arguments - local argv = option.parse({...}, options, "Test all the given or changed packages.") - - -- get packages - math.randomseed(os.time()) - local packages = argv.packages or {} - if #packages == 0 then - local files = os.files(path.join(os.scriptdir(), "..", "packages", "*", "*", "xmake.lua")) - local limit = is_host("bsd") and 1 or 10 - while #packages < limit do - local file = files[math.random(#files)] - if file:find("packages", 1, true) and path.filename(file) == "xmake.lua" then - assert(file == file:lower(), "%s must be lower case!", file) - local package = path.filename(path.directory(file)) - table.insert(packages, package) - end - end - end - if #packages == 0 then - table.insert(packages, "tbox dev") - end - - -- remove unsupported packages - for idx, package in irpairs(packages) do - assert(package == package:lower(), "package(%s) must be lower case!", package) - if not _package_is_supported(argv, package) then - table.remove(packages, idx) - end - end - if #packages == 0 then - print("no testable packages on %s!", argv.plat or os.subhost()) - return - end - - -- prepare test project - local repodir = os.curdir() - local workdir = path.join(os.tmpdir(), "xmake-repo") - print(packages) - os.setenv("XMAKE_STATS", "false") - os.tryrm(workdir) - os.mkdir(workdir) - os.cd(workdir) - os.exec("xmake create test") - os.cd("test") - print(os.curdir()) - os.exec("xmake repo --add local-repo %s", repodir) - os.exec("xmake repo -l") - - -- require packages - for _, package in ipairs(packages) do - _require_packages(argv, package) - end -end diff --git a/scripts/test.lua b/scripts/test.lua index 699e445fc..a392aac99 100644 --- a/scripts/test.lua +++ b/scripts/test.lua @@ -29,7 +29,8 @@ local options = , {nil, "vs", "kv", nil, "Set the VS Compiler version." } , {nil, "vs_sdkver", "kv", nil, "Set the Windows SDK version." } , {nil, "vs_toolset", "kv", nil, "Set the Windows Toolset version." } -, {nil, "vs_runtime", "kv", nil, "Set the VS Runtime library." } +, {nil, "vs_runtime", "kv", nil, "Set the VS Runtime library (deprecated)." } +, {nil, "runtimes", "kv", nil, "Set the Runtime libraries." } , {nil, "xcode_sdkver", "kv", nil, "The SDK Version for Xcode" } , {nil, "target_minver", "kv", nil, "The Target Minimal Version" } , {nil, "appledev", "kv", nil, "The Apple Device Type" } @@ -75,8 +76,9 @@ function _require_packages(argv, packages) if argv.vs_toolset then table.insert(config_argv, "--vs_toolset=" .. argv.vs_toolset) end - if argv.vs_runtime then - table.insert(config_argv, "--vs_runtime=" .. argv.vs_runtime) + local runtimes = argv.runtimes or argv.vs_runtime + if runtimes then + table.insert(config_argv, "--vs_runtime=" .. runtimes) end if argv.xcode_sdkver then table.insert(config_argv, "--xcode_sdkver=" .. argv.xcode_sdkver)