Commit Graph

398 Commits

Author SHA1 Message Date
Egor Pugin
76f190024d ICU-20938 Add --skip-dll-export option to genccode to prevent exporting statically linked ICU data from executables. 2020-01-23 12:00:29 -08:00
Hugh McMaster
5aae52d3ef ICU-20924 Use pkg-config to generate the path to pkgdata.inc 2020-01-07 14:19:02 -08:00
Jeff Genovy
727505bdda ICU-20850 Use LocalMemory for cmd to prevent use after free 2019-10-15 12:52:13 -07:00
Jeff Genovy
408752ec49 ICU-20782 Enable Windows desktop ARM and ARM64 builds of ICU4C.
This enables "classic" desktop builds of ICU4C for both ARM (32-bit)
and ARM64 (64-bit) on Windows.

All but the two samples "cal" and "date" in the "allinone" project now
have ARM and ARM64 project configurations, and build for Windows Desktop
ARM/ARM64.

Note: In order to build the ARM/ARM64 data DLL, you need to first build
x64/Release, as the ARM/ARM build uses the x64 bits in order to be able
to cross-compile for ARM/ARM64. This allows for completely building
ARM/ARM64 binaries using only x64 hardware.

The ARM/ARM64 builds require using a newer version of the Windows SDK
than 8.1, so they have a separate WindowsTargetPlatformVersion which
uses Windows 10 SDK version 10.0.16299.0 (aka RS3), which is the first
version of the Windows SDK to support building ARM64 desktop applications.

In addition this also greatly cleans-up the ICU4C ".vcxproj" files, in
order to remove redundant parts, fix inconsistencies, and make them more
readable. This introduces two new variables in the shared `*.props`
files: `IcuBinOutputDir` and `IcuLibOutputDir` in order to further
reduce the amount of duplicated lines in the individual ".vcxproj"
files themselves.
2019-08-26 22:50:31 -07:00
Jeff Genovy
c5ad4664f9 ICU-20768 Remove fixed DLL base addresses when building Windows DLLs.
Remove redundant FixedBaseAddress entries from the vcxproj files.
Make the pkgdata -b option a no-op, and output a message to the user.
2019-08-20 15:37:15 -07:00
Jeff Genovy
d1293c50cb ICU-20712 Add support for building Windows UWP ARM/ARM64 data DLLs.
This also changes the pkgdata tool command line options to decouple the
ARM/ARM64 flags from the UWP flag, and adds a generic architecture
option (-a) for passing in the value of the linker "/MACHINE:" argument
on the command line. (Ex: -a ARM64).

Additionally this change also adds another option to pkgdata (-b) to 
set /DYNAMICBASE on the data DLL, which is required for the ARM64 builds.

Both of these changes also work towards future work in order to enable
full ARM64 desktop builds without UWP.

This change also removes a number of ifdefs/forks in the ICU code based
on U_PLATFORM_HAS_WINUWP_API, and changes them to use ICU_DATA_DIR_WINDOWS
instead. This is needed to unblock the usage of the data DLL in the
UWP scenario, but also helps to further reduce the divergence of the UWP
projects from regular Windows builds.

Related tickets:
  ICU4C: Remove fixed DLL base addresses when building Windows DLLs
  https://unicode-org.atlassian.net/browse/ICU-20768

  Add support to generate ICU data DLL for Windows arm64
  https://unicode-org.atlassian.net/browse/ICU-20670
2019-08-13 17:03:33 -07:00
Shane Carr
bbf8c10e0d ICU-20716 Fixing some buffer overruns in genccode 2019-07-19 17:17:16 -07:00
Steven R. Loomis
83a0542b5b ICU-20526 fix pkgdata where LD_SONAME has a trailing space
- added PKGDATA_TRAILING_SPACE to all of the pkgdataMakefile.in file.
- NOTE: Users who create their own pkgdata.inc / icupkg.inc files may need
   to recreate this PKGDATA_TRAILING_SPACE behavior.

- used the above variable, normally undefined, in mh-* files that need a trailing space

