# ========================================================================== # Copyright (C) 2022 Intel Corporation # # SPDX-License-Identifier: MIT # ========================================================================== # Build system for middle-layer layer, that includes: # - abstractions used on both hardware and software path, such as: # - wrappers around analytic operations, CRC, etc. (analytics/, other/) # - Huffman Table object implementation and (de)compression flow (compression/) # - allocators (common/) # - etc. # - logic related to submission to the accelerator (accelerator/, dispatcher/, util/) enable_language(CXX) file(GLOB MIDDLE_LAYER_SRC accelerator/*.cpp analytics/*.cpp common/*.cpp compression/*.cpp compression/*/*.cpp compression/*/*/*.cpp dispatcher/*.cpp other/*.cpp util/*.cpp) add_library(middle_layer_lib OBJECT ${MIDDLE_LAYER_SRC}) set_property(GLOBAL APPEND PROPERTY QPL_LIB_DEPS $) if (WIN32) modify_standard_language_flag(LANGUAGE_NAME "CXX" FLAG_NAME "/GR" NEW_FLAG_VALUE "-") endif () target_compile_options(middle_layer_lib PRIVATE $<$:${QPL_LINUX_TOOLCHAIN_REQUIRED_FLAGS}; $<$:-O3;-U_FORTIFY_SOURCE;-D_FORTIFY_SOURCE=2>> PRIVATE $<$:${QPL_LINUX_TOOLCHAIN_DYNAMIC_LIBRARY_FLAGS}> PRIVATE $<$:${QPL_LINUX_TOOLCHAIN_CPP_EMBEDDED_FLAGS}> PRIVATE $<$:${QPL_WINDOWS_TOOLCHAIN_REQUIRED_FLAGS}; ${QPL_WINDOWS_TOOLCHAIN_DYNAMIC_LIBRARY_FLAGS} $<$:-O2>> PRIVATE $<$:${QPL_WINDOWS_TOOLCHAIN_CPP_EMBEDDED_FLAGS}>) if (CMAKE_C_COMPILER_ID STREQUAL "Clang") target_link_options(middle_layer_lib PRIVATE ${QPL_LINUX_TOOLCHAIN_DYNAMIC_LIBRARY_FLAGS}) endif () target_compile_definitions(middle_layer_lib PUBLIC $<$:_ENABLE_EXTENDED_ALIGNED_STORAGE> PUBLIC $<$:LOG_HW_INIT> PUBLIC $<$:QPL_EXPERIMENTAL_LOG_IAA> PUBLIC $<$:QPL_EFFICIENT_WAIT> PUBLIC QPL_BADARG_CHECK PUBLIC $<$:DYNAMIC_LOADING_LIBACCEL_CONFIG>) set_target_properties(middle_layer_lib PROPERTIES CXX_STANDARD 17 CXX_VISIBILITY_PRESET hidden) target_include_directories(middle_layer_lib PUBLIC $ PUBLIC $ PRIVATE $ PUBLIC $ PUBLIC $ PUBLIC $) target_compile_definitions(middle_layer_lib PUBLIC -DQPL_LIB) if ("${CMAKE_VERSION}" VERSION_GREATER "3.19") message(STATUS "Performing Test HAVE_CXX_KNOWS_WAITPKG") set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) try_compile( HAVE_CXX_KNOWS_WAITPKG "${CMAKE_CURRENT_BINARY_DIR}/test_compile_waitpkg" "${CMAKE_CURRENT_SOURCE_DIR}/util/awaiter.cpp" CXX_STANDARD 17 COMPILE_DEFINITIONS "-DHAVE_CXX_KNOWS_WAITPKG" CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${CMAKE_SOURCE_DIR}/sources/core-iaa/include" ) if(HAVE_CXX_KNOWS_WAITPKG) target_compile_definitions(middle_layer_lib PUBLIC -DHAVE_CXX_KNOWS_WAITPKG) endif() endif () if(HAVE_CXX_KNOWS_WAITPKG) message(STATUS "Performing Test HAVE_CXX_KNOWS_WAITPKG - success") else() message(STATUS "Performing Test HAVE_CXX_KNOWS_WAITPKG - failure") endif()