diff options
| author | ruki <[email protected]> | 2024-11-25 10:47:28 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-11-25 10:47:28 +0800 |
| commit | 09920ae45de7e15b46a0677c474cde18016bc9e2 (patch) | |
| tree | ed2d92d9502eae82f68842d3a94251e8b71c3f7d | |
| parent | 6227615261ce6c2109c0c8324a83b582b25bd337 (diff) | |
| parent | c4bc1b11a6644acda3c49f39aa7146d63695f9be (diff) | |
Merge pull request #5880 from xmake-io/msvc
Improve msvc toolchain for package
| -rw-r--r-- | tests/apis/add_deps/src/main.c | 3 | ||||
| -rw-r--r-- | tests/apis/check_xxx/main.c | 3 | ||||
| -rw-r--r-- | tests/apis/rules/src/main2.c | 3 | ||||
| -rw-r--r-- | tests/plugins/pack/src/main.cpp | 3 | ||||
| -rw-r--r-- | tests/projects/c/asn1c/src/main.c | 4 | ||||
| -rw-r--r-- | tests/projects/package/toolchain_llvm/src/main.c | 3 | ||||
| -rw-r--r-- | tests/projects/package/toolchain_llvm_mingw/src/main.c | 3 | ||||
| -rw-r--r-- | tests/projects/package/toolchain_msvc/src/main.c | 6 | ||||
| -rw-r--r-- | tests/projects/package/toolchain_msvc/xmake.lua | 8 | ||||
| -rw-r--r-- | xmake/toolchains/clang-cl/check.lua | 13 | ||||
| -rw-r--r-- | xmake/toolchains/msvc/check.lua | 13 |
11 files changed, 46 insertions, 16 deletions
diff --git a/tests/apis/add_deps/src/main.c b/tests/apis/add_deps/src/main.c index 9ae580511..113930e1a 100644 --- a/tests/apis/add_deps/src/main.c +++ b/tests/apis/add_deps/src/main.c @@ -1,7 +1,6 @@ #include <stdio.h> -int main(int argc, char** argv) -{ +int main(int argc, char** argv) { printf("hello world!\n"); return 0; } diff --git a/tests/apis/check_xxx/main.c b/tests/apis/check_xxx/main.c index e5a9ccbdf..9b130982d 100644 --- a/tests/apis/check_xxx/main.c +++ b/tests/apis/check_xxx/main.c @@ -1,4 +1,3 @@ -int main(int argc, char** argv) -{ +int main(int argc, char** argv) { return 0; } diff --git a/tests/apis/rules/src/main2.c b/tests/apis/rules/src/main2.c index b86c9ad8e..9a8264b1f 100644 --- a/tests/apis/rules/src/main2.c +++ b/tests/apis/rules/src/main2.c @@ -1,8 +1,7 @@ #include <stdio.h> extern int test(int a, int b); -int main(int argc, char** argv) -{ +int main(int argc, char** argv) { printf("1 + 1 = %d\n", test(1, 1)); return 0; } diff --git a/tests/plugins/pack/src/main.cpp b/tests/plugins/pack/src/main.cpp index 7c435d251..e64ad9bc2 100644 --- a/tests/plugins/pack/src/main.cpp +++ b/tests/plugins/pack/src/main.cpp @@ -2,8 +2,7 @@ using namespace std; -int main(int argc, char** argv) -{ +int main(int argc, char** argv) { cout << "hello world!" << endl; return 0; } diff --git a/tests/projects/c/asn1c/src/main.c b/tests/projects/c/asn1c/src/main.c index cb396a543..96c6f38cf 100644 --- a/tests/projects/c/asn1c/src/main.c +++ b/tests/projects/c/asn1c/src/main.c @@ -27,8 +27,8 @@ int main(int ac, char **av) { exit(71); /* better, EX_OSERR */ } - /* - * Initialize the Rectangle members + /* + * Initialize the Rectangle members */ /* height */ diff --git a/tests/projects/package/toolchain_llvm/src/main.c b/tests/projects/package/toolchain_llvm/src/main.c index 9ae580511..113930e1a 100644 --- a/tests/projects/package/toolchain_llvm/src/main.c +++ b/tests/projects/package/toolchain_llvm/src/main.c @@ -1,7 +1,6 @@ #include <stdio.h> -int main(int argc, char** argv) -{ +int main(int argc, char** argv) { printf("hello world!\n"); return 0; } diff --git a/tests/projects/package/toolchain_llvm_mingw/src/main.c b/tests/projects/package/toolchain_llvm_mingw/src/main.c index 9ae580511..113930e1a 100644 --- a/tests/projects/package/toolchain_llvm_mingw/src/main.c +++ b/tests/projects/package/toolchain_llvm_mingw/src/main.c @@ -1,7 +1,6 @@ #include <stdio.h> -int main(int argc, char** argv) -{ +int main(int argc, char** argv) { printf("hello world!\n"); return 0; } diff --git a/tests/projects/package/toolchain_msvc/src/main.c b/tests/projects/package/toolchain_msvc/src/main.c new file mode 100644 index 000000000..113930e1a --- /dev/null +++ b/tests/projects/package/toolchain_msvc/src/main.c @@ -0,0 +1,6 @@ +#include <stdio.h> + +int main(int argc, char** argv) { + printf("hello world!\n"); + return 0; +} diff --git a/tests/projects/package/toolchain_msvc/xmake.lua b/tests/projects/package/toolchain_msvc/xmake.lua new file mode 100644 index 000000000..2b1f7b56d --- /dev/null +++ b/tests/projects/package/toolchain_msvc/xmake.lua @@ -0,0 +1,8 @@ +add_rules("mode.debug", "mode.release") +add_requires("msvc") + +target("test") + set_kind("binary") + add_files("src/*.c") + set_toolchains("@msvc") + --set_toolchains("clang-cl@msvc") diff --git a/xmake/toolchains/clang-cl/check.lua b/xmake/toolchains/clang-cl/check.lua index b416a44ce..9f7022482 100644 --- a/xmake/toolchains/clang-cl/check.lua +++ b/xmake/toolchains/clang-cl/check.lua @@ -137,7 +137,6 @@ function _check_vc_build_tools(toolchain, sdkdir) end end --- main entry function main(toolchain) -- only for windows or linux (msvc-wine) @@ -154,6 +153,18 @@ function main(toolchain) if sdkdir then return _check_vc_build_tools(toolchain, sdkdir) else + -- find it from packages + for _, package in ipairs(toolchain:packages()) do + local installdir = package:installdir() + if installdir and os.isdir(installdir) then + local result = _check_vc_build_tools(toolchain, installdir) + if result then + return result + end + end + end + + -- find it from system return _check_vstudio(toolchain) end end diff --git a/xmake/toolchains/msvc/check.lua b/xmake/toolchains/msvc/check.lua index 3c70d43c0..c40d4a202 100644 --- a/xmake/toolchains/msvc/check.lua +++ b/xmake/toolchains/msvc/check.lua @@ -128,7 +128,6 @@ function _check_vc_build_tools(toolchain, sdkdir) end end --- main entry function main(toolchain) -- only for windows or linux (msvc-wine) @@ -145,6 +144,18 @@ function main(toolchain) if sdkdir then return _check_vc_build_tools(toolchain, sdkdir) else + -- find it from packages + for _, package in ipairs(toolchain:packages()) do + local installdir = package:installdir() + if installdir and os.isdir(installdir) then + local result = _check_vc_build_tools(toolchain, installdir) + if result then + return result + end + end + end + + -- find it from system return _check_vstudio(toolchain) end end |
