123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- {
- 'conditions': [
- ['OS=="win"', {
- 'variables': {
- 'GTK_Root%': 'C:/GTK', # Set the location of GTK all-in-one bundle
- 'with_jpeg%': 'false',
- 'with_gif%': 'false',
- 'with_rsvg%': 'false',
- 'variables': { # Nest jpeg_root to evaluate it before with_jpeg
- 'jpeg_root%': '<!(node ./util/win_jpeg_lookup)'
- },
- 'jpeg_root%': '<(jpeg_root)', # Take value of nested variable
- 'conditions': [
- ['jpeg_root==""', {
- 'with_jpeg%': 'false'
- }, {
- 'with_jpeg%': 'true'
- }]
- ]
- }
- }, { # 'OS!="win"'
- 'variables': {
- 'with_jpeg%': '<!(node ./util/has_lib.js jpeg)',
- 'with_gif%': '<!(node ./util/has_lib.js gif)',
- 'with_rsvg%': '<!(node ./util/has_lib.js rsvg)'
- }
- }]
- ],
- 'targets': [
- {
- 'target_name': 'canvas-postbuild',
- 'dependencies': ['canvas'],
- 'conditions': [
- ['OS=="win"', {
- 'copies': [{
- 'destination': '<(PRODUCT_DIR)',
- 'files': [
- '<(GTK_Root)/bin/zlib1.dll',
- '<(GTK_Root)/bin/libintl-8.dll',
- '<(GTK_Root)/bin/libpng14-14.dll',
- '<(GTK_Root)/bin/libpangocairo-1.0-0.dll',
- '<(GTK_Root)/bin/libpango-1.0-0.dll',
- '<(GTK_Root)/bin/libpangoft2-1.0-0.dll',
- '<(GTK_Root)/bin/libpangowin32-1.0-0.dll',
- '<(GTK_Root)/bin/libcairo-2.dll',
- '<(GTK_Root)/bin/libfontconfig-1.dll',
- '<(GTK_Root)/bin/libfreetype-6.dll',
- '<(GTK_Root)/bin/libglib-2.0-0.dll',
- '<(GTK_Root)/bin/libgobject-2.0-0.dll',
- '<(GTK_Root)/bin/libgmodule-2.0-0.dll',
- '<(GTK_Root)/bin/libgthread-2.0-0.dll',
- '<(GTK_Root)/bin/libexpat-1.dll'
- ]
- }]
- }]
- ]
- },
- {
- 'target_name': 'canvas',
- 'include_dirs': ["<!(node -e \"require('nan')\")"],
- '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'
- ],
- 'conditions': [
- ['OS=="win"', {
- 'libraries': [
- '-l<(GTK_Root)/lib/cairo.lib',
- '-l<(GTK_Root)/lib/libpng.lib',
- '-l<(GTK_Root)/lib/pangocairo-1.0.lib',
- '-l<(GTK_Root)/lib/pango-1.0.lib',
- '-l<(GTK_Root)/lib/freetype.lib',
- '-l<(GTK_Root)/lib/glib-2.0.lib',
- '-l<(GTK_Root)/lib/gobject-2.0.lib'
- ],
- 'include_dirs': [
- '<(GTK_Root)/include',
- '<(GTK_Root)/include/cairo',
- '<(GTK_Root)/include/pango-1.0',
- '<(GTK_Root)/include/glib-2.0',
- '<(GTK_Root)/include/freetype2',
- '<(GTK_Root)/lib/glib-2.0/include'
- ],
- 'defines': [
- '_USE_MATH_DEFINES', # for M_PI
- 'NOMINMAX' # allow std::min/max to work
- ],
- 'configurations': {
- 'Debug': {
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'WarningLevel': 4,
- 'ExceptionHandling': 1,
- 'DisableSpecificWarnings': [
- 4100, 4611
- ]
- }
- }
- },
- 'Release': {
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'WarningLevel': 4,
- 'ExceptionHandling': 1,
- 'DisableSpecificWarnings': [
- 4100, 4611
- ]
- }
- }
- }
- }
- }, { # 'OS!="win"'
- 'libraries': [
- '<!@(pkg-config pixman-1 --libs)',
- '<!@(pkg-config cairo --libs)',
- '<!@(pkg-config libpng --libs)',
- '<!@(pkg-config pangocairo --libs)',
- '<!@(pkg-config freetype2 --libs)'
- ],
- 'include_dirs': [
- '<!@(pkg-config cairo --cflags-only-I | sed s/-I//g)',
- '<!@(pkg-config libpng --cflags-only-I | sed s/-I//g)',
- '<!@(pkg-config pangocairo --cflags-only-I | sed s/-I//g)',
- '<!@(pkg-config freetype2 --cflags-only-I | sed s/-I//g)'
- ],
- 'cflags': ['-Wno-cast-function-type'],
- 'cflags!': ['-fno-exceptions'],
- 'cflags_cc!': ['-fno-exceptions']
- }],
- ['OS=="mac"', {
- 'xcode_settings': {
- 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES'
- }
- }],
- ['with_jpeg=="true"', {
- 'defines': [
- 'HAVE_JPEG'
- ],
- 'conditions': [
- ['OS=="win"', {
- 'copies': [{
- 'destination': '<(PRODUCT_DIR)',
- 'files': [
- '<(jpeg_root)/bin/jpeg62.dll',
- ]
- }],
- 'include_dirs': [
- '<(jpeg_root)/include'
- ],
- 'libraries': [
- '-l<(jpeg_root)/lib/jpeg.lib',
- ]
- }, {
- 'include_dirs': [
- '<!@(pkg-config libjpeg --cflags-only-I | sed s/-I//g)'
- ],
- 'libraries': [
- '<!@(pkg-config libjpeg --libs)'
- ]
- }]
- ]
- }],
- ['with_gif=="true"', {
- 'defines': [
- 'HAVE_GIF'
- ],
- 'conditions': [
- ['OS=="win"', {
- 'libraries': [
- '-l<(GTK_Root)/lib/gif.lib'
- ]
- }, {
- 'include_dirs': [
- '/opt/homebrew/include'
- ],
- 'libraries': [
- '-L/opt/homebrew/lib',
- '-lgif'
- ]
- }]
- ]
- }],
- ['with_rsvg=="true"', {
- 'defines': [
- 'HAVE_RSVG'
- ],
- 'conditions': [
- ['OS=="win"', {
- 'copies': [{
- 'destination': '<(PRODUCT_DIR)',
- 'files': [
- '<(GTK_Root)/bin/librsvg-2-2.dll',
- '<(GTK_Root)/bin/libgdk_pixbuf-2.0-0.dll',
- '<(GTK_Root)/bin/libgio-2.0-0.dll',
- '<(GTK_Root)/bin/libcroco-0.6-3.dll',
- '<(GTK_Root)/bin/libgsf-1-114.dll',
- '<(GTK_Root)/bin/libxml2-2.dll'
- ]
- }],
- 'libraries': [
- '-l<(GTK_Root)/lib/librsvg-2-2.lib'
- ]
- }, {
- 'include_dirs': [
- '<!@(pkg-config librsvg-2.0 --cflags-only-I | sed s/-I//g)'
- ],
- 'libraries': [
- '<!@(pkg-config librsvg-2.0 --libs)'
- ]
- }]
- ]
- }]
- ]
- }
- ]
- }
|