summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-11-25 10:47:28 +0800
committerGitHub <[email protected]>2024-11-25 10:47:28 +0800
commit09920ae45de7e15b46a0677c474cde18016bc9e2 (patch)
treeed2d92d9502eae82f68842d3a94251e8b71c3f7d
parent6227615261ce6c2109c0c8324a83b582b25bd337 (diff)
parentc4bc1b11a6644acda3c49f39aa7146d63695f9be (diff)
Merge pull request #5880 from xmake-io/msvc
Improve msvc toolchain for package
-rw-r--r--tests/apis/add_deps/src/main.c3
-rw-r--r--tests/apis/check_xxx/main.c3
-rw-r--r--tests/apis/rules/src/main2.c3
-rw-r--r--tests/plugins/pack/src/main.cpp3
-rw-r--r--tests/projects/c/asn1c/src/main.c4
-rw-r--r--tests/projects/package/toolchain_llvm/src/main.c3
-rw-r--r--tests/projects/package/toolchain_llvm_mingw/src/main.c3
-rw-r--r--tests/projects/package/toolchain_msvc/src/main.c6
-rw-r--r--tests/projects/package/toolchain_msvc/xmake.lua8
-rw-r--r--xmake/toolchains/clang-cl/check.lua13
-rw-r--r--xmake/toolchains/msvc/check.lua13
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