CMake: Add configuration for ruy targets

This is required to build iree_tools_iree-run-module

Closes https://github.com/google/iree/pull/666

COPYBARA_INTEGRATE_REVIEW=https://github.com/google/iree/pull/666 from iml130:cmake-ruy ae58f87f2f91afbcada0844bb53bf2603ffb0648
PiperOrigin-RevId: 293196014
diff --git a/build_tools/third_party/ruy/CMakeLists.txt b/build_tools/third_party/ruy/CMakeLists.txt
index dd19f95..b405112 100644
--- a/build_tools/third_party/ruy/CMakeLists.txt
+++ b/build_tools/third_party/ruy/CMakeLists.txt
@@ -32,6 +32,8 @@
     "-Wno-unused-local-typedef"
 )
 set(RUY_COPTS_AVX2)
+set(RUY_COPTS_AVX_VNNI)
+set(RUY_COPTS_SSE42)
 set(RUY_COPTS_SKYLAKE)
 
 external_cc_library(
@@ -180,6 +182,28 @@
   PACKAGE
     ruy
   NAME
+    prepacked_cache
+  ROOT
+    ${RUY_SRC_ROOT}
+  SRCS
+    "prepacked_cache.cc"
+  HDRS
+    "prepacked_cache.h"
+  COPTS
+    ${RUY_COPTS_BASE}
+  DEPS
+    gemmlowp::profiler
+    ruy::allocator
+    ruy::matrix
+    ruy::opt_set
+    ruy::platform
+    ruy::time
+)
+
+external_cc_library(
+  PACKAGE
+    ruy
+  NAME
     allocator
   ROOT
     ${RUY_SRC_ROOT}
@@ -629,6 +653,128 @@
   PACKAGE
     ruy
   NAME
+    kernel_sse42
+  ROOT
+    ${RUY_SRC_ROOT}
+  SRCS
+    "kernel_sse42.cc"
+  COPTS
+    ${RUY_COPTS_BASE}
+    ${RUY_COPTS_SSE42}
+  DEPS
+    gemmlowp::profiler
+    ruy::check_macros
+    ruy::kernel_common
+    ruy::opt_set
+    ruy::platform
+)
+
+external_cc_library(
+  PACKAGE
+    ruy
+  NAME
+    pack_sse42
+  ROOT
+    ${RUY_SRC_ROOT}
+  SRCS
+    "pack_sse42.cc"
+  COPTS
+    ${RUY_COPTS_BASE}
+    ${RUY_COPTS_SSE42}
+  DEPS
+    gemmlowp::profiler
+    ruy::check_macros
+    ruy::matrix
+    ruy::opt_set
+    ruy::pack_common
+    ruy::path
+    ruy::platform
+)
+
+external_cc_library(
+  PACKAGE
+    ruy
+  NAME
+    have_built_path_for_sse42
+  ROOT
+    ${RUY_SRC_ROOT}
+  SRCS
+    "have_built_path_for_sse42.cc"
+  HDRS
+    "have_built_path_for.h"
+  COPTS
+    ${RUY_COPTS_BASE}
+    ${RUY_COPTS_SSE42}
+  DEPS
+    ruy::opt_set
+    ruy::platform
+)
+
+external_cc_library(
+  PACKAGE
+    ruy
+  NAME
+    kernel_avxvnni
+  ROOT
+    ${RUY_SRC_ROOT}
+  SRCS
+    "kernel_avxvnni.cc"
+  COPTS
+    ${RUY_COPTS_BASE}
+    ${RUY_COPTS_SKYLAKE}
+  DEPS
+    gemmlowp::profiler
+    ruy::check_macros
+    ruy::kernel_common
+    ruy::opt_set
+    ruy::platform
+)
+
+external_cc_library(
+  PACKAGE
+    ruy
+  NAME
+    pack_avxvnni
+  ROOT
+    ${RUY_SRC_ROOT}
+  SRCS
+    "pack_avxvnni.cc"
+  COPTS
+    ${RUY_COPTS_BASE}
+    ${RUY_COPTS_AVX_VNNI}
+  DEPS
+    gemmlowp::profiler
+    ruy::check_macros
+    ruy::matrix
+    ruy::opt_set
+    ruy::pack_common
+    ruy::path
+    ruy::platform
+)
+
+external_cc_library(
+  PACKAGE
+    ruy
+  NAME
+    have_built_path_for_avxvnni
+  ROOT
+    ${RUY_SRC_ROOT}
+  SRCS
+    "have_built_path_for_avxvnni.cc"
+  HDRS
+    "have_built_path_for.h"
+  COPTS
+    ${RUY_COPTS_BASE}
+    ${RUY_COPTS_AVX_VNNI}
+  DEPS
+    ruy::opt_set
+    ruy::platform
+)
+
+external_cc_library(
+  PACKAGE
+    ruy
+  NAME
     kernel
   ROOT
     ${RUY_SRC_ROOT}
@@ -646,7 +792,9 @@
     ruy::kernel_arm
     ruy::kernel_avx2
     ruy::kernel_avx512
+    ruy::kernel_avxvnni
     ruy::kernel_common
+    ruy::kernel_sse42
     ruy::matrix
     ruy::opt_set
     ruy::path
@@ -679,7 +827,9 @@
     ruy::pack_arm  # fixdeps: keep
     ruy::pack_avx2  # fixdeps: keep
     ruy::pack_avx512  # fixdeps: keep
+    ruy::pack_avxvnni
     ruy::pack_common
+    ruy::pack_sse42
     ruy::path
     ruy::platform
     ruy::tune
@@ -697,6 +847,8 @@
   DEPS
     ruy::have_built_path_for_avx2
     ruy::have_built_path_for_avx512
+    ruy::have_built_path_for_avxvnni
+    ruy::have_built_path_for_sse42
     ruy::platform
 )
 
@@ -721,6 +873,7 @@
     ruy::have_built_path_for
     ruy::path
     ruy::platform
+    ruy::prepacked_cache
     ruy::thread_pool
     ruy::trace
     ruy::tune
@@ -802,6 +955,7 @@
     ruy::opt_set
     ruy::pack
     ruy::path
+    ruy::prepacked_cache
     ruy::side_pair
     ruy::size_util
     ruy::spec