diff --git a/direct/src/dist/FreezeTool.py b/direct/src/dist/FreezeTool.py index 13c77bc7fc..fa00282cc8 100644 --- a/direct/src/dist/FreezeTool.py +++ b/direct/src/dist/FreezeTool.py @@ -1207,13 +1207,16 @@ class Freezer: except ImportError: pass else: - self.__loadModule(self.ModuleDef(modname, implicit = True)) + try: + self.__loadModule(self.ModuleDef(modname, implicit = True)) + except ImportError: + pass # Special case for sysconfig, which depends on a platform-specific # sysconfigdata module on POSIX systems. missing = [] if 'sysconfig' in self.mf.modules and \ - ('linux' in self.platform or 'mac' in self.platform): + ('linux' in self.platform or 'mac' in self.platform or 'emscripten' in self.platform): modname = '_sysconfigdata' if sys.version_info >= (3, 6): modname += '_' @@ -1225,6 +1228,12 @@ class Freezer: modname += '_linux_' + arch + '-linux-gnu' elif 'mac' in self.platform: modname += '_darwin_darwin' + elif 'emscripten' in self.platform: + if '_' in self.platform: + arch = self.platform.split('_', 1)[1] + else: + arch = 'wasm32' + modname += '_emscripten_' + arch + '-emscripten' try: self.__loadModule(self.ModuleDef(modname, implicit=True)) diff --git a/panda/src/pnmimagetypes/pnmFileTypePNG.cxx b/panda/src/pnmimagetypes/pnmFileTypePNG.cxx index 5f43ddd6ff..afb7dc1de2 100644 --- a/panda/src/pnmimagetypes/pnmFileTypePNG.cxx +++ b/panda/src/pnmimagetypes/pnmFileTypePNG.cxx @@ -451,8 +451,8 @@ png_read_data(png_structp png_ptr, png_bytep data, png_size_t length) { * This is our own warning handler. It is called by the png library to issue * a warning message. */ -void PNMFileTypePNG::Reader:: -png_warning(png_structp, png_const_charp warning_msg) { +void (PNMFileTypePNG::Reader:: +png_warning)(png_structp, png_const_charp warning_msg) { pnmimage_png_cat.warning() << warning_msg << "\n"; } @@ -461,8 +461,8 @@ png_warning(png_structp, png_const_charp warning_msg) { * This is our own error handler. It is called by the png library to issue a * fatal error message. */ -void PNMFileTypePNG::Reader:: -png_error(png_structp png_ptr, png_const_charp error_msg) { +void (PNMFileTypePNG::Reader:: +png_error)(png_structp png_ptr, png_const_charp error_msg) { pnmimage_png_cat.error() << error_msg << "\n"; @@ -921,8 +921,8 @@ png_flush_data(png_structp png_ptr) { * This is our own warning handler. It is called by the png library to issue * a warning message. */ -void PNMFileTypePNG::Writer:: -png_warning(png_structp, png_const_charp warning_msg) { +void (PNMFileTypePNG::Writer:: +png_warning)(png_structp, png_const_charp warning_msg) { pnmimage_png_cat.warning() << warning_msg << "\n"; } @@ -931,8 +931,8 @@ png_warning(png_structp, png_const_charp warning_msg) { * This is our own error handler. It is called by the png library to issue a * fatal error message. */ -void PNMFileTypePNG::Writer:: -png_error(png_structp png_ptr, png_const_charp error_msg) { +void (PNMFileTypePNG::Writer:: +png_error)(png_structp png_ptr, png_const_charp error_msg) { pnmimage_png_cat.error() << error_msg << "\n"; diff --git a/panda/src/pnmimagetypes/pnmFileTypePNG.h b/panda/src/pnmimagetypes/pnmFileTypePNG.h index 535a5b2f43..8ed2b817e4 100644 --- a/panda/src/pnmimagetypes/pnmFileTypePNG.h +++ b/panda/src/pnmimagetypes/pnmFileTypePNG.h @@ -58,8 +58,8 @@ public: static void png_read_data(png_structp png_ptr, png_bytep data, png_size_t length); - static void png_error(png_structp png_ptr, png_const_charp error_msg); - static void png_warning(png_structp png_ptr, png_const_charp warning_msg); + static void (png_error)(png_structp png_ptr, png_const_charp error_msg); + static void (png_warning)(png_structp png_ptr, png_const_charp warning_msg); png_structp _png; png_infop _info; @@ -84,8 +84,8 @@ public: png_size_t length); static void png_flush_data(png_structp png_ptr); - static void png_error(png_structp png_ptr, png_const_charp error_msg); - static void png_warning(png_structp png_ptr, png_const_charp warning_msg); + static void (png_error)(png_structp png_ptr, png_const_charp error_msg); + static void (png_warning)(png_structp png_ptr, png_const_charp warning_msg); png_structp _png; png_infop _info;