OSDN Git Service

[CMake] Refactor iOS simulator/device test configuration generation code for LibFuzzer.
authorDan Liew <dan@su-root.co.uk>
Thu, 23 Jan 2020 00:26:45 +0000 (16:26 -0800)
committerDan Liew <dan@su-root.co.uk>
Thu, 23 Jan 2020 20:44:00 +0000 (12:44 -0800)
commit9d9b470e69acfca321f005490cfba14fe5247229
tree6e04138db38779e6493baf841c10ba8bc9804723
parent06569361d0185c130299d87e4d32637fd5ada34b
[CMake] Refactor iOS simulator/device test configuration generation code for LibFuzzer.

Summary:
In order to do this `FUZZER_SUPPORTED_OS` had to be pulled out of
`lib/fuzzer/CMakeLists.txt` and into the main config so we can use it
from the `test/fuzzer/CMakeList.txt`. `FUZZER_SUPPORTED_OS` currently
has the same value of `SANITIZER_COMMON_SUPPORTED_OS` which preserves
the existing behaviour but this allows us in the future to adjust the
supported platforms independent of `SANITIZER_COMMON_SUPPORTED_OS`. This
mirrors the other sanitizers.

For non-Apple platforms `FUZZER_SUPPORTED_OS` is not defined and
surprisingly this was the behaviour before this patch because
`SANITIZER_COMMON_SUPPORTED_OS` was actually empty. This appears to
not matter right now because the functions that take an `OS` as an
argument seem to ignore it on non-Apple platforms.

While this change tries to be NFC it is technically not because we
now generate an iossim config whereas previously we didn't. This seems
like the right thing to do because the build system was configured to
compile LibFuzzer for iossim but previously we weren't generating a lit
test config for it. The device/simulator testing configs don't run by
default anyway so this shouldn't break testing.

This change relies on the get_capitalized_apple_platform() function
added in a previous commit.

rdar://problem/58798733

Reviewers: kubamracek, yln

Subscribers: mgorny, #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D73243
compiler-rt/cmake/config-ix.cmake
compiler-rt/lib/fuzzer/CMakeLists.txt
compiler-rt/test/fuzzer/CMakeLists.txt