diff options
| author | ruki <[email protected]> | 2026-01-08 23:01:45 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2026-01-09 17:59:11 +0800 |
| commit | cabdd8b0bf48356b7ffb9e6bb8d776cb4813f301 (patch) | |
| tree | d09a738ed1b457eba63c475bb42ad5eb29c64345 /tests/projects | |
| parent | f3c2a43971a0562270cc07320904b0c8a78e10e4 (diff) | |
use ninja instead of cmake in scheme test
Diffstat (limited to 'tests/projects')
| -rw-r--r-- | tests/projects/package/schemes/port/xmake.lua | 87 | ||||
| -rw-r--r-- | tests/projects/package/schemes/xmake.lua | 80 |
2 files changed, 106 insertions, 61 deletions
diff --git a/tests/projects/package/schemes/port/xmake.lua b/tests/projects/package/schemes/port/xmake.lua new file mode 100644 index 000000000..7cf73fc43 --- /dev/null +++ b/tests/projects/package/schemes/port/xmake.lua @@ -0,0 +1,87 @@ +includes("@builtin/check") + +add_rules("mode.release", "mode.debug") + +option("version", {description = "The ninja version."}) +set_version("$(version)") + +set_languages("c++14") +check_cfuncs("USE_PPOLL=1", "ppoll", {includes = "poll.h"}) + +target("libninja") + set_kind("$(kind)") + set_basename("ninja") + + add_files("src/build_log.cc") + add_files("src/build.cc") + add_files("src/clean.cc") + add_files("src/clparser.cc") + add_files("src/debug_flags.cc") + add_files("src/deps_log.cc") + add_files("src/disk_interface.cc") + add_files("src/edit_distance.cc") + add_files("src/eval_env.cc") + add_files("src/graph.cc") + add_files("src/graphviz.cc") + add_files("src/line_printer.cc") + add_files("src/manifest_parser.cc") + add_files("src/metrics.cc") + add_files("src/state.cc") + add_files("src/string_piece_util.cc") + add_files("src/util.cc") + add_files("src/version.cc") + add_files("src/depfile_parser.cc", "src/lexer.cc") + + if is_plat("windows") then + add_files("src/subprocess-win32.cc") + add_files("src/includes_normalize-win32.cc") + add_files("src/msvc_helper-win32.cc") + add_files("src/msvc_helper_main-win32.cc") + add_files("src/getopt.c", {sourcekind = "cxx"}) + add_files("src/minidump-win32.cc") + + add_defines("NOMINMAX") + else + add_files("src/subprocess-posix.cc") + end + + if is_plat("mingw") then + add_defines("_WIN32_WINNT=0x0601", "__USE_MINGW_ANSI_STDIO=1") + end + + on_load(function (target) + import("core.base.semver") + local version = semver.new(target:version()) + if version:ge("1.13.1") then + target:add("files", "src/elide_middle.cc") + target:add("files", "src/jobserver.cc") + target:add("files", "src/real_command_runner.cc") + target:add("files", "src/status_printer.cc") + if target:is_plat("windows") then + target:add("files", "src/jobserver-win32.cc") + else + target:add("files", "src/jobserver-posix.cc") + end + end + if version:ge("1.11.0") then + if version:lt("1.13.1") then + target:add("files", "src/status.cc") + end + target:add("files", "src/json.cc") + target:add("files", "src/missing_deps.cc") + end + if version:ge("1.10.0") then + target:add("files", "src/dyndep.cc") + target:add("files", "src/dyndep_parser.cc") + target:add("files", "src/parser.cc") + end + end) + +target("ninja") + set_kind("binary") + add_deps("libninja") + + add_files("src/ninja.cc") + if is_plat("windows") then + add_files("windows/ninja.manifest") + end diff --git a/tests/projects/package/schemes/xmake.lua b/tests/projects/package/schemes/xmake.lua index 6c6ae5bfe..689b9c88d 100644 --- a/tests/projects/package/schemes/xmake.lua +++ b/tests/projects/package/schemes/xmake.lua @@ -1,69 +1,27 @@ add_rules("mode.debug", "mode.release") -package("cmake") +package("ninja") set_kind("binary") - set_homepage("https://cmake.org") - set_description("A cross-platform family of tools designed to build, test and package software") + set_homepage("https://ninja-build.org/") + set_description("Small build system for use with gyp or CMake.") local function add_binary_urls(package, scheme_name) local scheme = package if scheme_name then scheme = package:scheme(scheme_name) end + if is_host("macosx") then - scheme:add("urls", "https://cmake.org/files/v$(version).tar.gz", {version = function (version) - return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. (version:ge("3.20") and "-macos-universal" or "-Darwin-x86_64") - end}) - scheme:add("urls", "https://github.com/Kitware/CMake/releases/download/v$(version).tar.gz", {version = function (version) - return version .. "/cmake-" .. version .. (version:ge("3.20") and "-macos-universal" or "-Darwin-x86_64") - end}) - scheme:add("versions", "4.2.1", "0bb18f295e52d7e9309980e361e79e76a1d8da67a1587255cbe3696ea998f597") + scheme:add("urls", "https://github.com/ninja-build/ninja/releases/download/v$(version)/ninja-mac.zip") + scheme:add("versions", "1.13.1", "da7797794153629aca5570ef7c813342d0be214ba84632af886856e8f0063dd9") return true elseif is_host("linux") then - if os.arch():find("arm64.*") then - scheme:add("urls", "https://cmake.org/files/v$(version)-aarch64.tar.gz", {version = function (version) - return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. (version:ge("3.20") and "-linux" or "-Linux") - end}) - scheme:add("urls", "https://github.com/Kitware/CMake/releases/download/v$(version)-aarch64.tar.gz", {version = function (version) - return version .. "/cmake-" .. version .. (version:ge("3.20") and "-linux" or "-Linux") - end}) - scheme:add("versions", "4.2.1", "3e178207a2c42af4cd4883127f8800b6faf99f3f5187dccc68bfb2cc7808f5f7") - else - scheme:add("urls", "https://cmake.org/files/v$(version)-x86_64.tar.gz", {version = function (version) - return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. (version:ge("3.20") and "-linux" or "-Linux") - end}) - scheme:add("urls", "https://github.com/Kitware/CMake/releases/download/v$(version)-x86_64.tar.gz", {version = function (version) - return version .. "/cmake-" .. version .. (version:ge("3.20") and "-linux" or "-Linux") - end}) - scheme:add("versions", "4.2.1", "c059bff1e97a2b6b5b0c0872263627486345ad0ed083298cb21cff2eda883980") - end + scheme:add("urls", "https://github.com/ninja-build/ninja/releases/download/v$(version)/ninja-linux.zip") + scheme:add("versions", "1.13.1", "0830252db77884957a1a4b87b05a1e2d9b5f658b8367f82999a941884cbe0238") return true elseif is_host("windows") then - if os.arch() == "x64" then - scheme:add("urls", "https://cmake.org/files/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version) - return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. (version:ge("3.20") and "-windows-x86_64" or "-win64-x64") - end}) - scheme:add("urls", "https://github.com/Kitware/CMake/releases/download/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version) - return version .. "/cmake-" .. version .. (version:ge("3.20") and "-windows-x86_64" or "-win64-x64") - end}) - scheme:add("versions", "4.2.1", "dfc2b2afac257555e3b9ce375b12b2883964283a366c17fec96cf4d17e4f1677") - elseif os.arch() == "x86" then - scheme:add("urls", "https://cmake.org/files/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version) - return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. (version:ge("3.20") and "-windows-i386" or "-win32-x86") - end}) - scheme:add("urls", "https://github.com/Kitware/CMake/releases/download/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version) - return version .. "/cmake-" .. version .. (version:ge("3.20") and "-windows-i386" or "-win32-x86") - end}) - scheme:add("versions", "4.2.1", "696129556482da90293f9d64c1fa68dbe06b0ede80331d7da9aaa03aada6aecf") - elseif os.arch() == "arm64" then - scheme:add("urls", "https://cmake.org/files/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version) - return table.concat(table.slice((version):split('%.'), 1, 2), '.') .. "/cmake-" .. version .. "-windows-arm64" - end}) - scheme:add("urls", "https://github.com/Kitware/CMake/releases/download/v$(version).zip", {excludes = {"*/doc/*"}, version = function (version) - return version .. "/cmake-" .. version .. "-windows-arm64" - end}) - scheme:add("versions", "4.2.1", "96b097ca3a019cd62839d4805958ad0163dd1adedcfbe578730d57c098aaf667") - end + scheme:add("urls", "https://github.com/ninja-build/ninja/releases/download/v$(version)/ninja-win.zip") + scheme:add("versions", "1.13.1", "26a40fa8595694dec2fad4911e62d29e10525d2133c9a4230b66397774ae25bf") return true end end @@ -73,8 +31,8 @@ package("cmake") if scheme_name then scheme = package:scheme(scheme_name) end - scheme:add("urls", "https://github.com/Kitware/CMake/releases/download/v$(version)/cmake-$(version).tar.gz") - scheme:add("versions", "4.2.1", "414aacfac54ba0e78e64a018720b64ed6bfca14b587047b8b3489f407a14a070") + scheme:add("urls", "https://github.com/ninja-build/ninja/archive/refs/tags/v$(version).tar.gz") + scheme:add("versions", "1.13.1", "f0055ad0369bf2e372955ba55128d000cfcc21777057806015b45e4accbebf23") end if add_schemes then @@ -101,21 +59,21 @@ package("cmake") if scheme_name and scheme_name == "binary" then raise("trigger failure when installing binaries, then we will fallback to install it from source tarball.") else - import("core.base.option") - os.vrunv("sh", {"./bootstrap", "--parallel=" .. (option.get("jobs") or tostring(os.default_njob())), - "--prefix=" .. package:installdir(), "--", "-DCMAKE_USE_OPENSSL=OFF"}) - import("package.tools.make").install(package) + local configs = {} + configs.version = package:version_str() + os.cp(path.join(package:scriptdir(), "port", "xmake.lua"), "xmake.lua") + import("package.tools.xmake").install(package, configs) end end) on_test(function (package) - os.vrun("cmake --version") + os.vrun("ninja --version") end) package_end() -add_requires("cmake", {system = false}) +add_requires("ninja", {system = false}) target("test") set_kind("binary") add_files("src/*.cpp") - add_packages("cmake") + add_packages("ninja") |
