binding.gyp: Как использовать раздел «копии» для копирования файлов в нескольких местах - PullRequest
0 голосов
/ 10 июля 2019

Я пишу код для загрузки c ++ dll из электрона.Я использую node-gyp.В моем файле binding.gyp я использую тег «копии», чтобы скопировать dll в папку Release.Однако я хочу скопировать еще несколько файлов для копирования в другое место.Я пытался сделать это методом проб и ударов, но безуспешно.Вот как выглядит мой binding.gyp:

{
    "targets": [{
            "conditions":[
            ["OS=='win'", {
                "copies":[{ 
                        'destination': './build/Release',
                        'files':[
                            '../../cl-fc-client-thirdparty/bugtrap/BugTrapU-x64.dll',
                            '../build/bin/msvc/Release64/cloudDrive2Lib.dll',
                            '../../cl-fc-client-thirdparty/openssl/1.0.2j/lib/x86_64-win32/ssleay32MD.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoZip64.dll',
                             '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoXML64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoUtil64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoNetSSL64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoNet64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoJSON64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoFoundation64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoCrypto64.dll',
                            '../../cl-fc-client-thirdparty/openssl/1.0.2j/lib/x86_64-win32/libeay32MD.dll'
                        ]
                    }]
            }]
        ],
        "target_name": "electronToCppBridge",
        "cflags!": [ "-fno-exceptions" ],
        "cflags_cc!": [ "-fno-exceptions" ],
        "sources": [
            "src/electronToCppBridge.cc",
        ],
        'include_dirs': [
            "<!@(node -p \"require('node-addon-api').include\")"
        ],
        'libraries': ["../libs/cloudDrive2Lib.lib"],
        'dependencies': [
            "<!(node -p \"require('node-addon-api').gyp\")"
        ],
        'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ]
    }]
}

1 Ответ

0 голосов
/ 10 июля 2019

Неважно, я смог добиться этого следующим образом:

{
    "targets": [{
            "conditions":[
            ["OS=='win'", {
                "copies":[
                    { 
                        'destination': './build/Release',
                        'files':[
                            '../../cl-fc-client-thirdparty/bugtrap/BugTrapU-x64.dll',
                            '../build/bin/msvc/Release64/cloudDrive2Lib.dll',
                            '../../cl-fc-client-thirdparty/openssl/1.0.2j/lib/x86_64-win32/ssleay32MD.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoZip64.dll',
                             '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoXML64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoUtil64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoNetSSL64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoNet64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoJSON64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoFoundation64.dll',
                            '../../cl-fc-client-thirdparty/poco/1.7.5/bin64/PocoCrypto64.dll',
                            '../../cl-fc-client-thirdparty/openssl/1.0.2j/lib/x86_64-win32/libeay32MD.dll'
                        ]
                    },
                    {                        
                        'destination': './libs',
                        'files':['../build/bin/msvc/Release64/cloudDrive2Lib.lib']
                    }
                ]
            }]
        ],
        "target_name": "electronToCppBridge",
        "cflags!": [ "-fno-exceptions" ],
        "cflags_cc!": [ "-fno-exceptions" ],
        "sources": [
            "src/electronToCppBridge.cc",
        ],
        'include_dirs': [
            "<!@(node -p \"require('node-addon-api').include\")"
        ],
        'libraries': ["../libs/cloudDrive2Lib.lib"],
        'dependencies': [
            "<!(node -p \"require('node-addon-api').gyp\")"
        ],
        'defines': [ 'NAPI_DISABLE_CPP_EXCEPTIONS' ]
    }]
}
...