Skip to content

build: add a CMake based build #125

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@

cmake_minimum_required(VERSION 3.18)
project(SwiftExperimentalStringProcessing
LANGUAGES Swift)

if(CMAKE_SYSTEM_NAME STREQUAL Windows OR CMAKE_SYSTEM_NAME STREQUAL Darwin)
option(BUILD_SHARED_LIBS "Build shared libraries by default" YES)
endif()

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/swift)

find_package(ArgumentParser CONFIG)

add_subdirectory(Sources)
6 changes: 6 additions & 0 deletions Sources/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@

add_subdirectory(_Unicode)
add_subdirectory(_MatchingEngine)
add_subdirectory(_StringProcessing)
add_subdirectory(Prototypes)
add_subdirectory(VariadicsGenerator)
18 changes: 18 additions & 0 deletions Sources/Prototypes/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@

add_library(Prototypes
Combinators/Combinators.swift
PEG/PEG.swift
PEG/PEGCode.swift
PEG/PEGCompile.swift
PEG/PEGCore.swift
PEG/PEGInterpreter.swift
PEG/PEGTranspile.swift
PEG/PEGVM.swift
PEG/PEGVMExecute.swift
PEG/Printing.swift
PTCaRet/Interpreter.swift
PTCaRet/PTCaRet.swift
TourOfTypes/CharacterClass.swift
TourOfTypes/Literal.swift)
target_link_libraries(Prototypes PUBLIC
_MatchingEngine)
7 changes: 7 additions & 0 deletions Sources/VariadicsGenerator/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@

add_executable(VariadicsGenerator
VariadicsGenerator.swift)
target_compile_options(VariadicsGenerator PRIVATE
-parse-as-library)
target_link_libraries(VariadicsGenerator PUBLIC
ArgumentParser)
46 changes: 46 additions & 0 deletions Sources/_MatchingEngine/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@

add_library(_MatchingEngine
Engine/Backtracking.swift
Engine/Builder.swift
Engine/Capture.swift
Engine/Consume.swift
Engine/Engine.swift
Engine/InstPayload.swift
Engine/Instruction.swift
Engine/Processor.swift
Engine/Program.swift
Engine/Registers.swift
Engine/Tracing.swift
Regex/AST/AST.swift
Regex/AST/ASTAction.swift
Regex/AST/ASTProtocols.swift
Regex/AST/Atom.swift
Regex/AST/Conditional.swift
Regex/AST/CustomCharClass.swift
Regex/AST/Group.swift
Regex/AST/MatchingOptions.swift
Regex/AST/Quantification.swift
Regex/Parse/CaptureStructure.swift
Regex/Parse/CharacterPropertyClassification.swift
Regex/Parse/Diagnostics.swift
Regex/Parse/LexicalAnalysis.swift
Regex/Parse/Mocking.swift
Regex/Parse/Parse.swift
Regex/Parse/Source.swift
Regex/Parse/SourceLocation.swift
Regex/Parse/SyntaxOptions.swift
Regex/Printing/DumpAST.swift
Regex/Printing/PrettyPrinter.swift
Regex/Printing/PrintAsCanonical.swift
Regex/Printing/PrintAsPattern.swift
Regex/Printing/RenderRanges.swift
Utility/AllScalars.swift
Utility/Formatting.swift
Utility/Misc.swift
Utility/MissingUnicode.swift
Utility/Protocols.swift
Utility/TypeConstruction.swift
Utility/TypedIndex.swift
Utility/TypedInt.swift)
target_compile_options(_MatchingEngine PRIVATE
-enable-library-evolution)
42 changes: 42 additions & 0 deletions Sources/_StringProcessing/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

add_library(_StringProcessing
Algorithms/Algorithms/Contains.swift
Algorithms/Algorithms/FirstRange.swift
Algorithms/Algorithms/Ranges.swift
Algorithms/Algorithms/Replace.swift
Algorithms/Algorithms/Split.swift
Algorithms/Algorithms/StartsWith.swift
Algorithms/Algorithms/Trim.swift
Algorithms/Consumers/CollectionConsumer.swift
Algorithms/Consumers/FixedPatternConsumer.swift
Algorithms/Consumers/ManyConsumer.swift
Algorithms/Consumers/PredicateConsumer.swift
Algorithms/Consumers/RegexConsumer.swift
Algorithms/Searchers/CollectionSearcher.swift
Algorithms/Searchers/ConsumerSearcher.swift
Algorithms/Searchers/NaivePatternSearcher.swift
Algorithms/Searchers/PatternOrEmpty.swift
Algorithms/Searchers/PredicateSearcher.swift
Algorithms/Searchers/TwoWaySearcher.swift
Algorithms/Searchers/ZSearcher.swift
ASTBuilder.swift
Capture.swift
CharacterClass.swift
Compiler.swift
ConsumerInterface.swift
Executor.swift
Legacy/HareVM.swift
Legacy/LegacyCompile.swift
Legacy/RECode.swift
Legacy/TortoiseVM.swift
Legacy/VirtualMachine.swift
RegexDSL/Builder.swift
RegexDSL/Concatenation.swift
RegexDSL/Core.swift
RegexDSL/DSL.swift
RegexDSL/DSLCapture.swift
RegexDSL/DynamicCaptures.swift)
target_compile_options(_StringProcessing PRIVATE
-enable-library-evolution)
target_link_libraries(_StringProcessing PUBLIC
_MatchingEngine)
16 changes: 16 additions & 0 deletions Sources/_Unicode/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

add_library(_Unicode
CaseConversion.swift
CharacterProps.swift
Comparison.swift
Decoding.swift
Encodings.swift
Formatting.swift
Graphemes.swift
NecessaryEvils.swift
Normaliation.swift
NumberParsing.swift
ScalarProps.swift
Transcoding.swift
UCD.swift
Validation.swift)