1# Copyright 2017 Google Inc. All rights reserved. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15add_library(protobuf-mutator-libfuzzer 16 libfuzzer_mutator.cc 17 libfuzzer_macro.cc) 18target_link_libraries(protobuf-mutator-libfuzzer 19 protobuf-mutator 20 ${PROTOBUF_LIBRARIES}) 21set_target_properties(protobuf-mutator-libfuzzer PROPERTIES 22 COMPILE_FLAGS "${NO_FUZZING_FLAGS}" 23 SOVERSION 0) 24 25install(TARGETS protobuf-mutator-libfuzzer 26 EXPORT libprotobuf-mutatorTargets 27 ARCHIVE DESTINATION ${LIB_DIR} 28 LIBRARY DESTINATION ${LIB_DIR} 29 INCLUDES DESTINATION include/libprotobuf-mutator include/libprotobuf-mutator/src) 30 31if (LIB_PROTO_MUTATOR_TESTING) 32 add_executable(libfuzzer_test 33 libfuzzer_test.cc) 34 target_link_libraries(libfuzzer_test 35 protobuf-mutator 36 protobuf-mutator-libfuzzer 37 mutator-test-proto 38 ${GTEST_BOTH_LIBRARIES} 39 ${CMAKE_THREAD_LIBS_INIT}) 40 add_test(test.protobuf_libfuzzer_test libfuzzer_test --gtest_color=yes AUTO) 41 add_dependencies(check libfuzzer_test) 42endif() 43