diff options
| author | Xavier Claessens <xavier.claessens@collabora.com> | 2019-10-01 20:37:35 -0400 |
|---|---|---|
| committer | Daniel Mensinger <daniel@mensinger-ka.de> | 2019-11-27 21:12:55 +0100 |
| commit | daeee32d9bf6a136fc3de6dade065a918290b429 (patch) | |
| tree | e7357aa4c6b5f89b82fe1034b10f95c50575b36b /mesonbuild/cmake/data | |
| parent | 6844ad374e0a333434782927e099b16ab1b2dfd0 (diff) | |
| download | meson-daeee32d9bf6a136fc3de6dade065a918290b429.tar.gz | |
cmake: Add support for add_custom_target() with a command
The command could have no output, in which case we create a dummy one.
Diffstat (limited to 'mesonbuild/cmake/data')
| -rwxr-xr-x | mesonbuild/cmake/data/run_ctgt.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/mesonbuild/cmake/data/run_ctgt.py b/mesonbuild/cmake/data/run_ctgt.py index d4e325922..4e9428335 100755 --- a/mesonbuild/cmake/data/run_ctgt.py +++ b/mesonbuild/cmake/data/run_ctgt.py @@ -13,13 +13,16 @@ SEPARATOR = ';;;' parser = argparse.ArgumentParser(description='Wrapper for add_custom_command') parser.add_argument('-d', '--directory', type=str, metavar='D', required=True, help='Working directory to cwd to') parser.add_argument('-o', '--outputs', nargs='+', metavar='O', required=True, help='Expected output files') -parser.add_argument('-O', '--original-outputs', nargs='+', metavar='O', required=True, help='Output files expected by CMake') -parser.add_argument('commands', nargs=argparse.REMAINDER, help='A "{}" separated list of commands'.format(SEPARATOR)) +parser.add_argument('-O', '--original-outputs', nargs='*', metavar='O', default=[], help='Output files expected by CMake') +parser.add_argument('commands', nargs=argparse.REMAINDER, help='A "{}" seperated list of commands'.format(SEPERATOR)) # Parse args = parser.parse_args() -if len(args.outputs) != len(args.original_outputs): +dummy_target = None +if len(args.outputs) == 1 and len(args.original_outputs) == 0: + dummy_target = args.outputs[0] +elif len(args.outputs) != len(args.original_outputs): print('Length of output list and original output list differ') sys.exit(1) @@ -39,6 +42,11 @@ for i in commands: subprocess.run(i, cwd=args.directory) +if dummy_target: + with open(dummy_target, 'a'): + os.utime(dummy_target, None) + exit(0) + # Copy outputs zipped_outputs = zip(args.outputs, args.original_outputs) for expected, generated in zipped_outputs: |
