Skip to content

Commit 7f2888e

Browse files
committed
Update Windows and xplat build systems to support local ICU
1 parent 002e9be commit 7f2888e

24 files changed

Lines changed: 856 additions & 201 deletions

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ install_manifest.txt
7676
*.xcodeproj
7777
*.xcworkspace
7878

79+
# ICU
80+
deps/Chakra.ICU/Chakra.ICU.props
81+
deps/Chakra.ICU/icu
82+
7983
# VIM
8084
.*.swo
8185
.*.swp
@@ -98,7 +102,6 @@ lib/wabt/built/config.h
98102
# Generated by other tools
99103
*.lldb.cmd
100104
*.orig
101-
deps/
102105

103106
.DS_Store
104107
android-toolchain-arm/

Build/Chakra.Build.Paths.props

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,4 @@
99

1010
<ChakraBuildPathImported>true</ChakraBuildPathImported>
1111
</PropertyGroup>
12-
<PropertyGroup Label="ICU">
13-
<!-- IcuLibDir can be set in environment or with "/p:IcuLibDir=..." -->
14-
<IcuLibDir Condition="'$(IcuLibDir)'=='' AND '$(Configuration)'=='Debug'">$(ChakraCoreRootDirectory)\deps\static\icu-small\debug</IcuLibDir>
15-
<IcuLibDir Condition="'$(IcuLibDir)'=='' AND ('$(Configuration)'=='Test' or '$(Configuration)'=='Release')">$(ChakraCoreRootDirectory)\deps\static\icu-small\release</IcuLibDir>
16-
<!-- IcuIncludeDir can be set in environment or with "/p:IcuIncludeDir=..." -->
17-
<IcuIncludeDir Condition="'$(IcuIncludeDir)'==''">$(ChakraCoreRootDirectory)\deps\icu-small\source</IcuIncludeDir>
18-
</PropertyGroup>
1912
</Project>

Build/Chakra.Build.props

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,18 @@
1717
<PropertyGroup Condition="'$(RunCodeAnalysis)'=='' AND '$(Configuration)'=='Release'">
1818
<RunCodeAnalysis>$(BuildWithCodeAnalysis)</RunCodeAnalysis>
1919
</PropertyGroup>
20+
<PropertyGroup>
21+
<EnableIntl Condition="'$(EnableIntl)'==''">true</EnableIntl>
22+
<EnableIntl Condition="'$(BuildLite)'=='true'">false</EnableIntl>
23+
24+
<ChakraICU Condition="'$(ChakraICU)'==''">false</ChakraICU>
25+
<!-- ARM does not support ICU until we figure out how to link icudtXXl.dat without genccode.exe -->
26+
<ChakraICU Condition="'$(Platform)'=='ARM'">false</ChakraICU>
27+
28+
<UseICU Condition="'$(UseICU)'==''">false</UseICU>
29+
<UseICU Condition="'$(BuildLite)'=='true'">false</UseICU>
30+
<UseICU Condition="'$(ChakraICU)'!='false'">true</UseICU>
31+
</PropertyGroup>
2032
<ItemDefinitionGroup>
2133
<ClCompile>
2234
<PreprocessorDefinitions>
@@ -38,7 +50,7 @@
3850
%(PreprocessorDefinitions);
3951
CHAKRACORE_LITE
4052
</PreprocessorDefinitions>
41-
<PreprocessorDefinitions Condition="'$(IntlICU)'=='true'">
53+
<PreprocessorDefinitions Condition="'$(EnableIntl)'=='true' AND '$(UseICU)'=='true'">
4254
%(PreprocessorDefinitions);
4355
INTL_ICU=1
4456
</PreprocessorDefinitions>
@@ -62,11 +74,6 @@
6274
$(IntDir)..\CoreManifests;
6375
%(AdditionalIncludeDirectories)
6476
</AdditionalIncludeDirectories>
65-
<AdditionalIncludeDirectories Condition="'$(IntlICU)'=='true'">
66-
$(IcuIncludeDir)\common;
67-
$(IcuIncludeDir)\i18n;
68-
%(AdditionalIncludeDirectories)
69-
</AdditionalIncludeDirectories>
7077
</ClCompile>
7178

7279
<ResourceCompile>

