build: CMake/GN changes for pre-generated source

Change-Id: I9d911b10bbb2d4ac228a79d320f51e1856499f69
diff --git a/BUILD.gn b/BUILD.gn
index c6cc155..46bb075 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -15,15 +15,6 @@
 
 import("//build_overrides/vulkan_tools.gni")
 
-vulkan_registry_script_files = [
-  "$vulkan_headers_dir/registry/cgenerator.py",
-  "$vulkan_headers_dir/registry/conventions.py",
-  "$vulkan_headers_dir/registry/generator.py",
-  "$vulkan_headers_dir/registry/reg.py",
-  "$vulkan_headers_dir/registry/vkconventions.py",
-  "$vulkan_headers_dir/registry/vk.xml",
-]
-
 # Vulkan-tools isn't ported to Fuchsia yet.
 # TODO(spang): Port mock ICD to Fuchsia.
 assert(!is_fuchsia)
@@ -37,93 +28,10 @@
 }
 
 raw_vulkan_icd_dir = rebase_path("icd", root_build_dir)
-raw_vulkan_headers_dir = rebase_path("$vulkan_headers_dir", root_build_dir)
-
-vulkan_gen_dir = "$target_gen_dir/$vulkan_gen_subdir"
-raw_vulkan_gen_dir = rebase_path(vulkan_gen_dir, root_build_dir)
 
 vulkan_data_dir = "$root_out_dir/$vulkan_data_subdir"
 raw_vulkan_data_dir = rebase_path(vulkan_data_dir, root_build_dir)
 
-# Vulkan helper scripts
-# ---------------------
-
-helper_script_and_deps = [
-  [
-    "vulkan_gen_typemap_helper",
-    "vk_typemap_helper.h",
-    "vulkan_tools_helper_file_generator.py",
-  ],
-  [
-    "vulkan_mock_icd_cpp",
-    "mock_icd.cpp",
-    "mock_icd_generator.py",
-  ],
-  [
-    "vulkan_mock_icd_h",
-    "mock_icd.h",
-    "mock_icd_generator.py",
-  ],
-]
-
-# Python scripts needed for codegen, copy them to a temp dir
-# so that all dependencies are together
-copy("python_gen_deps") {
-  sources = vulkan_registry_script_files + [
-              "scripts/common_codegen.py",
-              "scripts/kvt_genvk.py",
-              "scripts/mock_icd_generator.py",
-              "scripts/vulkan_tools_helper_file_generator.py",
-            ]
-  outputs = [
-    "$vulkan_gen_dir/{{source_file_part}}",
-  ]
-}
-
-foreach(script_and_dep, helper_script_and_deps) {
-  target_name = script_and_dep[0]
-  file = script_and_dep[1]
-  dep = script_and_dep[2]
-  target("action", target_name) {
-    public_deps = [
-      ":python_gen_deps",
-    ]
-    script = "$vulkan_gen_dir/kvt_genvk.py"
-    inputs = [
-      "$vulkan_gen_dir/$dep",
-      "$vulkan_gen_dir/common_codegen.py",
-    ]
-    outputs = [
-      "$vulkan_gen_dir/$file",
-    ]
-    args = [
-      "-o",
-      raw_vulkan_gen_dir,
-      "-registry",
-      "$raw_vulkan_headers_dir/registry/vk.xml",
-      "-scripts",
-      "$raw_vulkan_headers_dir/registry",
-      "$file",
-      "-quiet",
-    ]
-  }
-}
-
-config("vulkan_generated_files_config") {
-  include_dirs = [ vulkan_gen_dir ]
-}
-
-group("vulkan_generate_helper_files") {
-  public_deps = [
-    "$vulkan_headers_dir:vulkan_headers",
-  ]
-  public_configs = [ ":vulkan_generated_files_config" ]
-  foreach(script_and_dep, helper_script_and_deps) {
-    target_name = script_and_dep[0]
-    public_deps += [ ":$target_name" ]
-  }
-}
-
 config("vulkan_internal_config") {
   defines = [ "VULKAN_NON_CMAKE_BUILD" ]
   if (is_clang || !is_win) {
@@ -138,42 +46,21 @@
   }
 }
 
