summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2018-04-17 22:46:43 +0800
committerruki <[email protected]>2018-04-17 10:40:23 +0800
commite9df357185b4ed02e230a11bfe76ad7dcf3a5376 (patch)
tree8f303e98154a684a8d9df11deb72cdf8d9554cb2
parentacf8310347d557a731ded14acd283a073129bf29 (diff)
compile qrc file for qt
-rw-r--r--tests/projects/console_c/xmake.lua2
-rw-r--r--tests/projects/qt_console/xmake.lua4
-rw-r--r--tests/projects/qt_quickapp/xmake.lua4
-rw-r--r--tests/projects/qt_shared_library/xmake.lua4
-rw-r--r--tests/projects/qt_static_library/xmake.lua4
-rw-r--r--xmake/rules/mode/xmake.lua10
-rw-r--r--xmake/rules/qt/xmake.lua43
7 files changed, 43 insertions, 28 deletions
diff --git a/tests/projects/console_c/xmake.lua b/tests/projects/console_c/xmake.lua
index 4faa18a0f..a9106daff 100644
--- a/tests/projects/console_c/xmake.lua
+++ b/tests/projects/console_c/xmake.lua
@@ -1,6 +1,6 @@
-- add modes: debug and release
-add_rules("mode:debug", "mode:release")
+add_rules("mode.debug", "mode.release")
-- add target
target("console_c")
diff --git a/tests/projects/qt_console/xmake.lua b/tests/projects/qt_console/xmake.lua
index 0ab7a6b23..249f52cdd 100644
--- a/tests/projects/qt_console/xmake.lua
+++ b/tests/projects/qt_console/xmake.lua
@@ -1,12 +1,12 @@
-- add modes: debug and release
-add_rules("mode:debug", "mode:release")
+add_rules("mode.debug", "mode.release")
-- add target
target("qt_console")
-- add rules
- add_rules("qt:console")
+ add_rules("qt.console")
-- add files
add_files("src/*.cpp")
diff --git a/tests/projects/qt_quickapp/xmake.lua b/tests/projects/qt_quickapp/xmake.lua
index 87a1d80f8..a2f261d24 100644
--- a/tests/projects/qt_quickapp/xmake.lua
+++ b/tests/projects/qt_quickapp/xmake.lua
@@ -1,12 +1,12 @@
-- add modes: debug and release
-add_rules("mode:debug", "mode:release")
+add_rules("mode.debug", "mode.release")
-- add target
target("qt_demo")
-- add rules
- add_rules("qt:quickapp")
+ add_rules("qt.quickapp")
-- add headers
add_headers("src/*.h")
diff --git a/tests/projects/qt_shared_library/xmake.lua b/tests/projects/qt_shared_library/xmake.lua
index e3d3c0e61..803065b72 100644
--- a/tests/projects/qt_shared_library/xmake.lua
+++ b/tests/projects/qt_shared_library/xmake.lua
@@ -1,12 +1,12 @@
-- add modes: debug and release
-add_rules("mode:debug", "mode:release")
+add_rules("mode.debug", "mode.release")
-- add target
target("qt_demo")
-- add rules
- add_rules("qt:shared")
+ add_rules("qt.shared")
-- add headers
add_headers("src/*.h")
diff --git a/tests/projects/qt_static_library/xmake.lua b/tests/projects/qt_static_library/xmake.lua
index 00fcd0b31..ce755850a 100644
--- a/tests/projects/qt_static_library/xmake.lua
+++ b/tests/projects/qt_static_library/xmake.lua
@@ -1,12 +1,12 @@
-- add modes: debug and release
-add_rules("mode:debug", "mode:release")
+add_rules("mode.debug", "mode.release")
-- add target
target("qt_demo")
-- add rules
- add_rules("qt:static")
+ add_rules("qt.static")
-- add headers
add_headers("src/*.h")
diff --git a/xmake/rules/mode/xmake.lua b/xmake/rules/mode/xmake.lua
index ce7d470d1..56b50216a 100644
--- a/xmake/rules/mode/xmake.lua
+++ b/xmake/rules/mode/xmake.lua
@@ -23,7 +23,7 @@
--
-- define rule: debug mode
-rule("mode:debug")
+rule("mode.debug")
on_load(function (target)
-- is debug mode now? xmake f -m debug
@@ -38,7 +38,7 @@ rule("mode:debug")
end)
-- define rule: release mode
-rule("mode:release")
+rule("mode.release")
on_load(function (target)
-- is release mode now? xmake f -m release
@@ -56,7 +56,7 @@ rule("mode:release")
end)
-- define rule: profile mode
-rule("mode:profile")
+rule("mode.profile")
on_load(function (target)
-- is profile mode now? xmake f -m profile
@@ -76,7 +76,7 @@ rule("mode:profile")
end)
-- define rule: check mode
-rule("mode:check")
+rule("mode.check")
on_load(function (target)
-- is check mode now? xmake f -m check
@@ -98,7 +98,7 @@ rule("mode:check")
end)
-- define rule: coverage mode
-rule("mode:coverage")
+rule("mode.coverage")
on_load(function (target)
-- is coverage mode now? xmake f -m coverage
diff --git a/xmake/rules/qt/xmake.lua b/xmake/rules/qt/xmake.lua
index c386a5ea6..a1ec4957d 100644
--- a/xmake/rules/qt/xmake.lua
+++ b/xmake/rules/qt/xmake.lua
@@ -23,7 +23,7 @@
--
-- define rule: environment
-rule("qt:env")
+rule("qt.env")
-- on load
on_load(function (target)
@@ -32,10 +32,10 @@ rule("qt:env")
end)
-- define rule: qt static library
-rule("qt:static")
+rule("qt.static")
-- add rule: qt environment
- add_deps("qt:env")
+ add_deps("qt.env")
-- on load
on_load(function (target)
@@ -43,10 +43,10 @@ rule("qt:static")
end)
-- define rule: qt shared library
-rule("qt:shared")
+rule("qt.shared")
-- add rule: qt environment
- add_deps("qt:env")
+ add_deps("qt.env")
-- on load
on_load(function (target)
@@ -54,10 +54,10 @@ rule("qt:shared")
end)
-- define rule: qt console
-rule("qt:console")
+rule("qt.console")
-- add rule: qt environment
- add_deps("qt:env")
+ add_deps("qt.env")
-- on load
on_load(function (target)
@@ -65,10 +65,10 @@ rule("qt:console")
end)
-- define rule: qt widget application
-rule("qt:widgetapp")
+rule("qt.widgetapp")
-- add rule: qt environment
- add_deps("qt:env")
+ add_deps("qt.env")
-- on load
on_load(function (target)
@@ -76,10 +76,10 @@ rule("qt:widgetapp")
end)
-- define rule: *.qrc
-rule("qt:qrc")
+rule("qt.qrc")
-- add rule: qt environment
- add_deps("qt:env")
+ add_deps("qt.env")
-- set extensions
set_extensions(".qrc")
@@ -101,11 +101,12 @@ rule("qt:qrc")
-- imports
import("core.base.option")
import("core.project.config")
+ import("core.tool.compiler")
-- get rcc
local rcc = target:data("rcc")
- -- get c++ sourcefile for qrc
+ -- get c++ source file for qrc
local sourcefile_cpp = path.join(config.buildir(), ".qt", "qrc", target:name(), path.basename(sourcefile_qrc) .. ".cpp")
local sourcefile_dir = path.directory(sourcefile_cpp)
if not os.isdir(sourcefile_dir) then
@@ -119,13 +120,27 @@ rule("qt:qrc")
-- compile qrc
os.runv(rcc, {"-name", "qml", sourcefile_qrc, "-o", sourcefile_cpp})
+
+ -- get object file
+ local objectfile = target:objectfile(sourcefile_cpp)
+
+ -- trace
+ if option.get("verbose") then
+ print(compiler.compcmd(sourcefile_cpp, objectfile, {target = target}))
+ end
+
+ -- compile c++ source file for qrc
+ compiler.compile(sourcefile_cpp, objectfile, {target = target})
+
+ -- add objectfile
+ table.insert(target:objectfiles(), objectfile)
end)
-- define rule: qt quick application
-rule("qt:quickapp")
+rule("qt.quickapp")
-- add rules
- add_deps("qt:qrc")
+ add_deps("qt.qrc")
-- on load
on_load(function (target)