Build/Chakra.Core.sln

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pal", "..\pal\pal.vcxproj",
156156
EndProject
157157
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wabt", "..\lib\wabt\wabt.vcxproj", "{F48B3491-81DF-4F49-B35F-3308CBE6A379}"
158158
EndProject
159+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Chakra.ICU.Common", "..\deps\Chakra.ICU\Chakra.ICU.Common.vcxproj", "{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}"
160+
EndProject
161+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Deps", "Deps", "{6C6BC844-3D86-42B4-B3C4-7478487D2C38}"
162+
EndProject
163+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Chakra.ICU.Data", "..\deps\Chakra.ICU\Chakra.ICU.Data.vcxproj", "{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}"
164+
EndProject
165+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Chakra.ICU.i18n", "..\deps\Chakra.ICU\Chakra.ICU.i18n.vcxproj", "{0494C753-5BB9-45AA-874E-E61B9922E88F}"
166+
EndProject
167+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Chakra.ICU.GenCCode", "..\deps\Chakra.ICU\Chakra.ICU.GenCCode.vcxproj", "{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}"
168+
EndProject
169+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Chakra.ICU.Stubdata", "..\deps\Chakra.ICU\Chakra.ICU.Stubdata.vcxproj", "{E14F373D-05A0-4259-A5E9-AFE8405FB847}"
170+
EndProject
171+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Chakra.ICU.Toolutil", "..\deps\Chakra.ICU\Chakra.ICU.Toolutil.vcxproj", "{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}"
172+
EndProject
159173
Global
160174
GlobalSection(SolutionConfigurationPlatforms) = preSolution
161175
Debug|ARM = Debug|ARM
@@ -713,6 +727,114 @@ Global
713727
{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Test|x64.Build.0 = Test|x64
714728
{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Test|x86.ActiveCfg = Test|Win32
715729
{F48B3491-81DF-4F49-B35F-3308CBE6A379}.Test|x86.Build.0 = Test|Win32
730+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|ARM.ActiveCfg = Debug|ARM
731+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|ARM.Build.0 = Debug|ARM
732+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|x64.ActiveCfg = Debug|x64
733+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|x64.Build.0 = Debug|x64
734+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|x86.ActiveCfg = Debug|Win32
735+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Debug|x86.Build.0 = Debug|Win32
736+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|ARM.ActiveCfg = Release|ARM
737+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|ARM.Build.0 = Release|ARM
738+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|x64.ActiveCfg = Release|x64
739+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|x64.Build.0 = Release|x64
740+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|x86.ActiveCfg = Release|Win32
741+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Release|x86.Build.0 = Release|Win32
742+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|ARM.ActiveCfg = Test|ARM
743+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|ARM.Build.0 = Test|ARM
744+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|x64.ActiveCfg = Test|x64
745+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|x64.Build.0 = Test|x64
746+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|x86.ActiveCfg = Test|Win32
747+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44}.Test|x86.Build.0 = Test|Win32
748+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|ARM.ActiveCfg = Debug|ARM
749+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|ARM.Build.0 = Debug|ARM
750+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|x64.ActiveCfg = Debug|x64
751+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|x64.Build.0 = Debug|x64
752+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|x86.ActiveCfg = Debug|Win32
753+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Debug|x86.Build.0 = Debug|Win32
754+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|ARM.ActiveCfg = Release|ARM
755+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|ARM.Build.0 = Release|ARM
756+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|x64.ActiveCfg = Release|x64
757+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|x64.Build.0 = Release|x64
758+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|x86.ActiveCfg = Release|Win32
759+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Release|x86.Build.0 = Release|Win32
760+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|ARM.ActiveCfg = Test|ARM
761+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|ARM.Build.0 = Test|ARM
762+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|x64.ActiveCfg = Test|x64
763+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|x64.Build.0 = Test|x64
764+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|x86.ActiveCfg = Test|Win32
765+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0}.Test|x86.Build.0 = Test|Win32
766+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|ARM.ActiveCfg = Debug|ARM
767+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|ARM.Build.0 = Debug|ARM
768+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|x64.ActiveCfg = Debug|x64
769+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|x64.Build.0 = Debug|x64
770+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|x86.ActiveCfg = Debug|Win32
771+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Debug|x86.Build.0 = Debug|Win32
772+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|ARM.ActiveCfg = Release|ARM
773+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|ARM.Build.0 = Release|ARM
774+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|x64.ActiveCfg = Release|x64
775+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|x64.Build.0 = Release|x64
776+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|x86.ActiveCfg = Release|Win32
777+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Release|x86.Build.0 = Release|Win32
778+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|ARM.ActiveCfg = Test|ARM
779+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|ARM.Build.0 = Test|ARM
780+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|x64.ActiveCfg = Test|x64
781+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|x64.Build.0 = Test|x64
782+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|x86.ActiveCfg = Test|Win32
783+
{0494C753-5BB9-45AA-874E-E61B9922E88F}.Test|x86.Build.0 = Test|Win32
784+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Debug|ARM.ActiveCfg = Debug|ARM
785+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Debug|ARM.Build.0 = Debug|ARM
786+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Debug|x64.ActiveCfg = Debug|x64
787+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Debug|x64.Build.0 = Debug|x64
788+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Debug|x86.ActiveCfg = Debug|Win32
789+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Debug|x86.Build.0 = Debug|Win32
790+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Release|ARM.ActiveCfg = Release|ARM
791+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Release|ARM.Build.0 = Release|ARM
792+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Release|x64.ActiveCfg = Release|x64
793+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Release|x64.Build.0 = Release|x64
794+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Release|x86.ActiveCfg = Release|Win32
795+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Release|x86.Build.0 = Release|Win32
796+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Test|ARM.ActiveCfg = Test|ARM
797+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Test|ARM.Build.0 = Test|ARM
798+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Test|x64.ActiveCfg = Test|x64
799+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Test|x64.Build.0 = Test|x64
800+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Test|x86.ActiveCfg = Test|Win32
801+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D}.Test|x86.Build.0 = Test|Win32
802+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|ARM.ActiveCfg = Debug|ARM
803+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|ARM.Build.0 = Debug|ARM
804+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|x64.ActiveCfg = Debug|x64
805+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|x64.Build.0 = Debug|x64
806+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|x86.ActiveCfg = Debug|Win32
807+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Debug|x86.Build.0 = Debug|Win32
808+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|ARM.ActiveCfg = Release|ARM
809+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|ARM.Build.0 = Release|ARM
810+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|x64.ActiveCfg = Release|x64
811+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|x64.Build.0 = Release|x64
812+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|x86.ActiveCfg = Release|Win32
813+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Release|x86.Build.0 = Release|Win32
814+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|ARM.ActiveCfg = Test|ARM
815+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|ARM.Build.0 = Test|ARM
816+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|x64.ActiveCfg = Test|x64
817+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|x64.Build.0 = Test|x64
818+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|x86.ActiveCfg = Test|Win32
819+
{E14F373D-05A0-4259-A5E9-AFE8405FB847}.Test|x86.Build.0 = Test|Win32
820+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Debug|ARM.ActiveCfg = Debug|ARM
821+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Debug|ARM.Build.0 = Debug|ARM
822+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Debug|x64.ActiveCfg = Debug|x64
823+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Debug|x64.Build.0 = Debug|x64
824+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Debug|x86.ActiveCfg = Debug|Win32
825+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Debug|x86.Build.0 = Debug|Win32
826+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Release|ARM.ActiveCfg = Release|ARM
827+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Release|ARM.Build.0 = Release|ARM
828+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Release|x64.ActiveCfg = Release|x64
829+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Release|x64.Build.0 = Release|x64
830+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Release|x86.ActiveCfg = Release|Win32
831+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Release|x86.Build.0 = Release|Win32
832+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Test|ARM.ActiveCfg = Test|ARM
833+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Test|ARM.Build.0 = Test|ARM
834+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Test|x64.ActiveCfg = Test|x64
835+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Test|x64.Build.0 = Test|x64
836+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Test|x86.ActiveCfg = Test|Win32
837+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01}.Test|x86.Build.0 = Test|Win32
716838
EndGlobalSection
717839
GlobalSection(SolutionProperties) = preSolution
718840
HideSolutionNode = FALSE
@@ -755,6 +877,13 @@ Global
755877
{2F6A1847-BFAF-4B8A-9463-AC39FB46B96A} = {984BE359-87F7-4BD7-A823-AD8A59739801}
756878
{02D4FD92-AD34-40CA-85DF-4D6C7E3A1F22} = {546172B2-F084-4363-BE35-06010663D319}
757879
{F48B3491-81DF-4F49-B35F-3308CBE6A379} = {D8216B93-BD6E-4293-8D98-79CEF7CF66BC}
880+
{EE2A3111-4D85-427C-B0AB-E6B0EA7FFB44} = {6C6BC844-3D86-42B4-B3C4-7478487D2C38}
881+
{6C6BC844-3D86-42B4-B3C4-7478487D2C38} = {158C8616-750C-4E0E-BD3D-5721D3C555E6}
882+
{347824B1-7100-4EE6-8A6B-4FF64E66B0C0} = {6C6BC844-3D86-42B4-B3C4-7478487D2C38}
883+
{0494C753-5BB9-45AA-874E-E61B9922E88F} = {6C6BC844-3D86-42B4-B3C4-7478487D2C38}
884+
{FA9E9590-0E6C-40F9-9527-E608F2DFA76D} = {6C6BC844-3D86-42B4-B3C4-7478487D2C38}
885+
{E14F373D-05A0-4259-A5E9-AFE8405FB847} = {6C6BC844-3D86-42B4-B3C4-7478487D2C38}
886+
{A87105AD-8F4A-4D7A-9096-EFD30DBA3E01} = {6C6BC844-3D86-42B4-B3C4-7478487D2C38}
758887
EndGlobalSection
759888
GlobalSection(ExtensibilityGlobals) = postSolution
760889
SolutionGuid = {1F6CA1BC-6C01-4C82-8505-6A7690EBD556}

