fix: export DebugOptions parser in a cross-platform-compatible way

This commit is contained in:
Jeremy Apthorp 2018-09-19 17:53:36 -07:00 коммит произвёл Shelley Vohr
Родитель 0fee0c1f39
Коммит d621ca7061
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: F13993A75599653C
4 изменённых файлов: 8 добавлений и 2 удалений

Просмотреть файл

@ -324,6 +324,7 @@ component("node_lib") {
defines = [
"NODE_WANT_INTERNALS=1",
"NODE_WITHOUT_NODE_OPTIONS",
"NODE_IMPLEMENTATION",
]
if (is_component_build) {

Просмотреть файл

@ -29,7 +29,11 @@
# define NODE_EXTERN __declspec(dllimport)
# endif
#else
#if defined(NODE_IMPLEMENTATION)
# define NODE_EXTERN __attribute__((visibility("default")))
#else
# define NODE_EXTERN
#endif
#endif
#ifdef BUILDING_NODE_EXTENSION

Просмотреть файл

@ -22,7 +22,7 @@ namespace options_parser {
// doc/api/cli.md
// TODO(addaleax): Make that unnecessary.
template class OptionsParser<DebugOptions>;
template class EXPORT_TEMPLATE_DEFINE(NODE_EXTERN) OptionsParser<DebugOptions>;
DebugOptionsParser::DebugOptionsParser() {
#if HAVE_INSPECTOR

Просмотреть файл

@ -7,6 +7,7 @@
#include <vector>
#include <unordered_map>
#include <memory>
#include "base/export_template.h"
#include "node_constants.h"
namespace node {
@ -341,7 +342,7 @@ class OptionsParser {
friend void GetOptions(const v8::FunctionCallbackInfo<v8::Value>& args);
};
extern template class OptionsParser<DebugOptions>;
extern template class EXPORT_TEMPLATE_DECLARE(NODE_EXTERN) OptionsParser<DebugOptions>;
class NODE_EXTERN DebugOptionsParser : public OptionsParser<DebugOptions> {
public: