summaryrefslogtreecommitdiffstats
path: root/meta/classes/webos_qmllint.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/webos_qmllint.bbclass')
-rw-r--r--meta/classes/webos_qmllint.bbclass31
1 files changed, 31 insertions, 0 deletions
diff --git a/meta/classes/webos_qmllint.bbclass b/meta/classes/webos_qmllint.bbclass
new file mode 100644
index 0000000000..7e19305e3d
--- /dev/null
+++ b/meta/classes/webos_qmllint.bbclass
@@ -0,0 +1,31 @@
+# Copyright (c) 2017 LG Electronics, Inc.
+#
+# QML syntax verifier
+#
+
+DEPENDS_append = " qtdeclarative-native libxml2-native"
+
+inherit qmake5_paths
+
+do_compile_prepend () {
+ bbnote "Verify QML syntax(step 1): .qml or .js files stored as qresource"
+ find ${S} -type f -name "*.qrc" | while read qrc; do
+ local _dirname_=$(dirname $qrc)
+ ${STAGING_BINDIR_NATIVE}/xmllint --xpath '//RCC/qresource/file' $qrc | sed 's/<file>//g' | sed 's/<\/file>/\n/g' | grep -E "*.qml$|*.js$" | while read file; do
+ if [ -f "$_dirname_/$file" ]; then
+ bbnote "Inspecting $_dirname_/$file"
+ ${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_QT_BINS}/qmllint "$_dirname_/$file"
+ fi
+ done
+ done
+ bbnote "Done verifying QML syntax(step 1), no errors detected"
+}
+
+do_install_append () {
+ bbnote "Verify QML syntax(step 2): .qml or .js files to be installed"
+ find ${D} -type f -name "*.qml" -o -name "*.js" | while read file; do
+ bbnote "Inspecting $file"
+ ${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_QT_BINS}/qmllint "$file"
+ done
+ bbnote "Done verifying QML syntax(step 2), no errors detected"
+}