From f2eb71ca2086a77a2ebd8d08afb564991ef00b43 Mon Sep 17 00:00:00 2001 From: mcneish1 <35310375+mcneish1@users.noreply.github.com> Date: Fri, 18 May 2018 15:30:25 -0700 Subject: 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 --- .../builtin/packages/libjpeg-turbo/package.py | 4 +++ var/spack/repos/builtin/packages/opencv/package.py | 39 +++++++++++----------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py index a9e7e235ea..543e87d81a 100644 --- a/var/spack/repos/builtin/packages/libjpeg-turbo/package.py +++ b/var/spack/repos/builtin/packages/libjpeg-turbo/package.py @@ -49,6 +49,10 @@ class LibjpegTurbo(Package): depends_on("nasm", type='build') 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') def install(self, spec, prefix): configure('--prefix=%s' % prefix) diff --git a/var/spack/repos/builtin/packages/opencv/package.py b/var/spack/repos/builtin/packages/opencv/package.py index cfda9f0786..5821380827 100644 --- a/var/spack/repos/builtin/packages/opencv/package.py +++ b/var/spack/repos/builtin/packages/opencv/package.py @@ -219,50 +219,49 @@ class Opencv(CMakePackage): zlib = spec['zlib'] args.extend([ '-DZLIB_LIBRARY_{0}:FILEPATH={1}'.format(( - 'DEBUG' if '+debug' in spec else 'RELEASE'), - join_path(zlib.prefix.lib, - 'libz.{0}'.format(dso_suffix))), - '-DZLIB_INCLUDE_DIR:PATH={0}'.format(zlib.prefix.include) + 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'), + zlib.libs[0]), + '-DZLIB_INCLUDE_DIR:PATH={0}'.format( + zlib.headers.directories[0]) ]) if '+png' in spec: libpng = spec['libpng'] args.extend([ '-DPNG_LIBRARY_{0}:FILEPATH={1}'.format(( - 'DEBUG' if '+debug' in spec else 'RELEASE'), - join_path(libpng.prefix.lib, - 'libpng.{0}'.format(dso_suffix))), - '-DPNG_INCLUDE_DIR:PATH={0}'.format(libpng.prefix.include) + 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'), + libpng.libs[0]), + '-DPNG_INCLUDE_DIR:PATH={0}'.format( + libpng.headers.directories[0]) ]) if '+jpeg' in spec: libjpeg = spec['jpeg'] args.extend([ '-DBUILD_JPEG:BOOL=OFF', - '-DJPEG_LIBRARY:FILEPATH={0}'.format( - join_path(libjpeg.prefix.lib, - 'libjpeg.{0}'.format(dso_suffix))), - '-DJPEG_INCLUDE_DIR:PATH={0}'.format(libjpeg.prefix.include) + '-DJPEG_LIBRARY:FILEPATH={0}'.format(libjpeg.libs[0]), + '-DJPEG_INCLUDE_DIR:PATH={0}'.format( + libjpeg.headers.directories[0]) ]) if '+tiff' in spec: libtiff = spec['libtiff'] args.extend([ '-DTIFF_LIBRARY_{0}:FILEPATH={1}'.format(( - 'DEBUG' if '+debug' in spec else 'RELEASE'), - join_path(libtiff.prefix.lib, - 'libtiff.{0}'.format(dso_suffix))), - '-DTIFF_INCLUDE_DIR:PATH={0}'.format(libtiff.prefix.include) + 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'), + libtiff.libs[0]), + '-DTIFF_INCLUDE_DIR:PATH={0}'.format( + libtiff.headers.directories[0]) ]) if '+jasper' in spec: jasper = spec['jasper'] args.extend([ '-DJASPER_LIBRARY_{0}:FILEPATH={1}'.format(( - 'DEBUG' if '+debug' in spec else 'RELEASE'), - join_path(jasper.prefix.lib, - 'libjasper.{0}'.format(dso_suffix))), - '-DJASPER_INCLUDE_DIR:PATH={0}'.format(jasper.prefix.include) + 'DEBUG' if 'build_type=Debug' in spec else 'RELEASE'), + jasper.libs[0]), + '-DJASPER_INCLUDE_DIR:PATH={0}'.format( + jasper.headers.directories[0]) ]) # GUI -- cgit v1.2.3-60-g2f50