diff options
-rw-r--r-- | mesonbuild/modules/qt.py | 8 | ||||
-rw-r--r-- | test cases/frameworks/4 qt/subfolder/generator.py | 6 | ||||
-rw-r--r-- | test cases/frameworks/4 qt/subfolder/main.cpp | 8 | ||||
-rw-r--r-- | test cases/frameworks/4 qt/subfolder/meson.build | 10 | ||||
-rw-r--r-- | test cases/frameworks/4 qt/subfolder/resources/stuff4.qrc.in | 1 |
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> |