From 3951a191a34549777336074bda1986ec994b5171 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 7 Jun 2016 14:06:53 +0200 Subject: [PATCH] Fix compile issues with ffmpeg on FreeBSD and Mac OS X --- makepanda/makepanda.py | 6 +++--- makepanda/makepandacore.py | 15 ++++++--------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 1f21787087..14a2adbb73 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -743,9 +743,9 @@ if (COMPILER=="GCC"): SmartPkgEnable("EIGEN", "eigen3", (), ("Eigen/Dense",), target_pkg = 'ALWAYS') SmartPkgEnable("ARTOOLKIT", "", ("AR"), "AR/ar.h") SmartPkgEnable("FCOLLADA", "", ChooseLib(fcollada_libs, "FCOLLADA"), ("FCollada", "FCollada/FCollada.h")) - SmartPkgEnable("FFMPEG", ffmpeg_libs, ffmpeg_libs, ffmpeg_libs) - SmartPkgEnable("SWSCALE", "libswscale", "libswscale", ("libswscale", "libswscale/swscale.h"), target_pkg = "FFMPEG") - SmartPkgEnable("SWRESAMPLE","libswresample", "libswresample", ("libswresample", "libswresample/swresample.h"), target_pkg = "FFMPEG") + SmartPkgEnable("FFMPEG", ffmpeg_libs, ffmpeg_libs, ("libavformat/avformat.h", "libavcodec/avcodec.h", "libavutil/avutil.h")) + SmartPkgEnable("SWSCALE", "libswscale", "libswscale", ("libswscale/swscale.h"), target_pkg = "FFMPEG", thirdparty_dir = "ffmpeg") + SmartPkgEnable("SWRESAMPLE","libswresample", "libswresample", ("libswresample/swresample.h"), target_pkg = "FFMPEG", thirdparty_dir = "ffmpeg") SmartPkgEnable("FFTW", "", ("rfftw", "fftw"), ("fftw.h", "rfftw.h")) SmartPkgEnable("FMODEX", "", ("fmodex"), ("fmodex", "fmodex/fmod.h")) SmartPkgEnable("FREETYPE", "freetype2", ("freetype"), ("freetype2", "freetype2/freetype/freetype.h")) diff --git a/makepanda/makepandacore.py b/makepanda/makepandacore.py index 61cab5f220..974e59b186 100644 --- a/makepanda/makepandacore.py +++ b/makepanda/makepandacore.py @@ -1445,7 +1445,7 @@ def ChooseLib(libs, thirdparty=None): print(ColorText("cyan", "Couldn't find any of the libraries " + ", ".join(libs))) return libs[0] -def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, framework = None, target_pkg = None, tool = "pkg-config"): +def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, framework = None, target_pkg = None, tool = "pkg-config", thirdparty_dir = None): global PKG_LIST_ALL if (pkg in PkgListGet() and PkgSkip(pkg)): return @@ -1475,15 +1475,12 @@ def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, custom_loc = PkgHasCustomLocation(pkg) - if pkg.lower() == "swscale" and os.path.isfile(GetThirdpartyDir() + "ffmpeg/include/libswscale/swscale.h"): - # Let it be handled by the ffmpeg package - LibName(target_pkg, "-lswscale") - return - if pkg.lower() == "swresample" and os.path.isfile(GetThirdpartyDir() + "ffmpeg/include/libswresample/swresample.h"): - LibName(target_pkg, "-lswresample") - return + # Determine the location of the thirdparty directory. + if not thirdparty_dir: + thirdparty_dir = pkg.lower() + pkg_dir = os.path.join(GetThirdpartyDir(), thirdparty_dir) - pkg_dir = os.path.join(GetThirdpartyDir(), pkg.lower()) + # First check if the library can be found in the thirdparty directory. if not custom_loc and os.path.isdir(pkg_dir): if framework and os.path.isdir(os.path.join(pkg_dir, framework + ".framework")): FrameworkDirectory(target_pkg, pkg_dir)