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