- Also, fixed use of system() in pkgdata.cpp per ICU-20538
This was causing pkgdata to return a zero status even on clang
failure, masking this issue.
2019-04-03 16:43:42 -07:00
Jeff Genovy
33d7868d45 ICU-20351 Warning cleanup changes for ICU4C under MSVC. 2019-01-16 16:43:02 -08:00
Jeff Genovy
9a5b7af83d ICU-13180 Support skiping building the UWP projects with a command line MSBuild option. 2018-11-06 16:02:03 -08:00
Jeff Genovy
14b35e4fbf
ICU-20147 Fix MSVC warning C4251, and fix a few other warnings too. (#134) 2018-09-27 14:27:41 -07:00
sav-ix
511aafb0d9
ICU-13138 fix ICU data binary naming for builds with Static layout (#44)
* ICU-13138 do not create symlink to Static ICU Data binary

For builds using mingw-w64 and MSVC with Static layout,
ICU installation folder contains '.dll' file, which is
a symbolic link to '.a' or '.lib' Data binary.

This have no sense anyway, since it can't be used as
binary with shared layout.

* ICU-13138 mingw: add lib prefix to Static Data binary name

For builds using mingw-w64 with Static layout, missing 'lib'
prefix in ICU Data binary name leads to Stubdata binary use
during ICU extras, samples and tests build. ICU Stubdata
binary also substitutes Data in installation directory.

The above leads to runtime errors of ICU tools, tests and
ICU-based software.

Thus need to add 'lib' prefix to ICU Data binary name during
Pkgdata run.

Task-number: ICU-13138
Task-number: ICU-13187
2018-09-27 14:27:38 -07:00
Jeff Genovy
bb915931d0 ICU-13586 No actual code changes. This change cleans up redundancies in the VS project files, and pulls in common or shared settings from a shared 'props' file. This means that you can now change one single file to target either VS2015 or VS2017, instead of needing to change many files. It also allows the VS project files to share common defines as well, meaning that if you need to target something other than Windows 7, you can make one change in one file, instead of needing to make hundreds. Also included in this change are improvements to the VS Solution files in order to properly denote the dependencies of the projects, which might be needed in the future for possible parallel project builds.
X-SVN-Rev: 41049
2018-03-02 03:20:22 +00:00
Jeff Genovy
07d9b3b567 ICU-13171 Enable multi-processor compilation (/MP) for faster builds.
X-SVN-Rev: 40937
2018-02-16 07:21:34 +00:00
Jeff Genovy
9f62b0dada ICU-13171 Update the VS project files to use VS 2017, plus various fixes to get Samples compiling.
Also add explicit defines for WINVER and _WIN32_WINNT for Windows 7 targeting in non-UWP projects.

X-SVN-Rev: 40935
2018-02-16 03:16:03 +00:00
Jeff Genovy
a709ddc0f2 ICU-13169 Issues retargeting VS project files due to missing WindowsTargetPlatformVersion elements. (tab to spaces)
X-SVN-Rev: 40099
2017-05-03 00:40:08 +00:00
Jeff Genovy
cb53fe41cd ICU-13169 Issues retargeting VS project files due to missing WindowsTargetPlatformVersion elements.
X-SVN-Rev: 40098
2017-05-03 00:28:11 +00:00
Jeff Genovy
e9946ec98e ICU-13027 - Merge in changes from 'branches/shawnste/working/icu4c'
X-SVN-Rev: 39890
2017-03-21 01:03:49 +00:00
Andy Heninger
a0c9b06810 ICU-13049 svn properties updated to match auto-props values.
X-SVN-Rev: 39852
2017-03-17 21:19:03 +00:00
Steven R. Loomis
4890638e08 ICU-12766 wip escaping for utf-8 input
* create a new escaper tool - needs to be invoked in mh- files
* escapes to temporary _whatever.cpp files
* does NOT handle multi line u"xxx" (or u'xxx'? )
* does not cleanup _*.cpp files
* fixup a bunch of Makefiles to add -I$(srcdir) (doesn't hurt anyway)

X-SVN-Rev: 39787
2017-03-13 23:19:33 +00:00
Markus Scherer
a32c1b17ec ICU-12736 assume in some places that we always have std::string; merge r39687 & r39704 from dev branch
X-SVN-Rev: 39731
2017-03-04 00:06:17 +00:00
Andy Heninger
242e02c388 ICU-12764 icu4c utf-8 source files, update Copyright notices.
X-SVN-Rev: 39583
2017-01-20 00:20:31 +00:00
Peter Edberg
a238722264 ICU-12895 update release version to 59.0.1 for m1
X-SVN-Rev: 39562
2017-01-16 00:42:22 +00:00
Shawn Steele
326552aa72 ICU-12087 - merge updates to use VS2015
X-SVN-Rev: 39085
2016-08-24 20:52:23 +00:00
Michael Ow
61607c2773 ICU-12564 Update copyright notice in trunk
X-SVN-Rev: 38848
2016-06-15 18:58:17 +00:00
Yoshito Umaoka
00ca13e126 ICU-12564 Reverted r38761 and r38762, because we want to prepend the Unicode copyright for existing source files, instead of replacing copyright comments.
X-SVN-Rev: 38776
2016-05-31 21:45:07 +00:00
Michael Ow
84b42ae4d1 ICU-12564 Update copyright notice in more files of ICU4C
X-SVN-Rev: 38762
2016-05-27 22:09:25 +00:00
Michael Ow
c9f199a30f ICU-12564 Update copyright notice in ICU4C
X-SVN-Rev: 38761
2016-05-26 22:32:17 +00:00
Fredrik Roubert
7f4b8d106b ICU-12012 Replace all sizeof p / sizeof *p with UPRV_LENGTHOF().
R=markus.icu@gmail.com

Review URL: https://codereview.appspot.com/285520043 .

X-SVN-Rev: 38337
2016-02-23 10:40:09 +00:00
Markus Scherer
2769a64643 ICU-11863 pkgdata.cpp define & use LocalPipeFilePointer (auto pointer) for popen/pclose
X-SVN-Rev: 37921
2015-09-09 18:47:00 +00:00
Michael Ow
7647eff8f5 ICU-11744 Ensure that array is initialized correctly
X-SVN-Rev: 37700
2015-07-28 17:29:43 +00:00
Michael Ow
f32fcafadd ICU-11732 Increase buffer size to avoid overflow
X-SVN-Rev: 37580
2015-06-16 18:31:19 +00:00
Andy Heninger
ae678d796b ICU-11609 add svn:eol-style property to vcxproj files.
X-SVN-Rev: 37364
2015-04-17 21:25:48 +00:00
Michael Ow
d8cba8ab2d ICU-11391 Fix data build on windows
X-SVN-Rev: 36934
2015-01-09 06:45:59 +00:00
Michael Ow
2ab0292209 ICU-11391 Add arch detection code in pkgdata tool
X-SVN-Rev: 36932
2015-01-08 20:13:48 +00:00
Michael Ow
bcdcc4dc67 ICU-10731 Fix import library name when building data on mingw
X-SVN-Rev: 36922
2015-01-06 23:08:18 +00:00
Yoshito Umaoka
8f7b28cfc6 ICU-10881 Fixed a namespace problem.
X-SVN-Rev: 36463
2014-09-11 16:00:14 +00:00
John Emmons
4d47dd3226 ICU-11092 Split out units data into a separate tree
X-SVN-Rev: 36458
2014-09-11 10:16:22 +00:00
Steven R. Loomis
4345b76644 ICU-10881 merge from branch - conservative fixes to some warnings
X-SVN-Rev: 36449
2014-09-11 05:25:13 +00:00
Michael Ow
5b95b36b05 ICU-10955 Allow for file extension customization in the pkgdata tool with the option file
X-SVN-Rev: 35923
2014-06-23 21:36:42 +00:00
Andy Heninger
0a9c28990a ICU-10861 Fix several ICU4C compile warnings.
X-SVN-Rev: 35650
2014-04-24 00:33:39 +00:00
Michael Ow
fefa024ccc ICU-10711 Update more fixes to zos pds dataset build
X-SVN-Rev: 35251
2014-02-27 19:23:50 +00:00
Michael Ow
8304daf4d7 ICU-10711 Fix pds dataset data builds on zos
X-SVN-Rev: 35152
2014-02-18 06:21:37 +00:00
Andy Heninger
301814f85f ICU-10624 Compiler warning cleanups, continued.
X-SVN-Rev: 34855
2014-01-10 08:35:00 +00:00
Michael Ow
1a5ac6406f ICU-10133 Fix pkgdata tool not building data into load module on OS390
X-SVN-Rev: 33614
2013-05-08 19:53:01 +00:00
Michael Ow
8a51a0ecb5 ICU-9996 Exclude OS390 from isspace call
X-SVN-Rev: 33410
2013-03-11 16:55:23 +00:00
Michael Ow
a8164c9d4b ICU-9996 Disable call to isspace on zos
X-SVN-Rev: 33349
2013-02-28 18:32:54 +00:00
Michael Ow
d134b120de ICU-9426 Fix pkgdata option file detection
X-SVN-Rev: 32074
2012-07-27 18:38:08 +00:00
Michael Ow
2d903d91d6 ICU-9336 Fix typo in macro call
X-SVN-Rev: 31896
2012-06-01 14:44:29 +00:00
Michael Ow
9a66926428 ICU-9336 Add some fixes for build failures in z/OS
X-SVN-Rev: 31891
2012-05-31 16:18:29 +00:00