diff options
-rw-r--r-- | mesonbuild/coredata.py | 2 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 14 | ||||
-rw-r--r-- | mesonbuild/mconf.py | 2 | ||||
-rw-r--r-- | mesonbuild/minstall.py | 4 | ||||
-rw-r--r-- | test cases/common/19 includedir/src/meson.build | 2 | ||||
-rw-r--r-- | test cases/common/84 declare dep/entity/meson.build | 2 | ||||
-rwxr-xr-x | tools/cmake2meson.py | 4 |
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:])) |