sw:vec_iree: Update emitC targets (Improved) sw:vec_iree: Update emitC targets This is an improved version of https://spacebeaker-review.googlesource.com/c/shodan/sw/vec-iree/+/15880 Match https://github.com/google/iree/pull/7929 Change-Id: I038cd98c62020f3cf2719facba90a33d28e75308
diff --git a/cmake/springbok_c_module.cmake b/cmake/springbok_c_module.cmake index e111263..29c1ae4 100644 --- a/cmake/springbok_c_module.cmake +++ b/cmake/springbok_c_module.cmake
@@ -74,10 +74,11 @@ set(_RULE_C_NAME "${_RULE_NAME}_c") set(_LIB_NAME "${_PACKAGE_NAME}_${_RULE_C_NAME}") - set(_GEN_TARGET "${_LIB_NAME}_gen") set(_O_FILE_NAME ${_RULE_C_NAME}.o) set(_H_FILE_NAME ${_RULE_C_NAME}.h) - set(_EMITC_FILE_NAME ${_RULE_NAME}_emitc.h) + set(_RULE_EMITC_NAME "${_RULE_NAME}_emitc") + set(_EMITC_LIB_NAME "${_PACKAGE_NAME}_${_RULE_EMITC_NAME}") + set(_EMITC_FILE_NAME ${_RULE_EMITC_NAME}.h) ## Example with VM C module. # Setup args for iree-translate. @@ -107,31 +108,39 @@ DEPENDS ${_TRANSLATE_TOOL_EXECUTABLE} ${_MLIR_SRC} ${_LINKER_TOOL_EXECUTABLE} ) - add_custom_target( - ${_GEN_TARGET} - DEPENDS - "${_EMITC_FILE_NAME}" + add_library(${_LIB_NAME} + STATIC + ${_O_FILE_NAME} ) - add_library(${_LIB_NAME} - STATIC - ${_O_FILE_NAME} - ) - add_dependencies(${_LIB_NAME} ${_GEN_TARGET}) - SET_TARGET_PROPERTIES( ${_LIB_NAME} PROPERTIES - LINKER_LANGUAGE C + LINKER_LANGUAGE C + ) + + add_library(${_EMITC_LIB_NAME} + STATIC + ${_EMITC_FILE_NAME} + ) + target_compile_definitions(${_EMITC_LIB_NAME} PUBLIC EMITC_IMPLEMENTATION) + + SET_TARGET_PROPERTIES( + ${_EMITC_LIB_NAME} + PROPERTIES + LINKER_LANGUAGE C ) # Alias the iree_package_name library to iree::package::name. # This lets us more clearly map to Bazel and makes it possible to # disambiguate the underscores in paths vs. the separators. add_library(${_PACKAGE_NS}::${_RULE_C_NAME} ALIAS ${_LIB_NAME}) + add_library(${_PACKAGE_NS}::${_RULE_EMITC_NAME} ALIAS ${_EMITC_LIB_NAME}) iree_package_dir(_PACKAGE_DIR) if(${_RULE_C_NAME} STREQUAL ${_PACKAGE_DIR}) add_library(${_PACKAGE_NS} ALIAS ${_LIB_NAME}) endif() - + if(${_RULE_EMITC_NAME} STREQUAL ${_PACKAGE_DIR}) + add_library(${_PACKAGE_NS} ALIAS ${_EMITC_LIB_NAME}) + endif() endfunction()
diff --git a/samples/simple_vec_mul/CMakeLists.txt b/samples/simple_vec_mul/CMakeLists.txt index c6149ba..c4bcd03 100644 --- a/samples/simple_vec_mul/CMakeLists.txt +++ b/samples/simple_vec_mul/CMakeLists.txt
@@ -58,15 +58,6 @@ "LINKER:--defsym=__stack_size__=20k" ) -iree_cc_library( - NAME - simple_float_mul_emitc - HDRS - "simple_float_mul_c_module_static_emitc.h" - DEFINES - "EMITC_IMPLEMENTATION" -) - iree_cc_binary( NAME simple_float_vec_mul_emitc_static @@ -74,7 +65,7 @@ "float_vec.c" DEPS ::simple_float_mul_c_module_static_c - ::simple_float_mul_emitc + ::simple_float_mul_c_module_static_emitc samples::util::util_emitc LINKOPTS "LINKER:--defsym=__stack_size__=20k" @@ -94,15 +85,6 @@ "LINKER:--defsym=__stack_size__=20k" ) -iree_cc_library( - NAME - simple_int_mul_emitc - HDRS - "simple_int_mul_c_module_static_emitc.h" - DEFINES - "EMITC_IMPLEMENTATION" -) - iree_cc_binary( NAME simple_int_vec_mul_emitc_static @@ -110,7 +92,7 @@ "int_vec.c" DEPS ::simple_int_mul_c_module_static_c - ::simple_int_mul_emitc + ::simple_int_mul_c_module_static_emitc samples::util::util_emitc LINKOPTS "LINKER:--defsym=__stack_size__=20k"