2012-11-20 45 views
3

我正在將一個過時的npm包從WAF遷移到GYP,但有一些問題讓一切正常。它運行WScript的,這似乎包括第三方庫:從WAF遷移到GYP - 包括庫在內的麻煩

import Options 
from os import unlink, symlink, popen, sys 
from os.path import exists 

srcdir = '.' 
blddir = 'build' 
VERSION = '0.0.2' 

def set_options(opt): 
    opt.tool_options('compiler_cxx') 

def configure(conf): 
    conf.check_tool('compiler_cxx') 
    conf.check_tool('node_addon') 

    print(sys.platform) 
    if sys.platform == 'darwin': 
     conf.check_tool('osx') 
     tc_framework = 'TelldusCore' 
     conf.env.append_value("FRAMEWORK_TC", tc_framework) 
     tc_frameworkpath = '/Library/Frameworks/TelldusCore.framework/' 
     conf.env.append_value("FRAMEWORKPATH_TC", tc_frameworkpath) 
     tc_lib = tc_frameworkpath + 'Headers/' 
     conf.env.append_value("CPPPATH_TC", tc_lib) 
    elif sys.platform == 'linux2': 
     conf.env.LIB_TC = 'telldus-core' 
     #conf.env.LIBPATH_TC = ['/usr/lib'] 
     #conf.env.CCFLAGS_TC = ['-O0'] 
     conf.env.CCDEFINES_TC = ['TC'] 
     #conf.env.LINKFLAGS_TC = ['-g'] 
    else: 
     raise ValueError("Dose not support: %r" % sys.platform) 

def build(bld): 
    obj = bld.new_task_gen('cxx', 'shlib', 'node_addon') 
    obj.target = 'telldus' 
    obj.source = 'telldus.cc' 
    obj.uselib = "TC" 

現在我試圖將其轉換爲一個binding.gyp腳本,但不知道如何爲包括庫:

{ 
    "targets": [ 
    { 
    "target_name": "tellduscorejs2", 
    "sources": [ "tellduscorejs2.cpp" ], 
    "conditions": [ 
     ['OS=="mac"', { 
      'defines': [ 
       'FRAMEWORK_TC=TelldusCore', 
       'FRAMEWORKPATH_TC="/Library/Frameworks/TelldusCore.framework/"', 
       'CPPPATH_TC="/Library/Frameworks/TelldusCore.framework/Headers/"' 
      ] 
     }], 
     ['OS=="linux"', { 
      'defines': [ 
       'LIB_TC=telldus-core', 
       'CCDEFINES_TC=TC' 
      ] 
     }] 
    ], 
    'link_settings': { 
     'libraries': [ 
      ??? 
     ], 
    }, 
    } 
    ] 
} 

如果任何人都可以指出我是否在正確的路線上,或者需要改變以包括圖書館,那麼我們將不勝感激!

回答