diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a03cdd69..551890c4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ project adheres to [Semantic Versioning](http://semver.org/). * Clean up inf/nan macros and slightly speed up argument checking. ### Added * Added `deregisterAllFonts` method to free up memory and reduce font conflicts. +* Added prebuild configuration for Windows ARM64 ### Fixed * Support Apple M1 Homebrew install that puts canvas install library files in `/opt/homebrew/lib` diff --git a/prebuild/Windows-arm64/binding.gyp b/prebuild/Windows-arm64/binding.gyp new file mode 100644 index 000000000..745ee14b1 --- /dev/null +++ b/prebuild/Windows-arm64/binding.gyp @@ -0,0 +1,80 @@ +{ + 'targets': [ + { + 'target_name': 'canvas', + 'sources': [ + 'src/backend/Backend.cc', + 'src/backend/ImageBackend.cc', + 'src/backend/PdfBackend.cc', + 'src/backend/SvgBackend.cc', + 'src/bmp/BMPParser.cc', + 'src/Backends.cc', + 'src/Canvas.cc', + 'src/CanvasGradient.cc', + 'src/CanvasPattern.cc', + 'src/CanvasRenderingContext2d.cc', + 'src/closure.cc', + 'src/color.cc', + 'src/Image.cc', + 'src/ImageData.cc', + 'src/init.cc', + 'src/register_font.cc' + ], + 'defines': [ + 'HAVE_GIF', + 'HAVE_JPEG', + 'HAVE_RSVG', + 'HAVE_BOOLEAN', # or jmorecfg.h tries to define it + '_USE_MATH_DEFINES' # for M_PI + ], + 'libraries': [ + 'D:/a/_temp/msys/msys64/clangarm64/lib/libcairo-2.lib', + 'D:/a/_temp/msys/msys64/clangarm64/lib/libpng16-16.lib', + 'D:/a/_temp/msys/msys64/clangarm64/lib/libjpeg-8.lib', + 'D:/a/_temp/msys/msys64/clangarm64/lib/libpango-1.0-0.lib', + 'D:/a/_temp/msys/msys64/clangarm64/lib/libpangocairo-1.0-0.lib', + 'D:/a/_temp/msys/msys64/clangarm64/lib/libgobject-2.0-0.lib', + 'D:/a/_temp/msys/msys64/clangarm64/lib/libglib-2.0-0.lib', + 'D:/a/_temp/msys/msys64/clangarm64/lib/libturbojpeg.lib', + 'D:/a/_temp/msys/msys64/clangarm64/lib/libgif-7.lib', + 'D:/a/_temp/msys/msys64/clangarm64/lib/libfreetype-6.lib', + 'D:/a/_temp/msys/msys64/clangarm64/lib/librsvg-2-2.lib' + ], + 'include_dirs': [ + ' /dev/null 2>&1 || { + echo "could not find lib$lib.dll, have to skip "; + continue; + } + + /clangarm64/bin/dlltool -d lib$lib.def -l /clangarm64/lib/lib$lib.lib > /dev/null 2>&1 || { + echo "could not create dll for lib$lib.dll"; + continue; + } + + echo "created lib$lib.lib from lib$lib.dll"; + + rm lib$lib.def +done