Fix libjpeg library finding and opencv build with nonstandard library directories (#8160) (#8179)

* Use libs[0] and headers.directories[0] instead of hardcoded paths in opencv dependencies

* Fix library finding in libjpeg-turbo

* Use build_type=Debug instead of +debug to determine build_type
This commit is contained in:
mcneish1 2018-05-18 15:30:25 -07:00 committed by becker33
parent 54201e3c02
commit f2eb71ca20
2 changed files with 23 additions and 20 deletions

View File

@ -49,6 +49,10 @@ class LibjpegTurbo(Package):
depends_on("nasm", type='build') depends_on("nasm", type='build')
depends_on('cmake', type='build', when="@1.5.90:") depends_on('cmake', type='build', when="@1.5.90:")
@property
def libs(self):
return find_libraries("libjpeg*", root=self.prefix, recursive=True)
@when('@:1.5.3') @when('@:1.5.3')
def install(self, spec, prefix): def install(self, spec, prefix):
configure('--prefix=%s' % prefix) configure('--prefix=%s' % prefix)

View File

@ -219,50 +219,49 @@ def cmake_args(self):
zlib = spec['zlib'] zlib = spec['zlib']
args.extend([ args.extend([
'-DZLIB_LIBRARY_{0}:FILEPATH={1}'.format(( '-DZLIB_LIBRARY_{0}:FILEPATH={1}'.format((
'DEBUG' if '+debug' in spec else 'RELEASE'), 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'),
join_path(zlib.prefix.lib, zlib.libs[0]),
'libz.{0}'.format(dso_suffix))), '-DZLIB_INCLUDE_DIR:PATH={0}'.format(
'-DZLIB_INCLUDE_DIR:PATH={0}'.format(zlib.prefix.include) zlib.headers.directories[0])
]) ])
if '+png' in spec: if '+png' in spec:
libpng = spec['libpng'] libpng = spec['libpng']
args.extend([ args.extend([
'-DPNG_LIBRARY_{0}:FILEPATH={1}'.format(( '-DPNG_LIBRARY_{0}:FILEPATH={1}'.format((
'DEBUG' if '+debug' in spec else 'RELEASE'), 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'),
join_path(libpng.prefix.lib, libpng.libs[0]),
'libpng.{0}'.format(dso_suffix))), '-DPNG_INCLUDE_DIR:PATH={0}'.format(
'-DPNG_INCLUDE_DIR:PATH={0}'.format(libpng.prefix.include) libpng.headers.directories[0])
]) ])
if '+jpeg' in spec: if '+jpeg' in spec:
libjpeg = spec['jpeg'] libjpeg = spec['jpeg']
args.extend([ args.extend([
'-DBUILD_JPEG:BOOL=OFF', '-DBUILD_JPEG:BOOL=OFF',
'-DJPEG_LIBRARY:FILEPATH={0}'.format( '-DJPEG_LIBRARY:FILEPATH={0}'.format(libjpeg.libs[0]),
join_path(libjpeg.prefix.lib, '-DJPEG_INCLUDE_DIR:PATH={0}'.format(
'libjpeg.{0}'.format(dso_suffix))), libjpeg.headers.directories[0])
'-DJPEG_INCLUDE_DIR:PATH={0}'.format(libjpeg.prefix.include)
]) ])
if '+tiff' in spec: if '+tiff' in spec:
libtiff = spec['libtiff'] libtiff = spec['libtiff']
args.extend([ args.extend([
'-DTIFF_LIBRARY_{0}:FILEPATH={1}'.format(( '-DTIFF_LIBRARY_{0}:FILEPATH={1}'.format((
'DEBUG' if '+debug' in spec else 'RELEASE'), 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'),
join_path(libtiff.prefix.lib, libtiff.libs[0]),
'libtiff.{0}'.format(dso_suffix))), '-DTIFF_INCLUDE_DIR:PATH={0}'.format(
'-DTIFF_INCLUDE_DIR:PATH={0}'.format(libtiff.prefix.include) libtiff.headers.directories[0])
]) ])
if '+jasper' in spec: if '+jasper' in spec:
jasper = spec['jasper'] jasper = spec['jasper']
args.extend([ args.extend([
'-DJASPER_LIBRARY_{0}:FILEPATH={1}'.format(( '-DJASPER_LIBRARY_{0}:FILEPATH={1}'.format((
'DEBUG' if '+debug' in spec else 'RELEASE'), 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'),
join_path(jasper.prefix.lib, jasper.libs[0]),
'libjasper.{0}'.format(dso_suffix))), '-DJASPER_INCLUDE_DIR:PATH={0}'.format(
'-DJASPER_INCLUDE_DIR:PATH={0}'.format(jasper.prefix.include) jasper.headers.directories[0])
]) ])
# GUI # GUI