2019-05-13 18:53:40 +08:00
|
|
|
#
|
2021-04-30 00:53:41 +08:00
|
|
|
# Copyright (C) 2019-2021 Intel Corporation
|
2019-05-13 18:53:40 +08:00
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
#
|
|
|
|
|
2020-11-19 17:12:40 +08:00
|
|
|
set(SHARED_SOURCE_PROJECTS_FOLDER "neo shared")
|
2020-03-11 21:03:26 +08:00
|
|
|
if(NOT DEFINED NEO_SHARED_RELEASE_LIB_NAME)
|
2020-11-19 17:12:40 +08:00
|
|
|
MESSAGE(FATAL_ERROR "NEO Shared library name undefined!")
|
2020-01-30 00:43:20 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
include(enable_gens.cmake)
|
|
|
|
|
2020-03-11 21:03:26 +08:00
|
|
|
function(generate_shared_lib LIB_NAME MOCKABLE)
|
2020-01-16 00:02:47 +08:00
|
|
|
add_library(${LIB_NAME} STATIC
|
2020-08-19 18:18:18 +08:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/enable_gens.cmake
|
|
|
|
${CORE_SOURCES}
|
2020-01-16 00:02:47 +08:00
|
|
|
)
|
|
|
|
if(${MOCKABLE})
|
|
|
|
target_compile_definitions(${LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=virtual)
|
|
|
|
else()
|
|
|
|
target_compile_definitions(${LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
list(APPEND LIB_FLAGS_DEFINITIONS ${SUPPORTED_GEN_FLAGS_DEFINITONS})
|
2020-01-30 00:43:20 +08:00
|
|
|
|
2020-02-25 20:31:00 +08:00
|
|
|
set_property(TARGET ${LIB_NAME} APPEND_STRING PROPERTY COMPILE_FLAGS ${ASAN_FLAGS} ${TSAN_FLAGS})
|
2020-11-19 17:12:40 +08:00
|
|
|
set_target_properties(${LIB_NAME} PROPERTIES FOLDER "${SHARED_SOURCE_PROJECTS_FOLDER}")
|
2020-02-25 20:31:00 +08:00
|
|
|
target_compile_definitions(${LIB_NAME} PUBLIC PUBLIC GMM_LIB_DLL ${LIB_FLAGS_DEFINITIONS} DEFAULT_PLATFORM=${DEFAULT_SUPPORTED_PLATFORM} PRIVATE OGL=1)
|
2021-04-30 00:53:41 +08:00
|
|
|
target_compile_definitions(${LIB_NAME} PUBLIC ${NEO_CORE_COMPILE_DEFS} ${NEO__IGC_COMPILE_DEFINITIONS})
|
2020-01-30 00:43:20 +08:00
|
|
|
|
2020-01-16 00:02:47 +08:00
|
|
|
target_include_directories(${LIB_NAME} PUBLIC
|
2020-08-19 18:18:18 +08:00
|
|
|
${KMDAF_HEADERS_DIR}
|
|
|
|
${ENGINE_NODE_DIR}
|
|
|
|
${NEO__GMM_INCLUDE_DIR}
|
|
|
|
${CIF_BASE_DIR}
|
|
|
|
${IGC_OCL_ADAPTOR_DIR}
|
|
|
|
${NEO__IGC_INCLUDE_DIR}
|
|
|
|
${KHRONOS_HEADERS_DIR}
|
|
|
|
${SOURCE_LEVEL_DEBUGGER_HEADERS_DIR}
|
2021-09-23 17:03:22 +08:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/os_interface/create_command_stream_receiver_${DRIVER_MODEL}
|
2021-06-05 18:09:29 +08:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/direct_submission/create_direct_submission_${DRIVER_MODEL}
|
2020-01-16 00:02:47 +08:00
|
|
|
)
|
2020-01-30 00:43:20 +08:00
|
|
|
|
2021-05-30 22:42:47 +08:00
|
|
|
if(WIN32 OR NOT DISABLE_WDDM_LINUX)
|
2020-11-11 22:40:47 +08:00
|
|
|
target_include_directories(${LIB_NAME} PUBLIC ${WDK_INCLUDE_PATHS})
|
|
|
|
endif()
|
|
|
|
|
2020-01-16 00:02:47 +08:00
|
|
|
if(WIN32)
|
2020-01-30 00:43:20 +08:00
|
|
|
target_include_directories(${LIB_NAME} PUBLIC
|
2020-08-19 18:18:18 +08:00
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/os_interface/windows
|
2020-01-30 00:43:20 +08:00
|
|
|
)
|
2020-01-16 00:02:47 +08:00
|
|
|
else()
|
|
|
|
target_include_directories(${LIB_NAME} PUBLIC
|
2020-08-19 18:18:18 +08:00
|
|
|
${I915_INCLUDES_DIR}
|
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/os_interface/linux
|
2020-01-16 00:02:47 +08:00
|
|
|
)
|
|
|
|
endif()
|
2020-02-25 20:31:00 +08:00
|
|
|
|
2020-01-16 00:02:47 +08:00
|
|
|
create_project_source_tree(${LIB_NAME})
|
2020-10-07 21:09:42 +08:00
|
|
|
|
|
|
|
# Enable SSE4/AVX2 options for files that need them
|
|
|
|
if(MSVC)
|
2021-09-03 05:25:03 +08:00
|
|
|
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/helpers/${NEO_TARGET_PROCESSOR}/local_id_gen_avx2.cpp PROPERTIES COMPILE_FLAGS /arch:AVX2)
|
2020-10-07 21:09:42 +08:00
|
|
|
else()
|
2021-09-03 05:25:03 +08:00
|
|
|
if(COMPILER_SUPPORTS_AVX2)
|
|
|
|
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/helpers/${NEO_TARGET_PROCESSOR}/local_id_gen_avx2.cpp PROPERTIES COMPILE_FLAGS -mavx2)
|
|
|
|
endif()
|
|
|
|
if(COMPILER_SUPPORTS_SSE42)
|
|
|
|
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/helpers/local_id_gen_sse4.cpp PROPERTIES COMPILE_FLAGS -msse4.2)
|
|
|
|
endif()
|
2020-10-07 21:09:42 +08:00
|
|
|
endif()
|
|
|
|
|
2020-01-30 00:43:20 +08:00
|
|
|
endfunction()
|
|
|
|
|
2020-02-25 20:31:00 +08:00
|
|
|
set(NEO_CORE_COMPILE_DEFS "")
|
2020-01-30 00:43:20 +08:00
|
|
|
set(CORE_SOURCES ${CORE_SRCS_GENX_ALL_BASE})
|
|
|
|
|
2020-02-25 20:31:00 +08:00
|
|
|
add_subdirectories()
|
|
|
|
|
2021-05-30 22:42:47 +08:00
|
|
|
if(WIN32 OR NOT DISABLE_WDDM_LINUX)
|
2020-01-16 00:02:47 +08:00
|
|
|
list(APPEND CORE_SOURCES ${CORE_SRCS_GENX_ALL_WINDOWS})
|
2021-05-30 22:42:47 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if(NOT WIN32)
|
2020-01-16 00:02:47 +08:00
|
|
|
list(APPEND CORE_SOURCES ${CORE_SRCS_GENX_ALL_LINUX})
|
|
|
|
endif()
|
|
|
|
|
2020-06-02 23:04:11 +08:00
|
|
|
macro(macro_for_each_gen)
|
|
|
|
append_sources_from_properties(CORE_SOURCES
|
2020-08-19 18:18:18 +08:00
|
|
|
SHARED_SRCS_ADDITIONAL_FILES_${GEN_TYPE}
|
2020-06-02 23:04:11 +08:00
|
|
|
)
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
apply_macro_for_each_gen("SUPPORTED")
|
|
|
|
|
2020-01-31 20:47:11 +08:00
|
|
|
append_sources_from_properties(CORE_SOURCES
|
2021-07-21 16:47:43 +08:00
|
|
|
NEO_CORE_AIL
|
2020-10-16 18:10:52 +08:00
|
|
|
NEO_CORE_AUB
|
|
|
|
NEO_CORE_AUB_MEM_DUMP
|
2020-08-19 18:18:18 +08:00
|
|
|
NEO_CORE_BUILT_INS
|
|
|
|
NEO_CORE_COMMANDS
|
|
|
|
NEO_CORE_COMMAND_CONTAINER
|
|
|
|
NEO_CORE_COMMAND_ENCODERS
|
2020-10-16 18:10:52 +08:00
|
|
|
NEO_CORE_COMMAND_STREAM
|
2020-08-19 18:18:18 +08:00
|
|
|
NEO_CORE_DEBUGGER
|
2020-10-16 18:10:52 +08:00
|
|
|
NEO_CORE_DEBUG_SETTINGS
|
2020-08-19 18:18:18 +08:00
|
|
|
NEO_CORE_DEVICE
|
|
|
|
NEO_CORE_DIRECT_SUBMISSION
|
|
|
|
NEO_CORE_DIRECT_SUBMISSION_DISPATCHERS
|
|
|
|
NEO_CORE_EXECUTION_ENVIRONMENT
|
|
|
|
NEO_CORE_GEN_COMMON
|
|
|
|
NEO_CORE_GMM_HELPER
|
|
|
|
NEO_CORE_HELPERS
|
|
|
|
NEO_CORE_IMAGE
|
|
|
|
NEO_CORE_INDIRECT_HEAP
|
|
|
|
NEO_CORE_KERNEL
|
|
|
|
NEO_CORE_MEMORY_MANAGER
|
|
|
|
NEO_CORE_MEMORY_PROPERTIES
|
|
|
|
NEO_CORE_OS_INTERFACE
|
|
|
|
NEO_CORE_PAGE_FAULT_MANAGER
|
|
|
|
NEO_CORE_PROGRAM
|
|
|
|
NEO_CORE_SKU_INFO_BASE
|
|
|
|
NEO_CORE_SRCS_BUILT_INS
|
|
|
|
NEO_CORE_SRCS_BUILT_INS_OPS
|
2020-10-16 18:10:52 +08:00
|
|
|
NEO_CORE_SRCS_BUILT_IN_KERNELS
|
2020-08-19 18:18:18 +08:00
|
|
|
NEO_CORE_SRCS_SOURCE_LEVEL_DEBUGGER
|
2020-10-16 18:10:52 +08:00
|
|
|
NEO_CORE_TBX
|
2020-08-19 18:18:18 +08:00
|
|
|
NEO_CORE_UTILITIES
|
2020-12-21 18:42:40 +08:00
|
|
|
NEO_DEVICE_BINARY_FORMAT
|
2020-08-19 18:18:18 +08:00
|
|
|
NEO_UNIFIED_MEMORY
|
2020-01-31 20:47:11 +08:00
|
|
|
)
|
2020-01-30 00:43:20 +08:00
|
|
|
|
2020-01-16 00:02:47 +08:00
|
|
|
if(WIN32)
|
|
|
|
append_sources_from_properties(CORE_SOURCES
|
2020-08-19 18:18:18 +08:00
|
|
|
NEO_CORE_GMM_HELPER_WINDOWS
|
2021-04-24 00:43:48 +08:00
|
|
|
NEO_CORE_HELPERS_GMM_CALLBACKS_WINDOWS
|
2020-08-19 18:18:18 +08:00
|
|
|
NEO_CORE_DIRECT_SUBMISSION_WINDOWS
|
|
|
|
NEO_CORE_OS_INTERFACE_WINDOWS
|
2021-05-19 06:30:46 +08:00
|
|
|
NEO_CORE_OS_INTERFACE_WDDM
|
2020-08-19 18:18:18 +08:00
|
|
|
NEO_CORE_PAGE_FAULT_MANAGER_WINDOWS
|
|
|
|
NEO_CORE_SKU_INFO_WINDOWS
|
|
|
|
NEO_CORE_SRCS_HELPERS_WINDOWS
|
|
|
|
NEO_CORE_UTILITIES_WINDOWS
|
2021-07-11 08:12:15 +08:00
|
|
|
NEO_CORE_EXECUTION_ENVIRONMENT_WINDOWS
|
2021-07-21 16:47:43 +08:00
|
|
|
NEO_CORE_AIL_WINDOWS
|
2020-01-16 00:02:47 +08:00
|
|
|
)
|
|
|
|
else()
|
|
|
|
append_sources_from_properties(CORE_SOURCES
|
2020-08-19 18:18:18 +08:00
|
|
|
NEO_CORE_DIRECT_SUBMISSION_LINUX
|
|
|
|
NEO_CORE_OS_INTERFACE_LINUX
|
|
|
|
NEO_CORE_PAGE_FAULT_MANAGER_LINUX
|
|
|
|
NEO_CORE_UTILITIES_LINUX
|
2021-07-11 08:12:15 +08:00
|
|
|
NEO_CORE_EXECUTION_ENVIRONMENT_LINUX
|
2021-07-21 16:47:43 +08:00
|
|
|
NEO_CORE_AIL_LINUX
|
2020-01-16 00:02:47 +08:00
|
|
|
)
|
2021-05-30 22:42:47 +08:00
|
|
|
if(NOT DISABLE_WDDM_LINUX)
|
|
|
|
append_sources_from_properties(CORE_SOURCES
|
2021-04-24 00:43:48 +08:00
|
|
|
NEO_CORE_HELPERS_GMM_CALLBACKS_WINDOWS
|
2021-05-30 22:42:47 +08:00
|
|
|
NEO_CORE_SRCS_HELPERS_WINDOWS
|
|
|
|
NEO_CORE_GMM_HELPER_WINDOWS
|
|
|
|
NEO_CORE_OS_INTERFACE_WDDM
|
|
|
|
NEO_CORE_SKU_INFO_WINDOWS
|
|
|
|
)
|
|
|
|
endif()
|
2020-01-16 00:02:47 +08:00
|
|
|
endif()
|
|
|
|
|
2020-02-25 20:31:00 +08:00
|
|
|
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${BRANCH_TYPE}/core_sources.cmake)
|
|
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/${BRANCH_TYPE}/core_sources.cmake)
|
|
|
|
endif()
|
|
|
|
|
2020-01-30 00:43:20 +08:00
|
|
|
if(NOT MSVC)
|
2020-08-19 18:18:18 +08:00
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -fPIC")
|
2020-01-30 00:43:20 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if(DONT_CARE_OF_VIRTUALS)
|
2020-03-11 21:03:26 +08:00
|
|
|
generate_shared_lib(${NEO_SHARED_RELEASE_LIB_NAME} TRUE)
|
2020-01-30 00:43:20 +08:00
|
|
|
else()
|
2020-03-11 21:03:26 +08:00
|
|
|
generate_shared_lib(${NEO_SHARED_RELEASE_LIB_NAME} FALSE)
|
2020-01-16 00:02:47 +08:00
|
|
|
if(NOT SKIP_UNIT_TESTS)
|
2020-03-11 21:03:26 +08:00
|
|
|
generate_shared_lib(${NEO_SHARED_MOCKABLE_LIB_NAME} TRUE)
|
2020-01-16 00:02:47 +08:00
|
|
|
endif()
|
2020-01-30 00:43:20 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
set_property(GLOBAL PROPERTY NEO_CORE_SRCS_LINK ${CORE_SRCS_LINK})
|