aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Sales de Andrade <quantum.analyst@gmail.com>2016-12-28 17:02:03 -0500
committerElliott Sales de Andrade <quantum.analyst@gmail.com>2016-12-28 17:19:46 -0500
commit157549fe72dc9ce400c2587b536987b53da8f90b (patch)
tree80040d8e6af9d2a71b7453d94a2f9c8417e948ce
parent24b3585318b01e1c0e5ea7a6186ee699a07b642d (diff)
downloadmeson-157549fe72dc9ce400c2587b536987b53da8f90b.zip
meson-157549fe72dc9ce400c2587b536987b53da8f90b.tar.gz
meson-157549fe72dc9ce400c2587b536987b53da8f90b.tar.bz2
Add include_directories to windows.compile_resources.
-rw-r--r--mesonbuild/modules/windows.py10
-rw-r--r--test cases/windows/5 resources/inc/resource.h1
-rw-r--r--test cases/windows/5 resources/meson.build5
-rw-r--r--test cases/windows/5 resources/myres.rc3
4 files changed, 17 insertions, 2 deletions
diff --git a/mesonbuild/modules/windows.py b/mesonbuild/modules/windows.py
index 012f4d0..d034497 100644
--- a/mesonbuild/modules/windows.py
+++ b/mesonbuild/modules/windows.py
@@ -14,6 +14,7 @@
from .. import mesonlib, dependencies, build
from ..mesonlib import MesonException
+from . import get_include_args
import os
class WindowsModule:
@@ -26,7 +27,16 @@ class WindowsModule:
def compile_resources(self, state, args, kwargs):
comp = self.detect_compiler(state.compilers)
+
extra_args = mesonlib.stringlistify(kwargs.get('args', []))
+ inc_dirs = kwargs.pop('include_directories', [])
+ if not isinstance(inc_dirs, list):
+ inc_dirs = [inc_dirs]
+ for incd in inc_dirs:
+ if not isinstance(incd.held_object, (str, build.IncludeDirs)):
+ raise MesonException('Resource include dirs should be include_directories().')
+ extra_args += get_include_args(state.environment, inc_dirs)
+
if comp.id == 'msvc':
rescomp = dependencies.ExternalProgram('rc', silent=True)
res_args = extra_args + ['/nologo', '/fo@OUTPUT@', '@INPUT@']
diff --git a/test cases/windows/5 resources/inc/resource.h b/test cases/windows/5 resources/inc/resource.h
new file mode 100644
index 0000000..dbdd509
--- /dev/null
+++ b/test cases/windows/5 resources/inc/resource.h
@@ -0,0 +1 @@
+#define ICON_ID 1
diff --git a/test cases/windows/5 resources/meson.build b/test cases/windows/5 resources/meson.build
index fe75719..3c13634 100644
--- a/test cases/windows/5 resources/meson.build
+++ b/test cases/windows/5 resources/meson.build
@@ -1,9 +1,12 @@
project('winmain', 'c')
win = import('windows')
+res = win.compile_resources('myres.rc',
+ include_directories : include_directories('inc')
+)
exe = executable('prog', 'prog.c',
- win.compile_resources('myres.rc'),
+ res,
gui_app : true)
test('winmain', exe)
diff --git a/test cases/windows/5 resources/myres.rc b/test cases/windows/5 resources/myres.rc
index 12838ae..802bc7b 100644
--- a/test cases/windows/5 resources/myres.rc
+++ b/test cases/windows/5 resources/myres.rc
@@ -1,3 +1,4 @@
#include<windows.h>
+#include"resource.h"
-1 ICON "sample.ico"
+ICON_ID ICON "sample.ico"