@@ -39,16 +39,17 @@ set(BUILTINS_INCLUDE_DIR ${TargetDir} PARENT_SCOPE)
3939set (BUILTIN_CPP "" )
4040
4141# Define function for compiling built-ins (with cloc)
42- function (compile_builtin gen_name builtin)
43- set (OUTPUTDIR "${BUILTINS_OUTDIR_WITH_ARCH} /${gen_name} " )
44-
42+ function (compile_builtin gen_type platform_type builtin)
43+ string (TOLOWER ${gen_type} gen_type_lower)
44+ get_family_name_with_type(${gen_type} ${platform_type} )
45+ set (OUTPUTDIR "${BUILTINS_OUTDIR_WITH_ARCH} /${gen_type_lower} " )
4546 # get filename
4647 get_filename_component (FILENAME ${builtin} NAME )
4748
4849 # get name of the file w/o extension
4950 get_filename_component (BASENAME ${builtin} NAME_WE )
5051
51- set (OUTPUTPATH_BASE "${OUTPUTDIR} /${BASENAME} _${gen_name } " )
52+ set (OUTPUTPATH_BASE "${OUTPUTDIR} /${BASENAME} _${family_name_with_type } " )
5253 set (OUTPUT_FILES
5354 ${OUTPUTPATH_BASE} .bc
5455 ${OUTPUTPATH_BASE} .bin
@@ -59,48 +60,38 @@ function(compile_builtin gen_name builtin)
5960 # function returns builtin cpp filename
6061 unset (BUILTIN_CPP)
6162 # set variable outside function
62- set (BUILTIN_CPP built_ins/${NEO_ARCH} /${gen_name} /${BASENAME} _${gen_name} .cpp PARENT_SCOPE)
63-
64- if (MSVC )
65- add_custom_command (
66- OUTPUT ${OUTPUT_FILES}
67- COMMAND cloc -q -file ${FILENAME} -device ${gen_name} ${BUILTIN_OPTIONS} -${NEO_BITS} -out_dir ${OUTPUTDIR} -cpp_file -options "-cl-kernel-arg-info ${BUILTIN_DEBUG_OPTION} "
68- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
69- DEPENDS ${builtin} cloc copy_compiler_files
70- )
63+ set (BUILTIN_CPP built_ins/${NEO_ARCH} /${gen_type_lower} /${BASENAME} _${family_name_with_type} .cpp PARENT_SCOPE)
64+ if (WIN32 )
65+ set (cloc_cmd_prefix cloc)
7166 else ()
72- add_custom_command (
73- OUTPUT ${OUTPUT_FILES}
74- COMMAND LD_LIBRARY_PATH=$<TARGET_FILE_DIR:cloc> $<TARGET_FILE:cloc> -q -file ${FILENAME} -device ${gen_name} ${BUILTIN_OPTIONS} -${NEO_BITS} -out_dir ${OUTPUTDIR} -cpp_file -options "-cl-kernel-arg-info ${BUILTIN_DEBUG_OPTION} "
75- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
76- DEPENDS ${builtin} cloc copy_compiler_files
77- )
67+ set (cloc_cmd_prefix LD_LIBRARY_PATH=$<TARGET_FILE_DIR:cloc> $<TARGET_FILE:cloc>)
7868 endif ()
69+ add_custom_command (
70+ OUTPUT ${OUTPUT_FILES}
71+ COMMAND ${cloc_cmd_prefix} -q -file ${FILENAME} -device ${DEFAULT_SUPPORTED_${gen_type} _${platform_type} _PLATFORM} ${BUILTIN_OPTIONS} -${NEO_BITS} -out_dir ${OUTPUTDIR} -cpp_file -options "-cl-kernel-arg-info ${BUILTIN_DEBUG_OPTION} "
72+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
73+ DEPENDS ${builtin} cloc copy_compiler_files
74+ )
7975endfunction ()
8076
81- macro (compile_builtins GEN_TYPE PLATFORM_IT)
82- string (TOLOWER ${PLATFORM_IT} PLATFORM_LOWER)
83- string (CONCAT GEN "_" ${GEN_TYPE} "_" ${PLATFORM_IT} )
84-
85- set (BUILTINS_COMMANDS)
86- foreach (GENERATED_BUILTIN ${GENERATED_BUILTINS} )
87- compile_builtin(${PLATFORM_LOWER} ${GENERATED_BUILTIN} .igdrcl_built_in)
88- list (APPEND BUILTINS_COMMANDS ${TargetDir} /${BUILTIN_CPP} )
89- set (RUNTIME_GENERATED_${GENERATED_BUILTIN}${GEN} ${BUILTIN_CPP} PARENT_SCOPE)
90- endforeach ()
91-
92- set (target_name builtins_${PLATFORM_LOWER} )
93- add_custom_target (${target_name} DEPENDS ${BUILTINS_COMMANDS} )
94- add_dependencies (builtins ${target_name} )
95- set_target_properties (${target_name} PROPERTIES FOLDER "built_ins/${PLATFORM_LOWER} " )
96- endmacro ()
97-
98- macro (macro_for_each_platform)
99- compile_builtins(${GEN_TYPE_LOWER} ${PLATFORM_IT} )
100- endmacro ()
101-
10277macro (macro_for_each_gen)
103- apply_macro_for_each_platform()
78+ foreach (PLATFORM_TYPE "CORE" "LP" )
79+ if (${GEN_TYPE} _HAS_${PLATFORM_TYPE} )
80+ get_family_name_with_type(${GEN_TYPE} ${PLATFORM_TYPE} )
81+ string (TOLOWER ${PLATFORM_TYPE} PLATFORM_TYPE_LOWER)
82+ unset (BUILTINS_COMMANDS)
83+ foreach (GENERATED_BUILTIN ${GENERATED_BUILTINS} )
84+ compile_builtin(${GEN_TYPE} ${PLATFORM_TYPE} ${GENERATED_BUILTIN} .igdrcl_built_in)
85+ list (APPEND BUILTINS_COMMANDS ${TargetDir} /${BUILTIN_CPP} )
86+ set (RUNTIME_GENERATED_${GENERATED_BUILTIN} _${family_name_with_type} ${BUILTIN_CPP} PARENT_SCOPE)
87+ endforeach ()
88+
89+ set (target_name builtins_${family_name_with_type} )
90+ add_custom_target (${target_name} DEPENDS ${BUILTINS_COMMANDS} )
91+ add_dependencies (builtins ${target_name} )
92+ set_target_properties (${target_name} PROPERTIES FOLDER "built_ins/${family_name_with_type} " )
93+ endif ()
94+ endforeach ()
10495endmacro ()
10596
10697apply_macro_for_each_gen("SUPPORTED" )
0 commit comments