CMakeLists.txt

Lines changed: 45 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,9 @@ endif()
6262

6363
if(ICU_SETTINGS_RESET)
6464
unset(ICU_SETTINGS_RESET CACHE)
65-
unset(ICU_INCLUDE_PATH CACHE)
6665
unset(ICU_INCLUDE_PATH_SH CACHE)
67-
unset(NO_ICU_PATH_GIVEN_SH CACHE)
68-
unset(NO_ICU_PATH_GIVEN CACHE)
69-
unset(CC_EMBED_ICU_SH CACHE)
66+
unset(NO_ICU_SH CACHE)
67+
unset(LOCAL_ICU_SH CACHE)
7068
endif()
7169

7270
if(CC_TARGET_OS_ANDROID_SH)
@@ -102,58 +100,55 @@ if (ENABLE_CC_XPLAT_TRACE_SH)
102100
endif()
103101
endif()
104102

105-
if(CC_EMBED_ICU_SH)
106-
unset(CC_EMBED_ICU_SH CACHE)
107-
set(CC_EMBED_ICU 1)
108-
set(ICU_INCLUDE_PATH "deps/icu/source/output/include/")
109-
endif()
110-
111103
if(ICU_INCLUDE_PATH_SH)
112104
set(ICU_INCLUDE_PATH ${ICU_INCLUDE_PATH_SH})
113-
unset(NO_ICU_PATH_GIVEN_SH CACHE)
114-
unset(NO_ICU_PATH_GIVEN CACHE)
115105
unset(ICU_INCLUDE_PATH_SH CACHE)
116106
endif()
117107

