binding.gyp (118 lines of code) (raw):

# # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # { "targets": [ { "target_name": "pulsar", "cflags_cc": ["-std=gnu++11", "-fvisibility=hidden"], "cflags!": ["-fno-exceptions"], "cflags_cc!": ["-fno-exceptions", "-std=gnu++14", "-std=gnu++17"], "include_dirs": [ "<!@(node -p \"require('node-addon-api').include\")", ], "defines": ["NAPI_VERSION=4"], "sources": [ "src/addon.cc", "src/Message.cc", "src/MessageId.cc", "src/Authentication.cc", "src/Client.cc", "src/SchemaInfo.cc", "src/Producer.cc", "src/ProducerConfig.cc", "src/Consumer.cc", "src/ConsumerConfig.cc", "src/Reader.cc", "src/ReaderConfig.cc", "src/ThreadSafeDeferred.cc" ], 'conditions': [ ['OS=="mac"', { 'xcode_settings': { 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES', 'GCC_ENABLE_CPP_RTTI': 'YES', 'MACOSX_DEPLOYMENT_TARGET': '11.0', 'CLANG_CXX_LANGUAGE_STANDARD': 'gnu++11', 'OTHER_CFLAGS': [ "-fPIC", ] }, "dependencies": [ "<!@(node -p \"require('node-addon-api').gyp\")" ], "conditions": [ ['"<!(test -e <(module_root_dir)/pkg/mac/build-pulsar/install && echo true || echo false)"=="true"', { "include_dirs": [ "<(module_root_dir)/pkg/mac/build-pulsar/install/include" ], "libraries": [ "<(module_root_dir)/pkg/mac/build-pulsar/install/lib/libpulsarwithdeps.a" ] }, { "include_dirs": [ "<!(brew --prefix)/include" ], "library_dirs": [ "<!(brew --prefix)/lib" ], "libraries": [ "-lpulsar" ] }] ], }], ['OS=="win"', { "defines": [ "_HAS_EXCEPTIONS=1", "PULSAR_STATIC" ], "msvs_settings": { "VCCLCompilerTool": { "ExceptionHandling": 1 }, }, "include_dirs": [ "<(module_root_dir)\\pkg\\windows\\pulsar-cpp\\include" ], "libraries": [ "<(module_root_dir)\\pkg\\windows\\pulsar-cpp\\lib\\pulsarWithDeps.lib" ], "dependencies": [ "<!(node -p \"require('node-addon-api').gyp\")" ] }], ['OS=="linux"', { "ldflags": [ "-Wl,--exclude-libs,ALL" ], "dependencies": [ "<!@(node -p \"require('node-addon-api').gyp\")" ], "conditions": [ ['"<!(test -e <(module_root_dir)/pkg/linux/pulsar-cpp && echo true || echo false)"=="true"', { "include_dirs": [ "<(module_root_dir)/pkg/linux/pulsar-cpp/include" ], "libraries": [ "<(module_root_dir)/pkg/linux/pulsar-cpp/lib/libpulsarwithdeps.a" ] }, { "libraries": [ "-lpulsar" ] }] ], }] ] }, { "target_name": "action_after_build", "type": "none", "dependencies": [ "<(module_name)" ], "copies": [ { "files": [ "<(PRODUCT_DIR)/<(module_name).node" ], "destination": "<(module_path)" } ] } ] }