1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
#=========================== begin_copyright_notice ============================
#
# Copyright (C) 2021 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
#============================ end_copyright_notice =============================
if(IGC_METRICS)
find_package(Git REQUIRED)
set(IGC_METRICS_SOURCE_CODE "${IGC_OPTION__OUTPUT_DIR}/Metrics")
set(protobuf_generate_PROTOC_OUT_DIR "${IGC_METRICS_SOURCE_CODE}")
file(MAKE_DIRECTORY ${protobuf_generate_PROTOC_OUT_DIR})
set(IGC_METRICS_PROTO_SCHEMA "Metrics/proto_schema")
# For protobuf compiler setup
set(Protobuf_IMPORT_DIRS "${IGC_METRICS_PROTO_SCHEMA}")
file(GLOB IGC_METRICS_PROTO_SCHEMAS ${IGC_METRICS_PROTO_SCHEMA}/*.proto)
message(STATUS "IGC\\Metrics - Preparing data template for Metrics")
foreach(PROTO_SCHEMA ${IGC_METRICS_PROTO_SCHEMAS})
protobuf_generate_imm_cpp(IGC_METRICS_SRC IGC_METRICS_HDR ${PROTO_SCHEMA})
list(APPEND IGC_METRICS_SRCS ${IGC_METRICS_SRC})
list(APPEND IGC_METRICS_HDRS ${IGC_METRICS_HDR})
endforeach()
add_custom_target(igc_metric_proto_sources_generator
DEPENDS ${IGC_METRICS_SRC} ${IGC_METRICS_SRC}
SOURCES ${IGC_METRICS_PROTO_SCHEMAS})
get_target_property(PROTOBUF_HDRS protobuf::libprotobuf INTERFACE_INCLUDE_DIRECTORIES)
include_directories(${PROTOBUF_HDRS})
foreach(IGC_METRICS_SRC ${IGC_METRICS_SRCS})
if(MSVC)
set_source_files_properties(${IGC_METRICS_SRC} PROPERTIES COMPILE_FLAGS /wd4244)
else()
set_source_files_properties(${IGC_METRICS_SRC} PROPERTIES COMPILE_FLAGS -Wno-error)
endif()
endforeach()
file(GLOB_RECURSE _proto_files "${CMAKE_CURRENT_LIST_DIR}/proto_schema/*.proto")
set(IGCMetricsVerFile "${IGC_METRICS_SOURCE_CODE}/IGCMetricsVer.h")
add_custom_command(
OUTPUT ${IGCMetricsVerFile}
COMMAND ${CMAKE_COMMAND}
"-DIGCMetricsVerFile=${IGCMetricsVerFile}"
-P "${CMAKE_CURRENT_LIST_DIR}/create_metrics_version_header.cmake"
COMMENT "Creating a metrics version header"
DEPENDS ${_proto_files}
WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}"
)
add_custom_target(igc_metric_version_header_generator
DEPENDS ${_proto_files}
SOURCES "${CMAKE_CURRENT_LIST_DIR}/create_metrics_version_header.cmake"
)
list(APPEND IGC_METRICS_HDRS ${IGCMetricsVerFile})
add_compile_definitions(IGC_METRICS__PROTOBUF_ATTACHED)
else()
message(STATUS "IGC\\Metrics - metrics are disabled")
set(IGC_METRICS_SRCS "")
set(IGC_METRICS_HDRS "")
endif()
list(APPEND IGC_METRICS_SRCS "Metrics/IGCMetric.cpp")
list(APPEND IGC_METRICS_SRCS "Metrics/IGCMetricImpl.cpp")
list(APPEND IGC_METRICS_HDRS "Metrics/IGCMetric.h")
list(APPEND IGC_METRICS_HDRS "Metrics/IGCMetricImpl.h")
add_library(igc_metric STATIC ${IGC_METRICS_SRCS} ${IGC_METRICS_HDRS})
add_dependencies(igc_metric intrinsics_gen)
add_dependencies(igc_metric ${IGC_BUILD__PROJ__GenISAIntrinsics})
if(IGC_METRICS)
target_link_libraries(igc_metric protobuf::libprotobuf)
endif()
|