aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/coredata.py2
-rw-r--r--mesonbuild/interpreter.py14
-rw-r--r--mesonbuild/mconf.py2
-rw-r--r--mesonbuild/minstall.py4
-rw-r--r--test cases/common/19 includedir/src/meson.build2
-rw-r--r--test cases/common/84 declare dep/entity/meson.build2
-rwxr-xr-xtools/cmake2meson.py4
7 files changed, 14 insertions, 16 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py
index b650f78..6262011 100644
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -116,7 +116,7 @@ class UserUmaskOption(UserIntegerOption):
def validate_value(self, value):
if value is None or value == 'preserve':
- return None
+ return 'preserve'
return super().validate_value(value)
def toint(self, valuestring):
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index f849f3c..07af41d 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -2209,7 +2209,7 @@ class Interpreter(InterpreterBase):
version = kwargs.get('version', self.project_version)
if not isinstance(version, str):
raise InterpreterException('Version must be a string.')
- incs = self.entries_to_incdirs(extract_as_list(kwargs, 'include_directories', unholder=True))
+ incs = self.extract_incdirs(kwargs)
libs = extract_as_list(kwargs, 'link_with', unholder=True)
libs_whole = extract_as_list(kwargs, 'link_whole', unholder=True)
sources = extract_as_list(kwargs, 'sources')
@@ -3698,15 +3698,14 @@ This will become a hard error in the future.''' % kwargs['input'])
self.build.data.append(build.Data([cfile], idir, install_mode))
return mesonlib.File.from_built_file(self.subdir, output)
- def entries_to_incdirs(self, prospectives):
- if not isinstance(prospectives, list):
- return self.entries_to_incdirs([prospectives])[0]
+ def extract_incdirs(self, kwargs):
+ prospectives = listify(kwargs.get('include_directories', []), unholder=True)
result = []
for p in prospectives:
- if isinstance(p, (IncludeDirsHolder, build.IncludeDirs)):
+ if isinstance(p, build.IncludeDirs):
result.append(p)
elif isinstance(p, str):
- result.append(self.build_incdir_object([p]))
+ result.append(self.build_incdir_object([p]).held_object)
else:
raise InterpreterException('Include directory objects can only be created from strings or include directories.')
return result
@@ -4072,8 +4071,7 @@ Try setting b_lundef to false instead.'''.format(self.coredata.base_options['b_s
# passed to library() when default_library == 'static'.
kwargs = {k: v for k, v in kwargs.items() if k in targetclass.known_kwargs}
- if 'include_directories' in kwargs:
- kwargs['include_directories'] = self.entries_to_incdirs(kwargs['include_directories'])
+ kwargs['include_directories'] = self.extract_incdirs(kwargs)
target = targetclass(name, self.subdir, self.subproject, is_cross, sources, objs, self.environment, kwargs)
if is_cross:
diff --git a/mesonbuild/mconf.py b/mesonbuild/mconf.py
index a7120a8..61bb74b 100644
--- a/mesonbuild/mconf.py
+++ b/mesonbuild/mconf.py
@@ -107,7 +107,7 @@ class Conf:
v = o.value
c = o.choices
if isinstance(o, coredata.UserUmaskOption):
- v = format(v, '04o')
+ v = v if isinstance(v, str) else format(v, '04o')
arr.append({'name': k, 'descr': d, 'value': v, 'choices': c})
self.print_aligned(arr)
diff --git a/mesonbuild/minstall.py b/mesonbuild/minstall.py
index 4cdd3c6..74a8497 100644
--- a/mesonbuild/minstall.py
+++ b/mesonbuild/minstall.py
@@ -106,7 +106,7 @@ def set_chmod(path, mode, dir_fd=None, follow_symlinks=True):
os.chmod(path, mode, dir_fd=dir_fd)
def sanitize_permissions(path, umask):
- if umask is None:
+ if umask == 'preserve':
return
new_perms = 0o777 if is_executable(path, follow_symlinks=False) else 0o666
new_perms &= ~umask
@@ -332,7 +332,7 @@ class Installer:
d.destdir = os.environ.get('DESTDIR', '')
d.fullprefix = destdir_join(d.destdir, d.prefix)
- if d.install_umask is not None:
+ if d.install_umask != 'preserve':
os.umask(d.install_umask)
self.did_install_something = False
diff --git a/test cases/common/19 includedir/src/meson.build b/test cases/common/19 includedir/src/meson.build
index 20d9db1..30d2e0c 100644
--- a/test cases/common/19 includedir/src/meson.build
+++ b/test cases/common/19 includedir/src/meson.build
@@ -1,5 +1,5 @@
exe = executable('prog', 'prog.c', 'func.c', include_directories : inc)
test('inc test', exe)
-exe2 = executable('prog2', 'prog.c', 'func.c', include_directories : '../include')
+exe2 = executable('prog2', 'prog.c', 'func.c', include_directories : [['../include']])
test('inc test 2', exe2)
diff --git a/test cases/common/84 declare dep/entity/meson.build b/test cases/common/84 declare dep/entity/meson.build
index 5feb1b9..469ecd3 100644
--- a/test cases/common/84 declare dep/entity/meson.build
+++ b/test cases/common/84 declare dep/entity/meson.build
@@ -1,7 +1,7 @@
entity_lib = static_library('entity', 'entity1.c')
entity_dep = declare_dependency(link_with : [[entity_lib]],
- include_directories : '.',
+ include_directories : [['.']],
sources : 'entity2.c',
compile_args : ['-DUSING_ENT=1'],
version : '1.2.3',
diff --git a/tools/cmake2meson.py b/tools/cmake2meson.py
index 5fe433c..2c974fa 100755
--- a/tools/cmake2meson.py
+++ b/tools/cmake2meson.py
@@ -200,7 +200,7 @@ class Converter:
libcmd = 'static_library'
args = [t.args[0]] + t.args[2:]
else:
- libcmd = 'static_library'
+ libcmd = 'library'
args = t.args
line = '%s_lib = %s(%s)' % (t.args[0].value, libcmd, self.convert_args(args, False))
elif t.name == 'add_test':
@@ -223,7 +223,7 @@ class Converter:
l = 'cpp'
args.append(l)
args = ["'%s'" % i for i in args]
- line = 'project(' + ', '.join(args) + ')'
+ line = 'project(' + ', '.join(args) + ", default_options : ['default_library=static'])"
elif t.name == 'set':
varname = t.args[0].value.lower()
line = '%s = %s\n' % (varname, self.convert_args(t.args[1:]))