GTest and GMock changed their entire project layout on 1.8.0. Again. Fix it.

pull/1045/head
Jussi Pakkanen 8 years ago
parent b2a39dd06e
commit 918b8d098d
  1. 26
      mesonbuild/dependencies.py

@ -702,12 +702,7 @@ class GTestDependency(Dependency):
self.libname = 'libgtest.so' self.libname = 'libgtest.so'
self.libmain_name = 'libgtest_main.so' self.libmain_name = 'libgtest_main.so'
self.include_dir = '/usr/include' self.include_dir = '/usr/include'
self.src_include_dir = '/usr/src/gtest' self.src_dirs = ['/usr/src/gtest/src', '/usr/src/googletest/googletest/src']
self.src_dir = '/usr/src/gtest/src'
self.all_src = mesonlib.File.from_absolute_file(
os.path.join(self.src_dir, 'gtest-all.cc'))
self.main_src = mesonlib.File.from_absolute_file(
os.path.join(self.src_dir, 'gtest_main.cc'))
self.detect() self.detect()
def found(self): def found(self):
@ -730,7 +725,7 @@ class GTestDependency(Dependency):
self.link_args.append('-lgtest_main') self.link_args.append('-lgtest_main')
self.sources = [] self.sources = []
mlog.log('Dependency GTest found:', mlog.green('YES'), '(prebuilt)') mlog.log('Dependency GTest found:', mlog.green('YES'), '(prebuilt)')
elif os.path.exists(self.src_dir): elif self.detect_srcdir():
self.is_found = True self.is_found = True
self.compile_args = ['-I' + self.src_include_dir] self.compile_args = ['-I' + self.src_include_dir]
self.link_args = [] self.link_args = []
@ -744,6 +739,18 @@ class GTestDependency(Dependency):
self.is_found = False self.is_found = False
return self.is_found return self.is_found
def detect_srcdir(self):
for s in self.src_dirs:
if os.path.exists(s):
self.src_dir = s
self.all_src = mesonlib.File.from_absolute_file(
os.path.join(self.src_dir, 'gtest-all.cc'))
self.main_src = mesonlib.File.from_absolute_file(
os.path.join(self.src_dir, 'gtest_main.cc'))
self.src_include_dir = os.path.normpath(os.path.join(self.src_dir, '..'))
return True
return False
def get_compile_args(self): def get_compile_args(self):
arr = [] arr = []
if self.include_dir != '/usr/include': if self.include_dir != '/usr/include':
@ -781,12 +788,13 @@ class GMockDependency(Dependency):
mlog.log('Dependency GMock found:', mlog.green('YES'), '(prebuilt)') mlog.log('Dependency GMock found:', mlog.green('YES'), '(prebuilt)')
return return
for d in ['/usr/src/gmock/src', '/usr/src/gmock']: for d in ['/usr/src/googletest/googlemock/src', '/usr/src/gmock/src', '/usr/src/gmock']:
if os.path.exists(d): if os.path.exists(d):
self.is_found = True self.is_found = True
# Yes, we need both because there are multiple # Yes, we need both because there are multiple
# versions of gmock that do different things. # versions of gmock that do different things.
self.compile_args = ['-I/usr/src/gmock', '-I/usr/src/gmock/src'] d2 = os.path.normpath(os.path.join(d, '..'))
self.compile_args = ['-I' + d, '-I' + d2]
self.link_args = [] self.link_args = []
all_src = mesonlib.File.from_absolute_file(os.path.join(d, 'gmock-all.cc')) all_src = mesonlib.File.from_absolute_file(os.path.join(d, 'gmock-all.cc'))
main_src = mesonlib.File.from_absolute_file(os.path.join(d, 'gmock_main.cc')) main_src = mesonlib.File.from_absolute_file(os.path.join(d, 'gmock_main.cc'))

Loading…
Cancel
Save