Skip to content

Commit d2a4af9

Browse files
CMake cleanup: move opencl logic to opencl folder
Signed-off-by: Mateusz Jablonski <[email protected]>
1 parent aaa5e6d commit d2a4af9

File tree

8 files changed

+101
-85
lines changed

8 files changed

+101
-85
lines changed

CMakeLists.txt

Lines changed: 10 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,12 @@ if(NOT DEFINED NEO_TARGET_PROCESSOR)
127127
message(FATAL_ERROR "Unsupported target processor: ${CMAKE_SYSTEM_PROCESSOR}")
128128
endif()
129129

130+
if(NOT DEFINED NEO_BUILD_WITH_OCL)
131+
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/opencl/CMakeLists.txt)
132+
set(NEO_BUILD_WITH_OCL TRUE)
133+
endif()
134+
endif()
135+
130136
if(NOT DEFINED BUILD_WITH_L0)
131137
if("${NEO_BITS}" STREQUAL "64")
132138
set(BUILD_WITH_L0 TRUE)
@@ -199,14 +205,6 @@ endif("${BUILD_TYPE_lower}" STREQUAL "releaseinternal")
199205

200206
message(STATUS "${CMAKE_BUILD_TYPE} build configuration")
201207

202-
set(NEO_RUNTIME_SUB_DIR "opencl/source")
203-
set(NEO_RUNTIME_SOURCE_DIR "${NEO_SOURCE_DIR}/${NEO_RUNTIME_SUB_DIR}")
204-
205-
set(NEO_RUNTIME_TESTS_SUB_DIR "opencl/test/unit_test")
206-
set(NEO_RUNTIME_TESTS_DIR "${NEO_SOURCE_DIR}/${NEO_RUNTIME_TESTS_SUB_DIR}")
207-
set(NEO_OPENCL_BLACK_BOX_TESTS_SUB_DIR "opencl/test/black_box_test")
208-
set(NEO_OPENCL_BLACK_BOX_TESTS_DIR "${NEO_SOURCE_DIR}/${NEO_OPENCL_BLACK_BOX_TESTS_SUB_DIR}")
209-
210208
# Set the ocloc directory
211209
if(NOT DEFINED OCLOC_DIRECTORY)
212210
set(OCLOC_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/shared/offline_compiler)
@@ -779,69 +777,11 @@ endif()
779777

780778
add_subdirectory_unique(shared)
781779

