1# Copyright (c) Facebook, Inc. 2# Licensed under the Apache License, Version 2.0 (the "License") 3 4include_directories(${PROJECT_BINARY_DIR}/src/cc) 5include_directories(${PROJECT_SOURCE_DIR}/src/cc) 6include_directories(${PROJECT_SOURCE_DIR}/src/cc/api) 7include_directories(${LLVM_INCLUDE_DIRS}) 8 9if (CMAKE_USE_LIBBPF_PACKAGE AND LIBBPF_FOUND) 10include_directories(${PROJECT_SOURCE_DIR}/src/cc/compat) 11else() 12include_directories(${PROJECT_SOURCE_DIR}/src/cc/libbpf/include/uapi) 13endif() 14 15set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") 16set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") 17 18option(INSTALL_CPP_EXAMPLES "Install C++ examples. Those binaries are statically linked and can take plenty of disk space" OFF) 19 20file(GLOB EXAMPLES *.cc) 21foreach(EXAMPLE ${EXAMPLES}) 22 get_filename_component(NAME ${EXAMPLE} NAME_WE) 23 add_executable(${NAME} ${EXAMPLE}) 24 25 if(NOT CMAKE_USE_LIBBPF_PACKAGE) 26 target_link_libraries(${NAME} bcc-static) 27 else() 28 target_link_libraries(${NAME} bcc-shared) 29 endif() 30 31 if(INSTALL_CPP_EXAMPLES) 32 install (TARGETS ${NAME} DESTINATION share/bcc/examples/cpp) 33 endif(INSTALL_CPP_EXAMPLES) 34endforeach() 35 36add_subdirectory(pyperf) 37