Extend test_rc_depends_files test case

Extend test_rc_depends_files test case to also cover depfile generation for
a resource file generated by a custom_target
This commit is contained in:
Jon Turney 2018-05-19 13:39:06 +01:00 committed by Nirbheek Chauhan
parent 7a15214a69
commit ac480c1857
4 changed files with 23 additions and 5 deletions

View File

@ -2393,19 +2393,35 @@ class WindowsTests(BasePlatformTests):
def test_rc_depends_files(self):
testdir = os.path.join(self.platform_test_dir, '5 resources')
# resource compiler depfile generation is not yet implemented for msvc
env = Environment(testdir, self.builddir, get_fake_options(self.prefix), [])
depfile_works = env.detect_c_compiler(False).get_id() != 'msvc'
self.init(testdir)
self.build()
# Immediately rebuilding should not do anything
self.assertBuildIsNoop()
# Test compile_resources(depend_file:)
# Changing mtime of sample.ico should rebuild prog
self.utime(os.path.join(testdir, 'res', 'sample.ico'))
self.assertRebuiltTarget('prog')
# Test depfile generation by compile_resources
# Changing mtime of resource.h should rebuild myres.rc and then prog
# (resource compiler depfile generation is not yet implemented for msvc)
env = Environment(testdir, self.builddir, get_fake_options(self.prefix), [])
if env.detect_c_compiler(False).get_id() != 'msvc':
if depfile_works:
self.utime(os.path.join(testdir, 'inc', 'resource', 'resource.h'))
self.assertRebuiltTarget('prog')
self.wipe()
if depfile_works:
testdir = os.path.join(self.platform_test_dir, '13 resources with custom targets')
self.init(testdir)
self.build()
# Immediately rebuilding should not do anything
self.assertBuildIsNoop()
# Changing mtime of resource.h should rebuild myres_1.rc and then prog_1
self.utime(os.path.join(testdir, 'res', 'resource.h'))
self.assertRebuiltTarget('prog_1')
class LinuxlikeTests(BasePlatformTests):

View File

@ -10,9 +10,10 @@ foreach id : [1, 2]
output : 'myres_@0@.rc'.format(id),
command : [rc_writer, '@INPUT@', '@OUTPUT@', files('sample.ico')],
install : false,
build_always : true)
build_always : false)
endforeach
rc_sources += files('myres_static.rc')
res = win.compile_resources(rc_sources)
res = win.compile_resources(rc_sources,
include_directories: include_directories('.'))

View File

@ -1,3 +1,4 @@
#include<windows.h>
#include<resource.h>
1 ICON "{icon}"