|
HEBench
|
# Copyright (C) 2021 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
project(generic_wl_backend)
set(generic_wl_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/src/generic_wl_engine.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/src/generic_wl_benchmark.cpp"
)
set(generic_wl_HEADERS
"${CMAKE_CURRENT_SOURCE_DIR}/include/generic_wl_engine.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/generic_wl_benchmark.h"
)
add_library(${PROJECT_NAME} SHARED ${generic_wl_SOURCES} ${generic_wl_HEADERS})
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
# find the hebench_cpp archive
set(HEBENCH_API_BRIDGE_INSTAL_DIR "/install/directory/for/api_bridge")
set(HEBENCH_API_INCLUDE_DIR "${HEBENCH_API_BRIDGE_INSTAL_DIR}/include")
target_include_directories(${PROJECT_NAME} PRIVATE ${HEBENCH_API_INCLUDE_DIR}) # point to include for api_bridge
find_library(hebench_cpp_FOUND NAMES libhebench_cpp.a HINTS "${HEBENCH_API_BRIDGE_INSTAL_DIR}/lib")
if(hebench_cpp_FOUND)
add_library(hebench_cpp UNKNOWN IMPORTED)
# populate the found library with its properties
set_property(TARGET hebench_cpp PROPERTY IMPORTED_LOCATION ${hebench_cpp_FOUND})
set_property(TARGET hebench_cpp APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${HEBENCH_API_INCLUDE_DIR})
message(STATUS "libhebench_cpp.a found")
else()
message(FATAL_ERROR "libhebench_cpp.a not found.")
endif()
# link found library
target_link_libraries(${PROJECT_NAME} PUBLIC "-Wl,--whole-archive" hebench_cpp "-Wl,--no-whole-archive")
# extra compile options
target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra) # show warnings
# install options
include(GNUInstallDirs)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
install(TARGETS ${PROJECT_NAME} DESTINATION lib)