Skip to content

Commit bab0db6

Browse files
committed
[CMake] Build _StringProcessing and RegexBuilder
First pass at getting the StringProcessing and RegexBuilder runtime libraries built with pure CMake.
1 parent 7a71441 commit bab0db6

File tree

4 files changed

+105
-0
lines changed

4 files changed

+105
-0
lines changed

Runtimes/Supplemental/StringProcessing/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.29)
22

33
set(CMAKE_POSITION_INDEPENDENT_CODE YES)
44

5+
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/modules")
6+
57
if($ENV{BUILD_NUMBER})
68
math(EXPR BUILD_NUMBER "$ENV{BUILD_NUMBER} % 65535")
79
set(BUILD_NUMBER ".${BUILD_NUMBER}")
@@ -20,9 +22,13 @@ set(${PROJECT_NAME}_SWIFTC_SOURCE_DIR
2022

2123
find_package(SwiftCore)
2224

25+
include(AvailabilityMacros)
26+
2327
add_compile_options(
2428
$<$<COMPILE_LANGUAGE:Swift>:-explicit-module-build>
2529
$<$<COMPILE_LANGUAGE:Swift>:-nostdlibimport>
2630
"$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -disable-implicit-string-processing-module-import>")
2731

2832
add_subdirectory(_RegexParser)
33+
add_subdirectory(_StringProcessing)
34+
add_subdirectory(RegexBuilder)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
add_library(swiftRegexBuilder
2+
CharacterClass.swift
3+
Anchor.swift
4+
Builder.swift
5+
Algorithms.swift
6+
Variadics.swift
7+
DSL.swift)
8+
9+
set_target_properties(swiftRegexBuilder PROPERTIES
10+
Swift_MODULE_NAME RegexBuilder)
11+
12+
target_link_libraries(swiftRegexBuilder PRIVATE
13+
swift_StringProcessing
14+
swiftCore)
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
add_library(swift_StringProcessing
2+
_CUnicode/UnicodeData.c
3+
_CUnicode/UnicodeScalarProps.c
4+
_CharacterClassModel.swift
5+
Executor.swift
6+
Capture.swift
7+
Unicode/NumberParsing.swift
8+
Unicode/ASCII.swift
9+
Unicode/CharacterProps.swift
10+
Unicode/Transcoding.swift
11+
Unicode/ScalarProps.swift
12+
Unicode/Comparison.swift
13+
Unicode/NecessaryEvils.swift
14+
Unicode/Validation.swift
15+
Unicode/UCD.swift
16+
Unicode/NFC.swift
17+
Unicode/Encodings.swift
18+
Unicode/Formatting.swift
19+
Unicode/WordBreaking.swift
20+
Unicode/Decoding.swift
21+
Unicode/CaseConversion.swift
22+
Algorithms/Matching/FirstMatch.swift
23+
Algorithms/Matching/MatchingCollectionSearcher.swift
24+
Algorithms/Matching/MatchResult.swift
25+
Algorithms/Matching/MatchReplace.swift
26+
Algorithms/Matching/Matches.swift
27+
Algorithms/Algorithms/FirstRange.swift
28+
Algorithms/Algorithms/Contains.swift
29+
Algorithms/Algorithms/Split.swift
30+
Algorithms/Algorithms/Trim.swift
31+
Algorithms/Algorithms/Ranges.swift
32+
Algorithms/Algorithms/StartsWith.swift
33+
Algorithms/Algorithms/Replace.swift
34+
Algorithms/Algorithms/SubstringSearcher.swift
35+
Algorithms/Searchers/CollectionSearcher.swift
36+
Algorithms/Searchers/ZSearcher.swift
37+
Algorithms/Consumers/CollectionConsumer.swift
38+
Algorithms/Consumers/FixedPatternConsumer.swift
39+
Regex/Options.swift
40+
Regex/Match.swift
41+
Regex/CustomComponents.swift
42+
Regex/Core.swift
43+
Regex/ASTConversion.swift
44+
Regex/DSLTree.swift
45+
Regex/AnyRegexOutput.swift
46+
LiteralPrinter.swift
47+
MatchingOptions.swift
48+
Compiler.swift
49+
ConsumerInterface.swift
50+
PrintAsPattern.swift
51+
Engine/MEBuiltins.swift
52+
Engine/Processor.swift
53+
Engine/MEProgram.swift
54+
Engine/MEQuantify.swift
55+
Engine/InstPayload.swift
56+
Engine/Backtracking.swift
57+
Engine/Instruction.swift
58+
Engine/Registers.swift
59+
Engine/MEBuilder.swift
60+
Engine/Structuralize.swift
61+
Engine/Tracing.swift
62+
Engine/Metrics.swift
63+
Engine/MECapture.swift
64+
ByteCodeGen.swift
65+
Utility/AsciiBitset.swift
66+
Utility/Traced.swift
67+
Utility/TypedIndex.swift
68+
Utility/Misc.swift
69+
Utility/TypedInt.swift
70+
Utility/Protocols.swift
71+
Utility/TypeVerification.swift
72+
Utility/RegexFactory.swift
73+
Utility/ASTBuilder.swift)
74+
75+
set_target_properties(swift_StringProcessing PROPERTIES
76+
Swift_MODULE_NAME _StringProcessing)
77+
78+
target_link_libraries(swift_StringProcessing PRIVATE
79+
swift_RegexParser
80+
swiftCore)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
file(STRINGS "${${PROJECT_NAME}_SWIFTC_SOURCE_DIR}/utils/availability-macros.def" availability_defs)
2+
list(FILTER availability_defs EXCLUDE REGEX "^\\s*(#.*)?$")
3+
foreach(def ${availability_defs})
4+
add_compile_options("$<$<COMPILE_LANGUAGE:Swift>:SHELL:-Xfrontend -define-availability -Xfrontend \"${def}\">")
5+
endforeach()

0 commit comments

Comments
 (0)