Skip to content

Commit 7927854

Browse files
committed
shared: add CMake based build rules for ICU
This adds a CMake based build for ICU. This is motivated by Windows where we can avoid having to install a large number of tools in order to build ICU by rewriting the build system in CMake. This is a stopgap solution to the fact that ICU does not a CMake based build. The project has been trying to switch to a CMake based for nearly 4 years now [1]. This allows building ICU on Windows without having to setup and configure cygwin to get access to autotools and without having to do stage and coordinate the data build and the MSVC build. This also allows the use of ninja to build which speeds up the build of ICU, as well as enables easy cross-compilation. Additionally, this allows for a more homogeneous build of Swift as nearly every other project builds with CMake. There are a number of other parallel attempts to add an out-of-tree CMake based system (e.g. [2]). This is a fairly common problem but this solution is far more simple as it only provides enough support to deal with the immediate needs of the Swift project. It only supports building the bits of ICU that are needed for the Swift project and tries to hardcode as much of the configuration as possible to reduce the size of the ICU build while retaining all functionality required for the Swift use cases. [1] https://unicode-org.atlassian.net/browse/ICU-7747 [2] https://github.com/LibCMaker/ICU_CMake_Files
1 parent 1944595 commit 7927854

File tree

3 files changed

+709
-8
lines changed

3 files changed

+709
-8
lines changed

README.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,16 @@ in the same repository without colliding with each other:
1515

1616
~~~
1717
swift-installer-scripts
18-
└ platforms
19-
├ Linux
20-
| ├ Ubuntu
21-
| | └ ...
22-
| └ CentOS
23-
| └ ...
24-
└ Windows
25-
└ ...
18+
├ platforms
19+
| ├ Linux
20+
| | ├ Ubuntu
21+
| | | └ ...
22+
| | └ CentOS
23+
| | └ ...
24+
| └ Windows
25+
| └ ...
26+
└ shared
27+
└ ...
2628
~~~
2729

2830
## Contributing

0 commit comments

Comments
 (0)