summaryrefslogtreecommitdiff
path: root/tests/projects
diff options
context:
space:
mode:
authorruki <[email protected]>2021-09-29 00:51:53 +0800
committerruki <[email protected]>2021-09-29 00:51:53 +0800
commit88eda991bfd54b709cda4eb72be1665ad6ce85ef (patch)
treeddd328d9c0c071c14999194477d632863462a5e3 /tests/projects
parent169141eaa2158281f80aca5c30e17c9d1ace52d7 (diff)
add with cmakelists
Diffstat (limited to 'tests/projects')
-rw-r--r--tests/projects/c/library_with_cmakelists/.gitignore8
-rw-r--r--tests/projects/c/library_with_cmakelists/foo/CMakeLists.txt8
-rw-r--r--tests/projects/c/library_with_cmakelists/foo/src/interface.c6
-rw-r--r--tests/projects/c/library_with_cmakelists/foo/src/interface.h8
-rw-r--r--tests/projects/c/library_with_cmakelists/src/main.c8
-rw-r--r--tests/projects/c/library_with_cmakelists/xmake.lua25
6 files changed, 63 insertions, 0 deletions
diff --git a/tests/projects/c/library_with_cmakelists/.gitignore b/tests/projects/c/library_with_cmakelists/.gitignore
new file mode 100644
index 000000000..152105761
--- /dev/null
+++ b/tests/projects/c/library_with_cmakelists/.gitignore
@@ -0,0 +1,8 @@
+# Xmake cache
+.xmake/
+build/
+
+# MacOS Cache
+.DS_Store
+
+
diff --git a/tests/projects/c/library_with_cmakelists/foo/CMakeLists.txt b/tests/projects/c/library_with_cmakelists/foo/CMakeLists.txt
new file mode 100644
index 000000000..2654a77a2
--- /dev/null
+++ b/tests/projects/c/library_with_cmakelists/foo/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.13.0)
+project(foo_demo LANGUAGES C CXX ASM)
+
+add_library(foo STATIC "")
+target_sources(foo PRIVATE
+ src/interface.c
+)
+
diff --git a/tests/projects/c/library_with_cmakelists/foo/src/interface.c b/tests/projects/c/library_with_cmakelists/foo/src/interface.c
new file mode 100644
index 000000000..598d07560
--- /dev/null
+++ b/tests/projects/c/library_with_cmakelists/foo/src/interface.c
@@ -0,0 +1,6 @@
+#include "interface.h"
+
+int add(int a, int b)
+{
+ return a + b;
+}
diff --git a/tests/projects/c/library_with_cmakelists/foo/src/interface.h b/tests/projects/c/library_with_cmakelists/foo/src/interface.h
new file mode 100644
index 000000000..6c2aa9c2a
--- /dev/null
+++ b/tests/projects/c/library_with_cmakelists/foo/src/interface.h
@@ -0,0 +1,8 @@
+/*! calculate add(a, b)
+ *
+ * @param a the first argument
+ * @param b the second argument
+ *
+ * @return the result
+ */
+int add(int a, int b);
diff --git a/tests/projects/c/library_with_cmakelists/src/main.c b/tests/projects/c/library_with_cmakelists/src/main.c
new file mode 100644
index 000000000..9505a2f75
--- /dev/null
+++ b/tests/projects/c/library_with_cmakelists/src/main.c
@@ -0,0 +1,8 @@
+#include "interface.h"
+#include <stdio.h>
+
+int main(int argc, char** argv)
+{
+ printf("add(1, 2) = %d\n", add(1, 2));
+ return 0;
+}
diff --git a/tests/projects/c/library_with_cmakelists/xmake.lua b/tests/projects/c/library_with_cmakelists/xmake.lua
new file mode 100644
index 000000000..337527d0f
--- /dev/null
+++ b/tests/projects/c/library_with_cmakelists/xmake.lua
@@ -0,0 +1,25 @@
+add_rules("mode.debug", "mode.release")
+
+package("foo")
+ add_deps("cmake")
+ set_sourcedir("foo")
+ on_install(function (package)
+ local configs = {}
+ table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
+ table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
+ import("package.tools.cmake").build(package, configs, {buildir = "build"})
+ os.cp("src/*.h", package:installdir("include"))
+ os.cp("build/*.a", package:installdir("lib"))
+ end)
+ on_test(function (package)
+ assert(package:has_cincludes("interface.h"))
+ end)
+package_end()
+
+add_requires("foo")
+
+target("demo")
+ set_kind("binary")
+ add_files("src/main.c")
+ add_packages("foo")
+