Index: icu.gyp |
diff --git a/icu.gyp b/icu.gyp |
index b2bf1dd7fcf33b1da2f13327d5b5f537cde31417..9806c9bce0ebe563d371a21ec1f51ea6c06b5e09 100644 |
--- a/icu.gyp |
+++ b/icu.gyp |
@@ -45,7 +45,7 @@ |
['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ |
or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \ |
(target_arch=="arm" or target_arch=="ia32" or \ |
- target_arch=="mipsel")', { |
+ target_arch=="mipsel" or target_arch=="mips")', { |
'target_conditions': [ |
['_toolset=="host"', { |
'cflags': [ '-m32' ], |
@@ -60,7 +60,7 @@ |
['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ |
or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \ |
(target_arch=="arm64" or target_arch=="x64" or \ |
- target_arch=="mipsel64")', { |
+ target_arch=="mips64el" or target_arch=="mips64")', { |
'target_conditions': [ |
['_toolset=="host"', { |
'cflags': [ '-m64' ], |
@@ -83,12 +83,12 @@ |
['use_system_icu==0 or want_separate_host_toolset==1', { |
'targets': [ |
{ |
- 'target_name': 'copy_icudtl_dat', |
+ 'target_name': 'copy_icudt_dat', |
'type': 'none', |
# icudtl.dat is the same for both host/target, so this only supports a |
# single toolset. If a target requires that the .dat file be copied |
# to the output directory, it should explicitly depend on this target |
- # with the host toolset (like copy_icudtl_dat#host). |
+ # with the host toolset (like copy_icudt_dat#host). |
'toolsets': [ 'host' ], |
'copies': [{ |
'destination': '<(PRODUCT_DIR)', |
@@ -98,29 +98,93 @@ |
'android/icudtl.dat', |
], |
} , { # else: OS != android |
- 'files': [ |
- 'common/icudtl.dat', |
+ 'conditions': [ |
+ # Big Endian |
+ [ 'target_arch=="mips" or target_arch=="mips64"', { |
+ 'files': [ |
+ 'common/icudtb.dat', |
+ ], |
+ } , { # else: ! Big Endian = Little Endian |
+ 'files': [ |
+ 'common/icudtl.dat', |
+ ], |
+ }], |
], |
}], |
], |
}], |
}, |
{ |
+ 'target_name': 'data_assembly', |
+ 'type': 'none', |
+ 'conditions': [ |
+ [ 'target_arch=="mips" or target_arch=="mips64"', { |
+ 'data_assembly_sources': [ |
+ 'common/icudtb.dat', |
+ ], |
+ 'data_assembly_inputs': [ |
+ 'scripts/make_data_assembly.py', |
+ 'common/icudtb.dat', |
+ ], |
+ 'data_assembly_outputs': [ |
+ '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtb_dat.S', |
+ ], |
+ }], |
+ [ 'target_arch!="mips" and target_arch!="mips64"', { |
+ 'data_assembly_sources': [ |
+ 'common/icudtl.dat', |
+ ], |
+ 'data_assembly_inputs': [ |
+ 'scripts/make_data_assembly.py', |
+ 'common/icudtl.dat', |
+ ], |
+ 'data_assembly_outputs': [ |
+ '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtl_dat.S', |
+ ], |
+ }], |
+ ], |
+ 'sources': [ |
+ '<@(_data_assembly_sources)', |
+ ], |
+ 'actions': [ |
+ { |
+ 'action_name': 'make_data_assembly', |
+ 'inputs': [ |
+ '<@(_data_assembly_inputs)', |
+ ], |
+ 'outputs': [ |
+ '<@(_data_assembly_outputs)', |
+ ], |
+ 'action': ['python', '<@(_inputs)', '<@(_outputs)'], |
+ }, |
+ ], |
+ }, |
+ { |
'target_name': 'icudata', |
'type': 'static_library', |
'defines': [ |
'U_HIDE_DATA_SYMBOL', |
], |
+ 'dependencies': [ |
+ 'data_assembly#target', |
+ ], |
'sources': [ |
# These are hand-generated, but will do for now. The linux |
# version is an identical copy of the (mac) icudtl_dat.S file, |
# modulo removal of the .private_extern and .const directives and |
# with no leading underscore on the icudt52_dat symbol. |
'android/icudtl_dat.S', |
- 'linux/icudtl_dat.S', |
+ '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtl_dat.S', |
+ '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtb_dat.S', |
'mac/icudtl_dat.S', |
], |
'conditions': [ |
+ [ 'target_arch=="mips" or target_arch=="mips64"', { |
+ 'sources!': ['<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtl_dat.S'], |
+ }], |
+ [ 'target_arch!="mips" and target_arch!="mips64"', { |
+ 'sources!': ['<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtb_dat.S'], |
+ }], |
[ 'use_system_icu==1 and want_separate_host_toolset==1', { |
'toolsets': ['host'], |
}], |
@@ -132,6 +196,9 @@ |
}], |
[ 'OS == "win" and icu_use_data_file_flag==0', { |
'type': 'none', |
+ 'dependencies!': [ |
+ 'data_assembly#target', |
+ ], |
'copies': [ |
{ |
'destination': '<(PRODUCT_DIR)', |
@@ -141,16 +208,25 @@ |
}, |
], |
}], |
+ [ '(OS == "mac" or OS == "ios") and icu_use_data_file_flag==0', { |
+ 'type': 'none', |
+ 'dependencies!': [ |
+ 'data_assembly#target', |
+ ], |
+ }], |
[ 'icu_use_data_file_flag==1', { |
'type': 'none', |
+ 'dependencies!': [ |
+ 'data_assembly#target', |
+ ], |
# Remove any assembly data file. |
- 'sources/': [['exclude', 'icudtl_dat']], |
+ 'sources/': [['exclude', 'icudt[lb]_dat']], |
# Make sure any binary depending on this gets the data file. |
'conditions': [ |
['OS != "ios"', { |
'dependencies': [ |
- 'copy_icudtl_dat#host', |
+ 'copy_icudt_dat#host', |
], |
} , { # else: OS=="ios" |
'link_settings': { |
@@ -166,7 +242,10 @@ |
[ 'OS == "win" or OS == "mac" or OS == "ios" or ' |
'(OS == "android" and (_toolset != "host" or host_os != "linux")) or ' |
'(OS == "qnx" and (_toolset == "host" and host_os != "linux"))', { |
- 'sources!': ['linux/icudtl_dat.S'], |
+ 'sources!': [ |
+ '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtl_dat.S', |
+ '<(SHARED_INTERMEDIATE_DIR)/third_party/icu/icudtb_dat.S' |
+ ], |
}], |
[ 'OS != "android" or _toolset == "host"', { |
'sources!': ['android/icudtl_dat.S'], |