You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-i18n/mozc/files/mozc-2.26.4220-system_jsonc...

118 lines
3.4 KiB

https://github.com/google/mozc/issues/490
--- /src/gyp/defines.gypi
+++ /src/gyp/defines.gypi
@@ -71,6 +71,10 @@
# use_system_gtest represents if system version or bundled version
# of gtest library is used.
'use_system_gtest%': '0',
+
+ # use_system_jsoncpp represents if system version or bundled version
+ # of jsoncpp library is used.
+ 'use_system_jsoncpp%': '0',
},
'target_defaults': {
'defines': [
--- /src/net/jsoncpp.gyp
+++ /src/net/jsoncpp.gyp
@@ -31,32 +31,60 @@
'targets': [
{
'target_name': 'jsoncpp',
- 'type': 'static_library',
- 'variables': {
- 'jsoncpp_root': '<(third_party_dir)/jsoncpp',
- 'jsoncpp_srcs': [
- '<(jsoncpp_root)/src/lib_json/json_reader.cpp',
- '<(jsoncpp_root)/src/lib_json/json_value.cpp',
- '<(jsoncpp_root)/src/lib_json/json_writer.cpp',
- ],
- 'jsoncpp_include_dirs': ['<(jsoncpp_root)/include'],
- 'jsoncpp_additional_macros': ['JSON_USE_EXCEPTION=0'],
- },
- 'defines': [
- '<@(jsoncpp_additional_macros)',
+ 'conditions': [
+ ['use_system_jsoncpp==1', {
+ 'type': 'none',
+ 'variables': {
+ 'jsoncpp_additional_macros': [
+ 'JSON_USE_EXCEPTION=0',
+ 'MOZC_USE_SYSTEM_JSONCPP',
+ ],
+ },
+ 'all_dependent_settings': {
+ 'defines': [
+ '<@(jsoncpp_additional_macros)',
+ ],
+ 'cflags': [
+ '<!@(pkg-config --cflags jsoncpp)',
+ ],
+ 'link_settings': {
+ 'libraries': [
+ '<!@(pkg-config --libs-only-l jsoncpp)',
+ ],
+ 'ldflags': [
+ '<!@(pkg-config --libs-only-L jsoncpp)',
+ ],
+ }
+ },
+ }, {
+ 'type': 'static_library',
+ 'variables': {
+ 'jsoncpp_root': '<(third_party_dir)/jsoncpp',
+ 'jsoncpp_srcs': [
+ '<(jsoncpp_root)/src/lib_json/json_reader.cpp',
+ '<(jsoncpp_root)/src/lib_json/json_value.cpp',
+ '<(jsoncpp_root)/src/lib_json/json_writer.cpp',
+ ],
+ 'jsoncpp_include_dirs': ['<(jsoncpp_root)/include'],
+ 'jsoncpp_additional_macros': ['JSON_USE_EXCEPTION=0'],
+ },
+ 'defines': [
+ '<@(jsoncpp_additional_macros)',
+ ],
+ 'sources': [
+ '<@(jsoncpp_srcs)',
+ 'jsoncpp.h',
+ ],
+ 'include_dirs': [
+ '<@(jsoncpp_include_dirs)',
+ ],
+ 'all_dependent_settings': {
+ 'defines': [
+ '<@(jsoncpp_additional_macros)',
+ ],
+ },
+ }],
],
- 'sources': [
- '<@(jsoncpp_srcs)',
- 'jsoncpp.h',
- ],
- 'include_dirs': [
- '<@(jsoncpp_include_dirs)',
- ],
- 'all_dependent_settings': {
- 'defines': [
- '<@(jsoncpp_additional_macros)',
- ],
- },
},
],
}
--- /src/net/jsoncpp.h
+++ /src/net/jsoncpp.h
@@ -35,7 +35,11 @@
// Mozc basically disables C++ exception.
#define JSON_USE_EXCEPTION 0
#endif // !JSON_USE_EXCEPTION
+#ifdef MOZC_USE_SYSTEM_JSONCPP
+#include <json/json.h>
+#else
#include "third_party/jsoncpp/include/json/json.h"
+#endif
#define MOZC_JSONCPP_JSON_H_INCLUDED
#endif // !MOZC_JSONCPP_JSON_H_INCLUDED