782-
macro(generate_runtime_lib LIB_NAME MOCKABLE GENERATE_EXEC)
783-
set(NEO_STATIC_LIB_NAME ${LIB_NAME})
784-
set(SHARINGS_ENABLE_LIB_NAME "${LIB_NAME}_sharings_enable")
785-
set(GENERATE_EXECUTABLE ${GENERATE_EXEC})
786-
787-
if(${MOCKABLE})
788-
set(NEO_SHARED_LIB ${NEO_SHARED_MOCKABLE_LIB_NAME})
789-
else()
790-
set(NEO_SHARED_LIB ${NEO_SHARED_RELEASE_LIB_NAME})
791-
endif()
792-
if(NOT BUILD_WITHOUT_RUNTIME)
793-
add_subdirectory(${NEO_RUNTIME_SUB_DIR} "${NEO_BUILD_DIR}/${LIB_NAME}")
794-
else()
795-
add_subdirectory(${NEO_RUNTIME_SUB_DIR} "${NEO_BUILD_DIR}/${LIB_NAME}" EXCLUDE_FROM_ALL)
796-
endif()
797-
target_compile_definitions(${BUILTINS_SOURCES_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
798-
target_compile_definitions(${BUILTINS_VME_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
799-
target_compile_definitions(${BUILTINS_BINARIES_BINDFUL_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
800-
target_compile_definitions(${BUILTINS_BINARIES_BINDLESS_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
801-
if(TARGET ${BUILTINS_SPIRV_LIB_NAME})
802-
target_compile_definitions(${BUILTINS_SPIRV_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
803-
endif()
804-
if(TARGET ${SCHEDULER_BINARY_LIB_NAME})
805-
target_compile_definitions(${SCHEDULER_BINARY_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
806-
endif()
807-
808-
if(${MOCKABLE})
809-
target_compile_definitions(${LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=virtual)
810-
target_compile_definitions(${SHARINGS_ENABLE_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=virtual)
811-
else()
812-
target_compile_definitions(${LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
813-
target_compile_definitions(${SHARINGS_ENABLE_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
814-
endif()
815-
endmacro()
816-
817-
set(NEO_DYNAMIC_LIB_NAME "igdrcl_dll") # single NEO dll
818-
set(NEO_DLL_NAME_BASE "igdrcl")
819-
820-
if(DONT_CARE_OF_VIRTUALS)
821-
message(STATUS "All targets will use virtuals")
822-
823-
set(NEO_RELEASE_LIB_NAME "igdrcl_lib")
824-
set(NEO_MOCKABLE_LIB_NAME ${NEO_RELEASE_LIB_NAME})
825-
generate_runtime_lib(${NEO_RELEASE_LIB_NAME} TRUE TRUE)
780+
if(NEO_BUILD_WITH_OCL)
781+
add_subdirectory_unique(opencl)
826782
else()
827-
set(NEO_RELEASE_LIB_NAME "igdrcl_lib_release") # Used by dll/so
828-
generate_runtime_lib(${NEO_RELEASE_LIB_NAME} FALSE TRUE)
829-
if(NOT NEO_SKIP_UNIT_TESTS)
830-
set(NEO_MOCKABLE_LIB_NAME "igdrcl_lib_mockable") # Used by ULTS
831-
generate_runtime_lib(${NEO_MOCKABLE_LIB_NAME} TRUE FALSE)
832-
endif()
833-
endif()
834-
835-
if(DEFAULT_TESTED_PLATFORM AND NOT NEO_SKIP_OCL_UNIT_TESTS)
836-
add_subdirectory_unique(${NEO_RUNTIME_TESTS_SUB_DIR} ${NEO_BUILD_DIR}/${NEO_RUNTIME_TESTS_SUB_DIR})
837-
else()
838-
hide_subdir(${NEO_RUNTIME_TESTS_SUB_DIR})
839-
endif()
840-
841-
if(NOT BUILD_WITHOUT_RUNTIME)
842-
add_subdirectory_unique(${NEO_OPENCL_BLACK_BOX_TESTS_SUB_DIR})
843-
else()
844-
hide_subdir(${NEO_OPENCL_BLACK_BOX_TESTS_SUB_DIR})
783+
hide_subdir(opencl)
784+
set(NEO_SKIP_OCL_UNIT_TESTS TRUE)
845785
endif()
846786

847787
set(DONT_LINK_ELF_STATICALLY TRUE)
@@ -859,8 +799,6 @@ configure_file(config.h.in ${NEO_BUILD_DIR}/config.h)
859799
configure_file(driver_version.h.in ${NEO_BUILD_DIR}/driver_version.h) # Put Driver version into define
860800
configure_file(lib_names.h.in ${NEO_BUILD_DIR}/lib_names.h)
861801

862-
hide_subdir(${NEO_RUNTIME_SUB_DIR})
863-
864802
if(BUILD_WITH_L0)
865803
add_subdirectory_unique(level_zero)
866804
endif()

level_zero/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ if(BUILD_WITH_L0)
297297
)
298298

299299
get_property(COMPUTE_RUNTIME_DEFINITIONS
300-
TARGET ${NEO_RELEASE_LIB_NAME}
300+
TARGET ${NEO_SHARED_RELEASE_LIB_NAME}
301301
PROPERTY COMPILE_DEFINITIONS
302302
)
303303

@@ -396,7 +396,7 @@ if(BUILD_WITH_L0)
396396
)
397397
else()
398398
get_property(COMPUTE_RUNTIME_DEFINITIONS
399-
TARGET ${NEO_RELEASE_LIB_NAME}
399+
TARGET ${NEO_SHARED_RELEASE_LIB_NAME}
400400
PROPERTY COMPILE_DEFINITIONS
401401
)
402402
target_compile_definitions(${LIB_NAME}

opencl/CMakeLists.txt

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#
2+
# Copyright (C) 2021 Intel Corporation
3+
#
4+
# SPDX-License-Identifier: MIT
5+
#
6+
7+
macro(generate_runtime_lib LIB_NAME MOCKABLE GENERATE_EXEC)
8+
set(NEO_STATIC_LIB_NAME ${LIB_NAME})
9+
set(SHARINGS_ENABLE_LIB_NAME "${LIB_NAME}_sharings_enable")
10+
set(GENERATE_EXECUTABLE ${GENERATE_EXEC})
11+
12+
if(${MOCKABLE})
13+
set(NEO_SHARED_LIB ${NEO_SHARED_MOCKABLE_LIB_NAME})
14+
else()
15+
set(NEO_SHARED_LIB ${NEO_SHARED_RELEASE_LIB_NAME})
16+
endif()
17+
if(NOT BUILD_WITHOUT_RUNTIME)
18+
add_subdirectory(source "${NEO_BUILD_DIR}/${LIB_NAME}")
19+
else()
20+
add_subdirectory(source "${NEO_BUILD_DIR}/${LIB_NAME}" EXCLUDE_FROM_ALL)
21+
endif()
22+
target_compile_definitions(${BUILTINS_SOURCES_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
23+
target_compile_definitions(${BUILTINS_VME_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
24+
if(TARGET ${SCHEDULER_BINARY_LIB_NAME})
25+
target_compile_definitions(${SCHEDULER_BINARY_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
26+
endif()
27+
28+
if(${MOCKABLE})
29+
target_compile_definitions(${LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=virtual)
30+
target_compile_definitions(${SHARINGS_ENABLE_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=virtual)
31+
else()
32+
target_compile_definitions(${LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
33+
target_compile_definitions(${SHARINGS_ENABLE_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
34+
endif()
35+
endmacro()
36+
37+
set(NEO_DYNAMIC_LIB_NAME "igdrcl_dll") # single NEO dll
38+
set(NEO_DLL_NAME_BASE "igdrcl")
39+
40+
if(DONT_CARE_OF_VIRTUALS)
41+
message(STATUS "All targets will use virtuals")
42+
43+
set(NEO_RELEASE_LIB_NAME "igdrcl_lib")
44+
set(NEO_MOCKABLE_LIB_NAME ${NEO_RELEASE_LIB_NAME})
45+
generate_runtime_lib(${NEO_RELEASE_LIB_NAME} TRUE TRUE)
46+
else()
47+
set(NEO_RELEASE_LIB_NAME "igdrcl_lib_release") # Used by dll/so
48+
generate_runtime_lib(${NEO_RELEASE_LIB_NAME} FALSE TRUE)
49+
if(NOT NEO_SKIP_OCL_UNIT_TESTS)
50+
set(NEO_MOCKABLE_LIB_NAME "igdrcl_lib_mockable") # Used by ULTS
51+
generate_runtime_lib(${NEO_MOCKABLE_LIB_NAME} TRUE FALSE)
52+
endif()
53+
endif()
54+
55+
add_subdirectory(test)

opencl/test/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#
2+
# Copyright (C) 2021 Intel Corporation
3+
#
4+
# SPDX-License-Identifier: MIT
5+
#
6+
7+
if(DEFAULT_TESTED_PLATFORM AND NOT NEO_SKIP_OCL_UNIT_TESTS)
8+
add_subdirectory_unique(unit_test ${NEO_BUILD_DIR}/opencl/test/unit_test)
9+
endif()
10+
11+
if(NOT BUILD_WITHOUT_RUNTIME)
12+
add_subdirectory_unique(black_box_test)
13+
endif()
14+

package.cmake

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,18 @@ if(UNIX)
5252
endif()
5353
endif()
5454

55-
set(OCL_ICD_RUNTIME_NAME ${CMAKE_SHARED_LIBRARY_PREFIX}${NEO_DLL_NAME_BASE}${CMAKE_SHARED_LIBRARY_SUFFIX})
56-
install(
57-
CODE "file( WRITE ${NEO_BINARY_DIR}/intel.icd \"${CMAKE_INSTALL_FULL_LIBDIR}/intel-opencl/${OCL_ICD_RUNTIME_NAME}\n\" )"
58-
CODE "file( WRITE ${NEO_BINARY_DIR}/tmp/postinst \"/sbin/ldconfig\n\" )"
59-
CODE "file( WRITE ${NEO_BINARY_DIR}/tmp/postrm \"/sbin/ldconfig\n\" )"
60-
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 )"
61-
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 )"
62-
COMPONENT opencl
63-
)
64-
install(FILES ${NEO_BINARY_DIR}/intel.icd DESTINATION ${OCL_ICD_VENDORDIR} COMPONENT opencl)
55+
if(NEO_BUILD_WITH_OCL)
56+
get_target_property(OCL_RUNTIME_LIB_NAME igdrcl_dll OUTPUT_NAME)
57+
install(
58+
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\" )"
59+
CODE "file( WRITE ${NEO_BINARY_DIR}/tmp/postinst \"/sbin/ldconfig\n\" )"
60+
CODE "file( WRITE ${NEO_BINARY_DIR}/tmp/postrm \"/sbin/ldconfig\n\" )"
61+
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 )"
62+
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 )"
63+
COMPONENT opencl
64+
)
65+
install(FILES ${NEO_BINARY_DIR}/intel.icd DESTINATION ${OCL_ICD_VENDORDIR} COMPONENT opencl)
66+
endif()
6567

6668
if(NEO_BUILD_DEBUG_SYMBOLS_PACKAGE)
6769
get_property(DEBUG_SYMBOL_FILES GLOBAL PROPERTY DEBUG_SYMBOL_FILES)

shared/source/built_ins/builtins_binary.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
add_library(${BUILTINS_BINARIES_BINDFUL_LIB_NAME} OBJECT EXCLUDE_FROM_ALL builtins_binary.cmake)
88
add_library(${BUILTINS_BINARIES_BINDLESS_LIB_NAME} OBJECT EXCLUDE_FROM_ALL builtins_binary.cmake)
9+
target_compile_definitions(${BUILTINS_BINARIES_BINDFUL_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
10+
target_compile_definitions(${BUILTINS_BINARIES_BINDLESS_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
911

1012
# Add builtins sources
1113
add_subdirectory(registry)

shared/source/built_ins/kernels/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ foreach(builtin_images_stateless ${GENERATED_BUILTINS_IMAGES_STATELESS})
233233
endforeach()
234234
if(NOT "${OUTPUT_LIST_CPP_FILES}" STREQUAL "")
235235
add_library(${BUILTINS_SPIRV_LIB_NAME} OBJECT ${OUTPUT_LIST_CPP_FILES})
236+
target_compile_definitions(${BUILTINS_SPIRV_LIB_NAME} PUBLIC MOCKABLE_VIRTUAL=)
236237
set_target_properties(${BUILTINS_SPIRV_LIB_NAME} PROPERTIES
237238
POSITION_INDEPENDENT_CODE ON
238239
FOLDER "${SHARED_SOURCE_PROJECTS_FOLDER}/${SHARED_BUILTINS_PROJECTS_FOLDER}"

target_unit_tests/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
#
2-
# Copyright (C) 2020 Intel Corporation
2+
# Copyright (C) 2020-2021 Intel Corporation
33
#
44
# SPDX-License-Identifier: MIT
55
#
66

77
set(BUILT_IN_KERNEL_DIR "${NEO_SOURCE_DIR}/shared/source/built_ins")
88
set(PLATFORM_SPECIFIC_TEST_TARGETS_FOLDER ult_product_targets)
99

10+
if(NOT TARGET run_mt_unit_tests)
11+
add_custom_target(run_mt_unit_tests)
12+
endif()
13+
1014
if(NOT TARGET run_unit_tests)
1115
add_custom_target(run_unit_tests ALL)
1216
set_target_properties(run_unit_tests PROPERTIES FOLDER ${PLATFORM_SPECIFIC_TEST_TARGETS_FOLDER})

0 commit comments

Comments
 (0)