project('custom target index source', 'c') # Test that using a custom target index as a sourcefile works correctly copy1 = find_program('copyfile.py') copy2 = find_program('copyfile2.py') step_1 = custom_target('step_1', input: ['code_source.c', files('header_source.h')], output: ['step_1.c', 'step_1.h'], command: [copy2, '@INPUT0@', '@OUTPUT0@', '@INPUT1@', '@OUTPUT1@'], build_by_default: false) # test custom target with a single CustomTargetIndex input step_2_c = custom_target('step_2_c', input: step_1[0], output: 'step_2.c', command: [copy1, '@INPUT0@', '@OUTPUT0@'], build_by_default: false) step_2_h = custom_target('step_2_h', input: step_1[1], output: 'step_2.h', command: [copy1, '@INPUT0@', '@OUTPUT0@'], build_by_default: false, ) # test custom target with multiple CustomTargetIndex inputs gen = custom_target('step_3', input: [step_2_c, step_2_h], output: ['gen.c', 'gen.h'], command: [copy2, '@INPUT0@', '@OUTPUT0@', '@INPUT1@', '@OUTPUT1@'], build_by_default: false) gen_c = gen[0] gen_h = gen[1] exe_separate = executable('exe_separate', ['main.c', gen_c, gen_h], build_by_default: false, install: false, ) exe_together = executable('exe_together', ['main.c', gen], build_by_default: false, install: false, ) # also cover passing custom target to tests as arguments test('exe_separate', exe_separate, args: ['unused1', 'unused2']) test('exe_together', exe_together, args: gen)