mirror of
https://github.com/RPCS3/llvm.git
synced 2025-05-16 10:26:23 +00:00

Summary: This consists of four main parts: - an type json::Expr representing JSON values of dynamic kind, which can be composed, inspected, and modified - a JSON parser from string -> json::Expr - a JSON printer from json::Expr -> string, with optional pretty-printing - a convention for mapping json::Expr <=> native types (fromJSON/toJSON) Mapping functions are provided for primitives (e.g. int, vector) and the ObjectMapper helper helps implement fromJSON for struct/object types. Based on clangd's usage, a couple of places I'd appreciate review attention: - fromJSON returns only bool. A richer error-signaling mechanism may be useful to provide useful messages, or let recursive fromJSONs (containers/structs) do careful error recovery. - should json::obj be always explicitly written (like json::ary) - there's no streaming parse API. I suspect there are some simple wins like a callback API where the document is a long array, and each element is small. But this can probably be bolted on easily when we see the need. Reviewers: bkramer, labath Subscribers: mgorny, ilya-biryukov, ioeric, MaskRay, llvm-commits Differential Revision: https://reviews.llvm.org/D45753 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@336534 91177308-0d34-0410-b5e6-96231b3b80d8
88 lines
1.9 KiB
CMake
88 lines
1.9 KiB
CMake
set(LLVM_LINK_COMPONENTS
|
|
Support
|
|
)
|
|
|
|
add_llvm_unittest(SupportTests
|
|
AlignOfTest.cpp
|
|
AllocatorTest.cpp
|
|
ARMAttributeParser.cpp
|
|
ArrayRecyclerTest.cpp
|
|
BinaryStreamTest.cpp
|
|
BlockFrequencyTest.cpp
|
|
BranchProbabilityTest.cpp
|
|
CachePruningTest.cpp
|
|
CrashRecoveryTest.cpp
|
|
Casting.cpp
|
|
CheckedArithmeticTest.cpp
|
|
Chrono.cpp
|
|
CommandLineTest.cpp
|
|
CompressionTest.cpp
|
|
ConvertUTFTest.cpp
|
|
DataExtractorTest.cpp
|
|
DebugTest.cpp
|
|
DJBTest.cpp
|
|
EndianStreamTest.cpp
|
|
EndianTest.cpp
|
|
ErrnoTest.cpp
|
|
ErrorOrTest.cpp
|
|
ErrorTest.cpp
|
|
FileOutputBufferTest.cpp
|
|
FormatVariadicTest.cpp
|
|
GlobPatternTest.cpp
|
|
Host.cpp
|
|
JSONTest.cpp
|
|
LEB128Test.cpp
|
|
LineIteratorTest.cpp
|
|
LockFileManagerTest.cpp
|
|
MD5Test.cpp
|
|
ManagedStatic.cpp
|
|
MathExtrasTest.cpp
|
|
MemoryBufferTest.cpp
|
|
MemoryTest.cpp
|
|
NativeFormatTests.cpp
|
|
ParallelTest.cpp
|
|
Path.cpp
|
|
ProcessTest.cpp
|
|
ProgramTest.cpp
|
|
RegexTest.cpp
|
|
ReverseIterationTest.cpp
|
|
ReplaceFileTest.cpp
|
|
ScaledNumberTest.cpp
|
|
SourceMgrTest.cpp
|
|
SpecialCaseListTest.cpp
|
|
StringPool.cpp
|
|
SwapByteOrderTest.cpp
|
|
TarWriterTest.cpp
|
|
TargetParserTest.cpp
|
|
TaskQueueTest.cpp
|
|
ThreadLocalTest.cpp
|
|
ThreadPool.cpp
|
|
Threading.cpp
|
|
TimerTest.cpp
|
|
TypeNameTest.cpp
|
|
TypeTraitsTest.cpp
|
|
TrailingObjectsTest.cpp
|
|
TrigramIndexTest.cpp
|
|
UnicodeTest.cpp
|
|
VersionTupleTest.cpp
|
|
YAMLIOTest.cpp
|
|
YAMLParserTest.cpp
|
|
formatted_raw_ostream_test.cpp
|
|
raw_ostream_test.cpp
|
|
raw_pwrite_stream_test.cpp
|
|
raw_sha1_ostream_test.cpp
|
|
xxhashTest.cpp
|
|
)
|
|
|
|
target_link_libraries(SupportTests PRIVATE LLVMTestingSupport)
|
|
|
|
# Disable all warning for AlignOfTest.cpp,
|
|
# as it does things intentionally, and there is no reliable way of
|
|
# disabling all warnings for all the compilers by using pragmas.
|
|
set_source_files_properties(AlignOfTest.cpp PROPERTIES COMPILE_FLAGS -w)
|
|
|
|
# ManagedStatic.cpp uses <pthread>.
|
|
target_link_libraries(SupportTests PRIVATE LLVMTestingSupport ${LLVM_PTHREAD_LIB})
|
|
|
|
add_subdirectory(DynamicLibrary)
|