mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-18 13:54:58 +08:00
CMake cleanup: move opencl logic to opencl folder
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
aaa5e6d358
commit
d2a4af9d9d
@@ -127,6 +127,12 @@ if(NOT DEFINED NEO_TARGET_PROCESSOR)
|
||||
message(FATAL_ERROR "Unsupported target processor: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED NEO_BUILD_WITH_OCL)
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/opencl/CMakeLists.txt)
|
||||
set(NEO_BUILD_WITH_OCL TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED BUILD_WITH_L0)
|
||||
if("${NEO_BITS}" STREQUAL "64")
|
||||
set(BUILD_WITH_L0 TRUE)
|
||||
@@ -199,14 +205,6 @@ endif("${BUILD_TYPE_lower}" STREQUAL "releaseinternal")
|
||||
|
||||
message(STATUS "${CMAKE_BUILD_TYPE} build configuration")
|
||||
|
||||
set(NEO_RUNTIME_SUB_DIR "opencl/source")
|
||||
set(NEO_RUNTIME_SOURCE_DIR "${NEO_SOURCE_DIR}/${NEO_RUNTIME_SUB_DIR}")
|
||||
|
||||
set(NEO_RUNTIME_TESTS_SUB_DIR "opencl/test/unit_test")
|
||||
set(NEO_RUNTIME_TESTS_DIR "${NEO_SOURCE_DIR}/${NEO_RUNTIME_TESTS_SUB_DIR}")
|
||||
set(NEO_OPENCL_BLACK_BOX_TESTS_SUB_DIR "opencl/test/black_box_test")
|
||||
set(NEO_OPENCL_BLACK_BOX_TESTS_DIR "${NEO_SOURCE_DIR}/${NEO_OPENCL_BLACK_BOX_TESTS_SUB_DIR}")
|
||||
|
||||
# Set the ocloc directory
|
||||
if(NOT DEFINED OCLOC_DIRECTORY)
|
||||
set(OCLOC_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/shared/offline_compiler)
|
||||
@@ -779,69 +777,11 @@ endif()
|
||||
|
||||
add_subdirectory_unique(shared)
|
||||
|
||||
macro(generate_runtime_lib LIB_NAME MOCKABLE GENERATE_EXEC)
|
||||
set(NEO_STATIC_LIB_NAME ${LIB_NAME})
|
||||
set(SHARINGS_ENABLE_LIB_NAME "${LIB_NAME}_sharings_enable")
|
||||
set(GENERATE_EXECUTABLE ${GENERATE_EXEC})
|
||||
|
||||
if(${MOCKABLE})
|
||||
set(NEO_SHARED_LIB ${NEO_SHARED_MOCKABLE_LIB_NAME})
|
||||
else()
|
||||
set(NEO_SHARED_LIB ${NEO_SHARED_RELEASE_LIB_NAME})
|
||||
endif()
|
||||
if(NOT BUILD_WITHOUT_RUNTIME)
|
||||
add_subdirectory(${NEO_RUNTIME_SUB_DIR} "${NEO_BUILD_DIR}/${LIB_NAME}")
|
||||
else()
|
||||
add_subdirectory(${NEO_RUNTIME_SUB_DIR} "${NEO_BUILD_DIR}/${LIB_NAME}" EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
target_compile_definitions(${BUILTINS_SOURCES_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
target_compile_definitions(${BUILTINS_VME_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
target_compile_definitions(${BUILTINS_BINARIES_BINDFUL_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
target_compile_definitions(${BUILTINS_BINARIES_BINDLESS_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
if(TARGET ${BUILTINS_SPIRV_LIB_NAME})
|
||||
target_compile_definitions(${BUILTINS_SPIRV_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
endif()
|
||||
if(TARGET ${SCHEDULER_BINARY_LIB_NAME})
|
||||
target_compile_definitions(${SCHEDULER_BINARY_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
endif()
|
||||
|
||||
if(${MOCKABLE})
|
||||
target_compile_definitions(${LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=virtual)
|
||||
target_compile_definitions(${SHARINGS_ENABLE_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=virtual)
|
||||
else()
|
||||
target_compile_definitions(${LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
target_compile_definitions(${SHARINGS_ENABLE_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
set(NEO_DYNAMIC_LIB_NAME "igdrcl_dll") # single NEO dll
|
||||
set(NEO_DLL_NAME_BASE "igdrcl")
|
||||
|
||||
if(DONT_CARE_OF_VIRTUALS)
|
||||
message(STATUS "All targets will use virtuals")
|
||||
|
||||
set(NEO_RELEASE_LIB_NAME "igdrcl_lib")
|
||||
set(NEO_MOCKABLE_LIB_NAME ${NEO_RELEASE_LIB_NAME})
|
||||
generate_runtime_lib(${NEO_RELEASE_LIB_NAME} TRUE TRUE)
|
||||
if(NEO_BUILD_WITH_OCL)
|
||||
add_subdirectory_unique(opencl)
|
||||
else()
|
||||
set(NEO_RELEASE_LIB_NAME "igdrcl_lib_release") # Used by dll/so
|
||||
generate_runtime_lib(${NEO_RELEASE_LIB_NAME} FALSE TRUE)
|
||||
if(NOT NEO_SKIP_UNIT_TESTS)
|
||||
set(NEO_MOCKABLE_LIB_NAME "igdrcl_lib_mockable") # Used by ULTS
|
||||
generate_runtime_lib(${NEO_MOCKABLE_LIB_NAME} TRUE FALSE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(DEFAULT_TESTED_PLATFORM AND NOT NEO_SKIP_OCL_UNIT_TESTS)
|
||||
add_subdirectory_unique(${NEO_RUNTIME_TESTS_SUB_DIR} ${NEO_BUILD_DIR}/${NEO_RUNTIME_TESTS_SUB_DIR})
|
||||
else()
|
||||
hide_subdir(${NEO_RUNTIME_TESTS_SUB_DIR})
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_WITHOUT_RUNTIME)
|
||||
add_subdirectory_unique(${NEO_OPENCL_BLACK_BOX_TESTS_SUB_DIR})
|
||||
else()
|
||||
hide_subdir(${NEO_OPENCL_BLACK_BOX_TESTS_SUB_DIR})
|
||||
hide_subdir(opencl)
|
||||
set(NEO_SKIP_OCL_UNIT_TESTS TRUE)
|
||||
endif()
|
||||
|
||||
set(DONT_LINK_ELF_STATICALLY TRUE)
|
||||
@@ -859,8 +799,6 @@ configure_file(config.h.in ${NEO_BUILD_DIR}/config.h)
|
||||
configure_file(driver_version.h.in ${NEO_BUILD_DIR}/driver_version.h) # Put Driver version into define
|
||||
configure_file(lib_names.h.in ${NEO_BUILD_DIR}/lib_names.h)
|
||||
|
||||
hide_subdir(${NEO_RUNTIME_SUB_DIR})
|
||||
|
||||
if(BUILD_WITH_L0)
|
||||
add_subdirectory_unique(level_zero)
|
||||
endif()
|
||||
|
||||
@@ -297,7 +297,7 @@ if(BUILD_WITH_L0)
|
||||
)
|
||||
|
||||
get_property(COMPUTE_RUNTIME_DEFINITIONS
|
||||
TARGET ${NEO_RELEASE_LIB_NAME}
|
||||
TARGET ${NEO_SHARED_RELEASE_LIB_NAME}
|
||||
PROPERTY COMPILE_DEFINITIONS
|
||||
)
|
||||
|
||||
@@ -396,7 +396,7 @@ if(BUILD_WITH_L0)
|
||||
)
|
||||
else()
|
||||
get_property(COMPUTE_RUNTIME_DEFINITIONS
|
||||
TARGET ${NEO_RELEASE_LIB_NAME}
|
||||
TARGET ${NEO_SHARED_RELEASE_LIB_NAME}
|
||||
PROPERTY COMPILE_DEFINITIONS
|
||||
)
|
||||
target_compile_definitions(${LIB_NAME}
|
||||
|
||||
55
opencl/CMakeLists.txt
Normal file
55
opencl/CMakeLists.txt
Normal file
@@ -0,0 +1,55 @@
|
||||
#
|
||||
# Copyright (C) 2021 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
|
||||
macro(generate_runtime_lib LIB_NAME MOCKABLE GENERATE_EXEC)
|
||||
set(NEO_STATIC_LIB_NAME ${LIB_NAME})
|
||||
set(SHARINGS_ENABLE_LIB_NAME "${LIB_NAME}_sharings_enable")
|
||||
set(GENERATE_EXECUTABLE ${GENERATE_EXEC})
|
||||
|
||||
if(${MOCKABLE})
|
||||
set(NEO_SHARED_LIB ${NEO_SHARED_MOCKABLE_LIB_NAME})
|
||||
else()
|
||||
set(NEO_SHARED_LIB ${NEO_SHARED_RELEASE_LIB_NAME})
|
||||
endif()
|
||||
if(NOT BUILD_WITHOUT_RUNTIME)
|
||||
add_subdirectory(source "${NEO_BUILD_DIR}/${LIB_NAME}")
|
||||
else()
|
||||
add_subdirectory(source "${NEO_BUILD_DIR}/${LIB_NAME}" EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
target_compile_definitions(${BUILTINS_SOURCES_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
target_compile_definitions(${BUILTINS_VME_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
if(TARGET ${SCHEDULER_BINARY_LIB_NAME})
|
||||
target_compile_definitions(${SCHEDULER_BINARY_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
endif()
|
||||
|
||||
if(${MOCKABLE})
|
||||
target_compile_definitions(${LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=virtual)
|
||||
target_compile_definitions(${SHARINGS_ENABLE_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=virtual)
|
||||
else()
|
||||
target_compile_definitions(${LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
target_compile_definitions(${SHARINGS_ENABLE_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
set(NEO_DYNAMIC_LIB_NAME "igdrcl_dll") # single NEO dll
|
||||
set(NEO_DLL_NAME_BASE "igdrcl")
|
||||
|
||||
if(DONT_CARE_OF_VIRTUALS)
|
||||
message(STATUS "All targets will use virtuals")
|
||||
|
||||
set(NEO_RELEASE_LIB_NAME "igdrcl_lib")
|
||||
set(NEO_MOCKABLE_LIB_NAME ${NEO_RELEASE_LIB_NAME})
|
||||
generate_runtime_lib(${NEO_RELEASE_LIB_NAME} TRUE TRUE)
|
||||
else()
|
||||
set(NEO_RELEASE_LIB_NAME "igdrcl_lib_release") # Used by dll/so
|
||||
generate_runtime_lib(${NEO_RELEASE_LIB_NAME} FALSE TRUE)
|
||||
if(NOT NEO_SKIP_OCL_UNIT_TESTS)
|
||||
set(NEO_MOCKABLE_LIB_NAME "igdrcl_lib_mockable") # Used by ULTS
|
||||
generate_runtime_lib(${NEO_MOCKABLE_LIB_NAME} TRUE FALSE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_subdirectory(test)
|
||||
14
opencl/test/CMakeLists.txt
Normal file
14
opencl/test/CMakeLists.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
#
|
||||
# Copyright (C) 2021 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
|
||||
if(DEFAULT_TESTED_PLATFORM AND NOT NEO_SKIP_OCL_UNIT_TESTS)
|
||||
add_subdirectory_unique(unit_test ${NEO_BUILD_DIR}/opencl/test/unit_test)
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_WITHOUT_RUNTIME)
|
||||
add_subdirectory_unique(black_box_test)
|
||||
endif()
|
||||
|
||||
@@ -52,16 +52,18 @@ if(UNIX)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(OCL_ICD_RUNTIME_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${NEO_DLL_NAME_BASE}${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
install(
|
||||
CODE "file( WRITE ${NEO_BINARY_DIR}/intel.icd \"${CMAKE_INSTALL_FULL_LIBDIR}/intel-opencl/${OCL_ICD_RUNTIME_NAME}\n\" )"
|
||||
CODE "file( WRITE ${NEO_BINARY_DIR}/tmp/postinst \"/sbin/ldconfig\n\" )"
|
||||
CODE "file( WRITE ${NEO_BINARY_DIR}/tmp/postrm \"/sbin/ldconfig\n\" )"
|
||||
CODE "file( COPY ${NEO_BINARY_DIR}/tmp/postinst DESTINATION ${NEO_BINARY_DIR} FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE )"
|
||||
CODE "file( COPY ${NEO_BINARY_DIR}/tmp/postrm DESTINATION ${NEO_BINARY_DIR} FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE )"
|
||||
COMPONENT opencl
|
||||
)
|
||||
install(FILES ${NEO_BINARY_DIR}/intel.icd DESTINATION ${OCL_ICD_VENDORDIR} COMPONENT opencl)
|
||||
if(NEO_BUILD_WITH_OCL)
|
||||
get_target_property(OCL_RUNTIME_LIB_NAME igdrcl_dll OUTPUT_NAME)
|
||||
install(
|
||||
CODE "file( WRITE ${NEO_BINARY_DIR}/intel.icd \"${CMAKE_INSTALL_FULL_LIBDIR}/intel-opencl/${CMAKE_SHARED_LIBRARY_PREFIX}${OCL_RUNTIME_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}\n\" )"
|
||||
CODE "file( WRITE ${NEO_BINARY_DIR}/tmp/postinst \"/sbin/ldconfig\n\" )"
|
||||
CODE "file( WRITE ${NEO_BINARY_DIR}/tmp/postrm \"/sbin/ldconfig\n\" )"
|
||||
CODE "file( COPY ${NEO_BINARY_DIR}/tmp/postinst DESTINATION ${NEO_BINARY_DIR} FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE )"
|
||||
CODE "file( COPY ${NEO_BINARY_DIR}/tmp/postrm DESTINATION ${NEO_BINARY_DIR} FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE )"
|
||||
COMPONENT opencl
|
||||
)
|
||||
install(FILES ${NEO_BINARY_DIR}/intel.icd DESTINATION ${OCL_ICD_VENDORDIR} COMPONENT opencl)
|
||||
endif()
|
||||
|
||||
if(NEO_BUILD_DEBUG_SYMBOLS_PACKAGE)
|
||||
get_property(DEBUG_SYMBOL_FILES GLOBAL PROPERTY DEBUG_SYMBOL_FILES)
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
add_library(${BUILTINS_BINARIES_BINDFUL_LIB_NAME} OBJECT EXCLUDE_FROM_ALL builtins_binary.cmake)
|
||||
add_library(${BUILTINS_BINARIES_BINDLESS_LIB_NAME} OBJECT EXCLUDE_FROM_ALL builtins_binary.cmake)
|
||||
target_compile_definitions(${BUILTINS_BINARIES_BINDFUL_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
target_compile_definitions(${BUILTINS_BINARIES_BINDLESS_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
|
||||
# Add builtins sources
|
||||
add_subdirectory(registry)
|
||||
|
||||
@@ -233,6 +233,7 @@ foreach(builtin_images_stateless ${GENERATED_BUILTINS_IMAGES_STATELESS})
|
||||
endforeach()
|
||||
if(NOT "${OUTPUT_LIST_CPP_FILES}" STREQUAL "")
|
||||
add_library(${BUILTINS_SPIRV_LIB_NAME} OBJECT ${OUTPUT_LIST_CPP_FILES})
|
||||
target_compile_definitions(${BUILTINS_SPIRV_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
|
||||
set_target_properties(${BUILTINS_SPIRV_LIB_NAME} PROPERTIES
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
FOLDER "${SHARED_SOURCE_PROJECTS_FOLDER}/${SHARED_BUILTINS_PROJECTS_FOLDER}"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (C) 2020 Intel Corporation
|
||||
# Copyright (C) 2020-2021 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
@@ -7,6 +7,10 @@
|
||||
set(BUILT_IN_KERNEL_DIR "${NEO_SOURCE_DIR}/shared/source/built_ins")
|
||||
set(PLATFORM_SPECIFIC_TEST_TARGETS_FOLDER ult_product_targets)
|
||||
|
||||
if(NOT TARGET run_mt_unit_tests)
|
||||
add_custom_target(run_mt_unit_tests)
|
||||
endif()
|
||||
|
||||
if(NOT TARGET run_unit_tests)
|
||||
add_custom_target(run_unit_tests ALL)
|
||||
set_target_properties(run_unit_tests PROPERTIES FOLDER ${PLATFORM_SPECIFIC_TEST_TARGETS_FOLDER})
|
||||
|
||||
Reference in New Issue
Block a user