-# Copy icd header to gen dir
-copy("icd_header_dep") {
-  sources = [
-    "$vulkan_headers_dir/include/vulkan/vk_icd.h",
-  ]
-  outputs = [
-    "$vulkan_gen_dir/vk_icd.h",
-  ]
-}
-
 if (!is_android) {
   # Vulkan Mock ICD
   # ---------------
-  group("vulkan_generate_mock_icd_files") {
-    public_deps = [
-      ":icd_header_dep",
-      ":vulkan_generate_helper_files",
-      ":vulkan_mock_icd_cpp",
-      ":vulkan_mock_icd_h",
-    ]
-  }
-
-  mock_icd_sources = [
-    "$vulkan_gen_dir/mock_icd.cpp",
-    "$vulkan_gen_dir/mock_icd.h",
-  ]
-
   shared_library("VkICD_mock_icd") {
     configs -= vulkan_undefine_configs
-    deps = [
-      ":vulkan_generate_mock_icd_files",
+    public_deps = [
+      "$vulkan_headers_dir:vulkan_headers",
     ]
     data_deps = [
       ":vulkan_gen_icd_json_file",
     ]
-    sources = mock_icd_sources
+    sources = [
+      "icd/generated/mock_icd.cpp",
+      "icd/generated/mock_icd.h",
+    ]
     if (is_win) {
       sources += [ "icd/VkICD_mock_icd.def" ]
     }
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e6ba640..ae4b2e3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -27,7 +27,7 @@
 
 # find_package(), include() and global project settings --------------------------------------------------------------------------
 
-find_package(PythonInterp 3 REQUIRED)
+find_package(PythonInterp 3 QUIET)
 
 # User-interface declarations ----------------------------------------------------------------------------------------------------
 # This section contains variables that affect development GUIs (e.g. CMake GUI and IDEs), such as option(), folders, and variables
diff --git a/icd/CMakeLists.txt b/icd/CMakeLists.txt
index b569ab3..278536b 100644
--- a/icd/CMakeLists.txt
+++ b/icd/CMakeLists.txt
@@ -15,20 +15,6 @@
 # limitations under the License.
 # ~~~
 
-set(SCRIPTS_DIR "${PROJECT_SOURCE_DIR}/scripts")
-
-# Define macro used for building vk.xml generated files
-macro(run_vk_xml_generate dependency output)
-    add_custom_command(OUTPUT ${output}
-                       COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/kvt_genvk.py -registry ${VulkanRegistry_DIR}/vk.xml -scripts
-                               ${VulkanRegistry_DIR} ${output}
-                       DEPENDS ${VulkanRegistry_DIR}/vk.xml
-                               ${VulkanRegistry_DIR}/generator.py
-                               ${SCRIPTS_DIR}/${dependency}
-                               ${SCRIPTS_DIR}/kvt_genvk.py
-                               ${VulkanRegistry_DIR}/reg.py)
-endmacro()
-
 if(WIN32)
     add_definitions(-DVK_USE_PLATFORM_WIN32_KHR -DVK_USE_PLATFORM_WIN32_KHX -DWIN32_LEAN_AND_MEAN)
 elseif(ANDROID)
@@ -105,12 +91,6 @@
     endif()
 endif()
 
-# Custom target for generated vulkan helper file dependencies
-set(icd_generate_helper_files_DEPENDS)
-add_custom_target(icd_generate_helper_files DEPENDS vk_typemap_helper.h)
-set_target_properties(icd_generate_helper_files PROPERTIES FOLDER ${TOOLS_HELPER_FOLDER})
-run_vk_xml_generate(vulkan_tools_helper_file_generator.py vk_typemap_helper.h)
-
 # For ICD with a direct dependency on a project with the same name, use it.
 if(NOT (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR))
     foreach(config_file ${ICD_JSON_FILES})
@@ -128,8 +108,6 @@
                           VERBATIM)
         set_target_properties(copy-${target}-def-file PROPERTIES FOLDER ${TOOLS_HELPER_FOLDER})
         add_library(VkICD_${target} SHARED ${ARGN} VkICD_${target}.def)
-        add_dependencies(VkICD_${target} icd_generate_helper_files generate_icd_files)
-        # target_link_Libraries(VkICD_${target} VkICD_utils)
         if(INSTALL_ICD)
             install(TARGETS VkICD_${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
         endif()
@@ -137,8 +115,6 @@
 elseif(APPLE)
     macro(add_vk_icd target)
         add_library(VkICD_${target} SHARED ${ARGN})
-        # target_link_Libraries(VkICD_${target} VkICD_utils)
-        add_dependencies(VkICD_${target} icd_generate_helper_files generate_icd_files)
         set_target_properties(VkICD_${target} PROPERTIES LINK_FLAGS "-Wl")
         if(INSTALL_ICD)
             install(TARGETS VkICD_${target} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
@@ -147,8 +123,6 @@
 else()
     macro(add_vk_icd target)
         add_library(VkICD_${target} SHARED ${ARGN})
-        # target_link_Libraries(VkICD_${target} VkICD_utils)
-        add_dependencies(VkICD_${target} icd_generate_helper_files generate_icd_files)
         set_target_properties(VkICD_${target} PROPERTIES LINK_FLAGS "-Wl,-export-dynamic,-Bsymbolic,--exclude-libs,ALL")
         if((UNIX AND NOT APPLE) AND INSTALL_ICD) # i.e. Linux
             install(TARGETS VkICD_${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
@@ -178,10 +152,7 @@
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith -Wno-unused-function -Wno-sign-compare")
 endif()
 
-run_vk_xml_generate(mock_icd_generator.py mock_icd.h)
-run_vk_xml_generate(mock_icd_generator.py mock_icd.cpp)
-
-add_vk_icd(mock_icd mock_icd.cpp mock_icd.h)
+add_vk_icd(mock_icd generated/mock_icd.cpp generated/mock_icd.h)
 
 # JSON file(s) install targets. For Linux, need to remove the "./" from the library path before installing to system directories.
 if((UNIX AND NOT APPLE) AND INSTALL_ICD) # i.e. Linux