118-
if(NO_ICU_PATH_GIVEN_SH)
119-
set(NO_ICU_PATH_GIVEN ${NO_ICU_PATH_GIVEN_SH})
120-
unset(NO_ICU_PATH_GIVEN_SH CACHE)
121-
unset(ICU_INCLUDE_PATH_SH CACHE)
122-
unset(ICU_INCLUDE_PATH CACHE)
108+
if(NO_ICU_SH)
109+
set(NO_ICU 1)
110+
unset(NO_ICU_SH CACHE)
123111
endif()
124112

125113
function(clr_unknown_arch)
126114
message(FATAL_ERROR "Only AMD64, ARM and I386 are supported")
127115
endfunction()
128116

129-
if(NOINTL_ICU_SH)
130-
unset(NOINTL_ICU_SH CACHE) # don't cache
131-
set(ICU_INTL_DISABLED 1)
117+
if(INTL_ICU_SH)
118+
unset(INTL_ICU_SH CACHE)
119+
set(INTL_ICU 1)
120+
else()
121+
unset(INTL_ICU_SH CACHE)
122+
set(INTL_ICU 0)
132123
endif()
133124

134125
if(ICU_INCLUDE_PATH)
135126
add_definitions(-DHAS_REAL_ICU=1)
136-
set(ICU_CC_PATH "${ICU_INCLUDE_PATH}/../lib/")
137-
find_library(ICUUC icuuc PATHS ${ICU_CC_PATH} NO_DEFAULT_PATH)
138-
if(NOT ICU_INTL_DISABLED)
127+
set(ICU_LIBRARY_PATH "${ICU_INCLUDE_PATH}/../lib/")
128+
find_library(ICUUC icuuc PATHS ${ICU_LIBRARY_PATH} NO_DEFAULT_PATH)
129+
130+
if(INTL_ICU)
139131
add_definitions(-DINTL_ICU=1)
140-
find_library(ICU18 icui18n PATHS ${ICU_CC_PATH} NO_DEFAULT_PATH)
141-
# icu header files are either located under the same folder or i18n is under a relative path
142-
# TODO (unlikely): shall we add `--icu-intl` to build.sh ?
132+
find_library(ICUIN icui18n PATHS ${ICU_LIBRARY_PATH} NO_DEFAULT_PATH)
133+
# In a default install, ICU header files are all in ICU_ROOT/include
134+
# However, for Node, the include/ folder is never generated, so we have to look
135+
# in NODE/deps/icu/source/{common|i18n} for headers
143136
set(ICU_INCLUDE_PATH
144-
"${ICU_INCLUDE_PATH}"
145-
"${ICU_INCLUDE_PATH}/../i18n/")
137+
"${ICU_INCLUDE_PATH}"
138+
"${ICU_INCLUDE_PATH}/../i18n/"
139+
)
146140
endif()
141+
147142
if(ICUUC)
148-
message("-- found ICU libs: ${ICU_CC_PATH}")
149-
find_library(ICUDATA icudata PATHS ${ICU_CC_PATH} NO_DEFAULT_PATH)
150-
if (NOT ICUDATA)
151-
set(ICUDATA "")
152-
endif()
153-
set(ICULIB
154-
${ICUUC}
155-
${ICU18}
156-
${ICUDATA}
143+
message("-- found ICU libs: ${ICU_LIBRARY_PATH}")
144+
find_library(ICUDATA icudata PATHS ${ICU_LIBRARY_PATH} NO_DEFAULT_PATH)
145+
if (NOT ICUDATA)
146+
set(ICUDATA "")
147+
endif()
148+
set(ICU_LIBRARIES
149+
${ICUUC}
150+
${ICUIN}
151+
${ICUDATA}
157152
)
158153
endif()
159154
endif()
@@ -194,19 +189,16 @@ if(CAN_BUILD_WABT)
194189
endif()
195190

196191
if(CC_TARGET_OS_LINUX OR CC_TARGET_OS_ANDROID)
197-
if(NOT ICULIB)
198-
if(NOT NO_ICU_PATH_GIVEN)
199-
if(NOT CC_EMBED_ICU)
200-
set(ICULIB "icuuc")
201-
if(NOT ICU_INTL_DISABLED)
202-
add_definitions(-DINTL_ICU=1)
203-
set(ICULIB
204-
"${ICULIB}"
205-
"icui18n")
206-
endif()
207-
endif()
208-
add_definitions(-DHAS_REAL_ICU=1)
192+
if(SYSTEM_ICU_SH)
193+
set(ICU_LIBRARIES "icuuc")
194+
if(INTL_ICU)
195+
add_definitions(-DINTL_ICU=1)
196+
set(ICU_LIBRARIES
197+
${ICU_LIBRARIES}
198+
icui18n
199+
)
209200
endif()
201+
add_definitions(-DHAS_REAL_ICU=1)
210202
endif()
211203

212204
set(CLR_CMAKE_PLATFORM_LINUX 1)
@@ -227,8 +219,8 @@ elseif(CC_TARGET_OS_OSX)
227219
# in case ICU path was given but it doesn't exist, build script will fail.
228220
# so, fallback only if ICU path wasn't given
229221
if(NOT ICU_INCLUDE_PATH)
230-
set(NO_ICU_PATH_GIVEN 1)
231-
message("-- Couldn't find ICU. Falling back to --no-icu build")
222+
set(NO_ICU 1)
223+
message("-- Couldn't find ICU. Falling back to --no-icu build")
232224
endif()
233225

234226
if(NOT CC_XCODE_PROJECT)
@@ -360,7 +352,7 @@ if(CLR_CMAKE_PLATFORM_XPLAT)
360352
# Also disable RTTI when building a shared library
361353
# TODO: why does the shared library break with rtti disabled?
362354
if(CMAKE_BUILD_TYPE STREQUAL Release)
363-
if(STATIC_LIBRARY OR ICU_INTL_DISABLED)
355+
if(STATIC_LIBRARY)
364356
add_compile_options(-fno-rtti)
365357
endif()
366358
endif()
@@ -484,7 +476,7 @@ include_directories(
484476

485477
if(ICU_INCLUDE_PATH)
486478
if(NOT HAVE_LIBICU_UCHAR_H)
487-
set(HAVE_LIBICU_UCHAR_H "1")
479+
set(HAVE_LIBICU_UCHAR_H 1)
488480
endif()
489481
endif()
490482

bin/ChakraCore/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ set(lib_target "${lib_target}"
4646
-Wl,-undefined,error
4747
${LINKER_START_GROUP}
4848
ChakraCoreStatic
49+
${ICU_LIBRARIES}
4950
${LINKER_END_GROUP}
5051
pthread
5152
dl
52-
${ICULIB}
5353
)
5454

5555
if(CC_TARGET_OS_ANDROID OR CC_TARGET_OS_LINUX)

0 commit comments

Comments
 (0)