diff options
| author | ruki <[email protected]> | 2017-07-28 09:15:47 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-07-28 09:15:47 +0800 |
| commit | c109f84c28886f553c949b64944e06e97d2387b4 (patch) | |
| tree | 1957ad49a6d24d6194f02e4d09758915dd4dc3a7 | |
| parent | ba4a55e6c9bc347f3a15dda56cef136d350e09df (diff) | |
simplify build test
| -rw-r--r-- | tests/build.lua | 15 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/src/header.hpp | 16 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/src/main.cpp | 7 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/src/test.cpp | 8 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/src/test2.cpp | 8 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/src/test3.cpp | 8 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/src/test4.cpp | 8 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/src/test5.cpp | 8 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/src/test6.cpp | 8 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/src/test7.cpp | 8 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/src/test8.cpp | 8 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/test.lua | 9 | ||||
| -rw-r--r-- | tests/projects/precompiled_header_c++/xmake.lua | 11 | ||||
| -rw-r--r-- | xmake/actions/build/kinds/object.lua | 6 | ||||
| -rw-r--r-- | xmake/core/project/target.lua | 23 |
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 |
