aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/modules/qt.py8
-rw-r--r--test cases/frameworks/4 qt/subfolder/generator.py6
-rw-r--r--test cases/frameworks/4 qt/subfolder/main.cpp8
-rw-r--r--test cases/frameworks/4 qt/subfolder/meson.build10
-rw-r--r--test cases/frameworks/4 qt/subfolder/resources/stuff4.qrc.in1
5 files changed, 29 insertions, 4 deletions
diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py
index 77b1bb4..1625218 100644
--- a/mesonbuild/modules/qt.py
+++ b/mesonbuild/modules/qt.py
@@ -76,7 +76,7 @@ class QtBaseModule:
abspath = os.path.join(state.environment.source_dir, state.subdir, rcc_file)
relative_part = os.path.dirname(rcc_file)
elif type(rcc_file) is File:
- abspath = rcc_file.fname
+ abspath = rcc_file.absolute_path(state.environment.source_dir, state.environment.build_dir)
relative_part = os.path.dirname(abspath)
try:
@@ -97,18 +97,18 @@ class QtBaseModule:
# a)
if resource_path.startswith(os.path.abspath(state.environment.build_dir)):
resource_relpath = os.path.relpath(resource_path, state.environment.build_dir)
- result.append(File(is_built=True, subdir=state.subdir, fname=resource_relpath))
+ result.append(File(is_built=True, subdir='', fname=resource_relpath))
# either b) or c)
else:
result.append(File(is_built=False, subdir=state.subdir, fname=resource_path))
else:
# a)
- if os.path.exists(state.environment.build_dir+resource_path):
+ if os.path.exists(state.environment.build_dir + resource_path):
result.append(File(is_built=True, subdir=state.subdir, fname=resource_path))
# b)
else:
result.append(File(is_built=False, subdir=state.subdir,
- fname=os.path.join(relative_part, resource_path)))
+ fname=os.path.join(relative_part, resource_path)))
return result
except Exception:
return []
diff --git a/test cases/frameworks/4 qt/subfolder/generator.py b/test cases/frameworks/4 qt/subfolder/generator.py
new file mode 100644
index 0000000..045d99a
--- /dev/null
+++ b/test cases/frameworks/4 qt/subfolder/generator.py
@@ -0,0 +1,6 @@
+#!/usr/bin/env python3
+import sys
+
+if len(sys.argv) > 1:
+ with open(sys.argv[1], "w") as output:
+ output.write("Hello World")
diff --git a/test cases/frameworks/4 qt/subfolder/main.cpp b/test cases/frameworks/4 qt/subfolder/main.cpp
index 6140659..042288b 100644
--- a/test cases/frameworks/4 qt/subfolder/main.cpp
+++ b/test cases/frameworks/4 qt/subfolder/main.cpp
@@ -1,4 +1,6 @@
#include <QImage>
+#include <QFile>
+#include <QString>
int main(int argc, char **argv) {
#ifndef UNITY_BUILD
@@ -14,5 +16,11 @@ int main(int argc, char **argv) {
if(img2.width() != 640) {
return 1;
}
+ QFile file(":/txt_resource.txt");
+ if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
+ return 1;
+ QString line = file.readLine();
+ if(line.compare("Hello World"))
+ return 1;
return 0;
} \ No newline at end of file
diff --git a/test cases/frameworks/4 qt/subfolder/meson.build b/test cases/frameworks/4 qt/subfolder/meson.build
index abba4c7..0b54df7 100644
--- a/test cases/frameworks/4 qt/subfolder/meson.build
+++ b/test cases/frameworks/4 qt/subfolder/meson.build
@@ -1,6 +1,16 @@
+
+simple_gen = find_program('generator.py', required : true)
+
+txt_resource = custom_target('txt_resource',
+ output : 'txt_resource.txt',
+ command : [simple_gen, '@OUTPUT@'],
+)
+
cfg = configuration_data()
cfg.set('filepath', meson.current_source_dir()+'/../thing2.png')
+cfg.set('txt_resource', txt_resource.full_path())
+
rc_file = configure_file(
configuration : cfg,
input : 'resources/stuff4.qrc.in',
diff --git a/test cases/frameworks/4 qt/subfolder/resources/stuff4.qrc.in b/test cases/frameworks/4 qt/subfolder/resources/stuff4.qrc.in
index c9f67ac..97e2778 100644
--- a/test cases/frameworks/4 qt/subfolder/resources/stuff4.qrc.in
+++ b/test cases/frameworks/4 qt/subfolder/resources/stuff4.qrc.in
@@ -2,5 +2,6 @@
<RCC version="1.0">
<qresource>
<file alias="thing4.png">@filepath@</file>
+ <file alias="txt_resource.txt">@txt_resource@</file>
</qresource>
</RCC>