summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2017-07-28 09:15:47 +0800
committerruki <[email protected]>2017-07-28 09:15:47 +0800
commitc109f84c28886f553c949b64944e06e97d2387b4 (patch)
tree1957ad49a6d24d6194f02e4d09758915dd4dc3a7
parentba4a55e6c9bc347f3a15dda56cef136d350e09df (diff)
simplify build test
-rw-r--r--tests/build.lua15
-rw-r--r--tests/projects/precompiled_header_c++/src/header.hpp16
-rw-r--r--tests/projects/precompiled_header_c++/src/main.cpp7
-rw-r--r--tests/projects/precompiled_header_c++/src/test.cpp8
-rw-r--r--tests/projects/precompiled_header_c++/src/test2.cpp8
-rw-r--r--tests/projects/precompiled_header_c++/src/test3.cpp8
-rw-r--r--tests/projects/precompiled_header_c++/src/test4.cpp8
-rw-r--r--tests/projects/precompiled_header_c++/src/test5.cpp8
-rw-r--r--tests/projects/precompiled_header_c++/src/test6.cpp8
-rw-r--r--tests/projects/precompiled_header_c++/src/test7.cpp8
-rw-r--r--tests/projects/precompiled_header_c++/src/test8.cpp8
-rw-r--r--tests/projects/precompiled_header_c++/test.lua9
-rw-r--r--tests/projects/precompiled_header_c++/xmake.lua11
-rw-r--r--xmake/actions/build/kinds/object.lua6
-rw-r--r--xmake/core/project/target.lua23
15 files changed, 128 insertions, 23 deletions
diff --git a/tests/build.lua b/tests/build.lua
index fa8b59e2a..e07955c2d 100644
--- a/tests/build.lua
+++ b/tests/build.lua
@@ -8,28 +8,19 @@ function main(argv)
os.exec("xmake g -c")
-- generic?
- os.exec("xmake m -b")
os.exec("xmake f -c")
os.exec("xmake")
+ os.exec("xmake p --verbose --backtrace")
if os.host() ~= "windows" then
os.exec("xmake install -o /tmp -a --verbose --backtrace")
os.exec("xmake uninstall --installdir=/tmp --verbose --backtrace")
end
- os.exec("xmake p")
- os.exec("xmake c")
+ os.exec("xmake c --verbose --backtrace")
os.exec("xmake f --mode=debug --verbose --backtrace")
+ os.exec("xmake m -b")
os.exec("xmake -r -a -v --backtrace")
- os.exec("xmake p --verbose --backtrace")
- os.exec("xmake c --verbose --backtrace")
os.exec("xmake m -e buildtest")
os.exec("xmake m -l")
- os.exec("xmake f --cc=gcc --cxx=g++")
- os.exec("xmake m buildtest")
- if sudo.has() then
- sudo.exec("xmake install")
- sudo.exec("xmake uninstall")
- end
- os.exec("xmake f --cc=clang --cxx=clang++ --ld=clang++ --verbose --backtrace")
os.exec("xmake m buildtest")
if sudo.has() then
sudo.exec("xmake install --all -v --backtrace")
diff --git a/tests/projects/precompiled_header_c++/src/header.hpp b/tests/projects/precompiled_header_c++/src/header.hpp
new file mode 100644
index 000000000..39e07b7ce
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/src/header.hpp
@@ -0,0 +1,16 @@
+// header.h
+#ifndef HEADER_H
+#define HEADER_H
+
+#include <algorithm>
+#include <deque>
+#include <iostream>
+#include <map>
+#include <memory>
+#include <set>
+#include <thread>
+#include <utility>
+#include <vector>
+
+#endif
+
diff --git a/tests/projects/precompiled_header_c++/src/main.cpp b/tests/projects/precompiled_header_c++/src/main.cpp
new file mode 100644
index 000000000..ac88728f1
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/src/main.cpp
@@ -0,0 +1,7 @@
+
+// main.cpp
+#include "header.hpp"
+
+int main() {
+ return 0;
+}
diff --git a/tests/projects/precompiled_header_c++/src/test.cpp b/tests/projects/precompiled_header_c++/src/test.cpp
new file mode 100644
index 000000000..536d30aca
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/src/test.cpp
@@ -0,0 +1,8 @@
+
+// main.cpp
+#include "header.hpp"
+
+int test()
+{
+ return 0;
+}
diff --git a/tests/projects/precompiled_header_c++/src/test2.cpp b/tests/projects/precompiled_header_c++/src/test2.cpp
new file mode 100644
index 000000000..d46e45a7a
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/src/test2.cpp
@@ -0,0 +1,8 @@
+
+// main.cpp
+#include "header.hpp"
+
+int test2()
+{
+ return 0;
+}
diff --git a/tests/projects/precompiled_header_c++/src/test3.cpp b/tests/projects/precompiled_header_c++/src/test3.cpp
new file mode 100644
index 000000000..5decf9960
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/src/test3.cpp
@@ -0,0 +1,8 @@
+
+// main.cpp
+#include "header.hpp"
+
+int test3()
+{
+ return 0;
+}
diff --git a/tests/projects/precompiled_header_c++/src/test4.cpp b/tests/projects/precompiled_header_c++/src/test4.cpp
new file mode 100644
index 000000000..4aad9efa4
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/src/test4.cpp
@@ -0,0 +1,8 @@
+
+// main.cpp
+#include "header.hpp"
+
+int test4()
+{
+ return 0;
+}
diff --git a/tests/projects/precompiled_header_c++/src/test5.cpp b/tests/projects/precompiled_header_c++/src/test5.cpp
new file mode 100644
index 000000000..d7a227c95
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/src/test5.cpp
@@ -0,0 +1,8 @@
+
+// main.cpp
+#include "header.hpp"
+
+int test5()
+{
+ return 0;
+}
diff --git a/tests/projects/precompiled_header_c++/src/test6.cpp b/tests/projects/precompiled_header_c++/src/test6.cpp
new file mode 100644
index 000000000..4caf0d0d6
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/src/test6.cpp
@@ -0,0 +1,8 @@
+
+// main.cpp
+#include "header.hpp"
+
+int test6()
+{
+ return 0;
+}
diff --git a/tests/projects/precompiled_header_c++/src/test7.cpp b/tests/projects/precompiled_header_c++/src/test7.cpp
new file mode 100644
index 000000000..be5bd8939
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/src/test7.cpp
@@ -0,0 +1,8 @@
+
+// main.cpp
+#include "header.hpp"
+
+int test7()
+{
+ return 0;
+}
diff --git a/tests/projects/precompiled_header_c++/src/test8.cpp b/tests/projects/precompiled_header_c++/src/test8.cpp
new file mode 100644
index 000000000..a5e45d8ea
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/src/test8.cpp
@@ -0,0 +1,8 @@
+
+// main.cpp
+#include "header.hpp"
+
+int test8()
+{
+ return 0;
+}
diff --git a/tests/projects/precompiled_header_c++/test.lua b/tests/projects/precompiled_header_c++/test.lua
new file mode 100644
index 000000000..1ff9219ba
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/test.lua
@@ -0,0 +1,9 @@
+-- imports
+import("..build")
+
+-- main entry
+function main()
+
+ -- build project
+ build()
+end
diff --git a/tests/projects/precompiled_header_c++/xmake.lua b/tests/projects/precompiled_header_c++/xmake.lua
new file mode 100644
index 000000000..6460d46c4
--- /dev/null
+++ b/tests/projects/precompiled_header_c++/xmake.lua
@@ -0,0 +1,11 @@
+-- define target
+target("main")
+
+ -- set kind
+ set_kind("binary")
+
+ set_precompiled_header("src/header.hpp")
+
+ -- add files
+ add_files("src/*.cpp")
+
diff --git a/xmake/actions/build/kinds/object.lua b/xmake/actions/build/kinds/object.lua
index e0a35e29c..045045041 100644
--- a/xmake/actions/build/kinds/object.lua
+++ b/xmake/actions/build/kinds/object.lua
@@ -99,6 +99,12 @@ function _build_object(target, buildinfo, index, sourcebatch, ccache)
depfiles = io.load(incdepfile)
end
table.insert(depfiles, sourcefile)
+
+ -- add precompiled header to the dependent files
+ local precompiled_header = target:get("precompiled_header")
+ if precompiled_header then
+ table.insert(depfiles, precompiled_header)
+ end
-- check the dependent files are modified?
local modified = false
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index beb7bfef2..add079dd7 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -26,16 +26,17 @@
local target = target or {}
-- load modules
-local os = require("base/os")
-local path = require("base/path")
-local utils = require("base/utils")
-local table = require("base/table")
-local option = require("project/option")
-local config = require("project/config")
-local linker = require("tool/linker")
-local compiler = require("tool/compiler")
-local platform = require("platform/platform")
-local language = require("language/language")
+local os = require("base/os")
+local path = require("base/path")
+local utils = require("base/utils")
+local table = require("base/table")
+local deprecated = require("base/deprecated")
+local option = require("project/option")
+local config = require("project/config")
+local linker = require("tool/linker")
+local compiler = require("tool/compiler")
+local platform = require("platform/platform")
+local language = require("language/language")
-- get the filename from the given target name and kind
function target.filename(targetname, targetkind, targetformat)
@@ -679,7 +680,7 @@ function target:configheader(outputdir)
-- mark as deprecated
if configheader then
- deprecated.add("set_config_header(\"%s\", {prefix = \"...\"})", "set_config_h(\"%s\")", configheader)
+ deprecated.add("set_config_header(\"%s\", {prefix = \"...\"})", "set_config_h(\"%s\")", path.relative(configheader, os.projectdir()))
end
end
if not configheader then