1cmake_minimum_required(VERSION 3.4.1) 2 3message( STATUS "A CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}") 4 5set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -Werror" ) 6set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D _LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -Os -fPIC" ) 7set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti" ) 8set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGOOGLE_PROTOBUF_NO_RTTI -DHAVE_PTHREAD") 9 10set(ANDROID_GTEST_DIR "../../../external/googletest") 11add_subdirectory("${ANDROID_GTEST_DIR}/googletest" 12 googletest-build 13) 14 15include("../../src/protobuf/protobuf.cmake") 16 17# Save the generation dir as it gets overwritten when we add_subdirectory tuningfork 18set(PGENS_DIR "${PROTO_GENS_DIR}") 19 20protobuf_generate_full_cpp( ${CMAKE_CURRENT_SOURCE_DIR}/proto 21 proto/tuningfork.proto 22 proto/tuningfork_clearcut_log.proto 23 proto/dev_tuningfork.proto 24) 25 26message( STATUS "B CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}") 27add_subdirectory("../../src/tuningfork" 28 tuningfork-build 29) 30 31include_directories( 32 "${ANDROID_GTEST_DIR}/googletest/include" 33 ../../src 34 ../../src/common 35 ../../include 36 ../../../external/nanopb-c 37 ${PGENS_DIR} 38 ${PROTOBUF_SRC_DIR} 39 ${PROTOBUF_SRC_DIR}/.. 40) 41 42add_executable(tuningfork_test 43 main.cpp 44 histogram_test.cpp 45 tuningfork_test.cpp 46 annotation_test.cpp 47 ${PGENS_DIR}/full/dev_tuningfork.pb.cc 48 ${PGENS_DIR}/full/tuningfork.pb.cc 49 ${PGENS_DIR}/full/tuningfork_clearcut_log.pb.cc 50) 51add_library( protobuf-static 52 STATIC ${PROTOBUF_LITE_SRCS} ${PROTOBUF_SRCS} 53) 54target_compile_options(protobuf-static PUBLIC "-Wno-tautological-constant-compare" "-Wno-enum-compare-switch") 55 56target_link_libraries(tuningfork_test 57 gtest 58 tuningfork_static 59 protobuf-static 60 log 61) 62