cmake: More cmake reorganization, including Linux
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a45ddcc..2b1556d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -44,7 +44,7 @@
# Enable cmake folders
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
-set(LVL_TARGET_FOLDER lvl_cmake_targets)
+set(VVL_TARGET_FOLDER vl_cmake_targets)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(FALLBACK_CONFIG_DIRS "/etc/xdg" CACHE STRING
@@ -81,8 +81,8 @@
# This option can be used to suppress the installation of artifacts from the
# Vulkan-LoaderAndValidationLayers repo while running "make install" for the
# VulkanTools and VulkanSamples repos. This can be used to prevent the
- # overwriting of LVL artifacts when installing these downstream repos.
- option(INSTALL_LVL_FILES "Install content from LoaderAndValidationLayers repo" ON)
+ # overwriting of VL artifacts when installing these downstream repos.
+ option(INSTALL_VL_FILES "Install content from ValidationLayers repo" ON)
endif()
# TODO: Add option to override this with env var, or even to use SDK
@@ -131,9 +131,6 @@
set (BINDATA_DIR Bin)
set (LIBSOURCE_DIR Lib)
else()
- # is WIN32
- option(ENABLE_WIN10_ONECORE "Link the loader with OneCore umbrella libraries" OFF)
-
# For Windows, since 32-bit and 64-bit items can co-exist, we build each in its own build directory.
# 32-bit target data goes in build32, and 64-bit target data goes into build. So, include/link the
# appropriate data at build time.
@@ -157,25 +154,148 @@
set(VULKAN_SDK $ENV{VULKAN_SDK})
-find_program(GLSLANG_VALIDATOR NAMES glslangValidator
- HINTS "${EXTERNAL_SOURCE_ROOT}/glslang/${BUILDTGT_DIR}/install/bin"
- "${VULKAN_SDK}/${BINDATA_DIR}"
- "${GLSLANG_BINARY_ROOT}/StandAlone"
- "${PROJECT_SOURCE_DIR}/external/${BINDATA_DIR}")
+# Set GLSLANG_REPO_ROOT to define the path to the glslang binaries for this project
-find_path(GLSLANG_SPIRV_INCLUDE_DIR SPIRV/spirv.hpp
- HINTS "${EXTERNAL_SOURCE_ROOT}/glslang"
- "${CMAKE_SOURCE_DIR}/../glslang"
- "${VULKAN_SDK}/include/vulkan"
- DOC "Path to SPIRV/spirv.hpp")
+# These paths assume that the update_glslang_sources.py script was run in the indicated glslang repo and the repo was built
+set(SPIRV_TOOLS_BINARY_ROOT "${GLSLANG_REPO_ROOT}/${BUILDTGT_DIR}/External/spirv-tools/source" CACHE STRING "User defined path to the SPIRV-Tools binaries for this project")
+set(SPIRV_TOOLS_OPT_BINARY_ROOT "${GLSLANG_REPO_ROOT}/${BUILDTGT_DIR}/External/spirv-tools/source/opt" CACHE STRING "User defined path to the SPIRV-Tools-opt binaries for this project")
-message("XXXXXXXXXXXXXX vksdkpath = ${VULKAN_SDK}")
+if (WIN32)
+ set(GSLANG_FINAL_BINARY_PATH ${GLSLANG_REPO_ROOT}/${BUILDTGT_DIR})
-find_path(SPIRV_TOOLS_INCLUDE_DIR spirv-tools/libspirv.h
- HINTS "${EXTERNAL_SOURCE_ROOT}/glslang/External/spirv-tools/include"
- "${CMAKE_SOURCE_DIR}/../glslang/External/spirv-tools/include"
- "${VULKAN_SDK}/spirv-tools/include"
- DOC "Path to spirv-tools/libspirv.h")
+ if(DISABLE_BUILD_PATH_DECORATION)
+ set (DEBUG_DECORATION "")
+ set (RELEASE_DECORATION "")
+ else()
+ set (DEBUG_DECORATION "Debug")
+ set (RELEASE_DECORATION "Release")
+ endif()
+
+ # Take some steps to set up a variable pointing to the final glslang binaries given the variety of input options
+ set (GLSLANG_SEARCH_PATH "${GSLANG_FINAL_BINARY_PATH}/glslang/${RELEASE_DECORATION}"
+ "${GSLANG_FINAL_BINARY_PATH}/glslang/OSDependent/Windows/${RELEASE_DECORATION}"
+ "${GSLANG_FINAL_BINARY_PATH}/hlsl/${RELEASE_DECORATION}"
+ "${GSLANG_FINAL_BINARY_PATH}/OGLCompilersDLL/${RELEASE_DECORATION}"
+ "${GSLANG_FINAL_BINARY_PATH}/SPIRV/${RELEASE_DECORATION}" )
+
+ set (GLSLANG_DEBUG_SEARCH_PATH "${GSLANG_FINAL_BINARY_PATH}/glslang/${DEBUG_DECORATION}"
+ "${GSLANG_FINAL_BINARY_PATH}/glslang/OSDependent/Windows/${DEBUG_DECORATION}"
+ "${GSLANG_FINAL_BINARY_PATH}/hlsl/${DEBUG_DECORATION}"
+ "${GSLANG_FINAL_BINARY_PATH}/OGLCompilersDLL/${DEBUG_DECORATION}"
+ "${GSLANG_FINAL_BINARY_PATH}/SPIRV/${DEBUG_DECORATION}")
+
+ set (SPIRV_TOOLS_SEARCH_PATH "${SPIRV_TOOLS_BINARY_ROOT}/${RELEASE_DECORATION}")
+ set (SPIRV_TOOLS_DEBUG_SEARCH_PATH "${SPIRV_TOOLS_BINARY_ROOT}/${DEBUG_DECORATION}")
+ set (SPIRV_TOOLS_OPT_SEARCH_PATH "${SPIRV_TOOLS_OPT_BINARY_ROOT}/${RELEASE_DECORATION}")
+ set (SPIRV_TOOLS_OPT_DEBUG_SEARCH_PATH "${SPIRV_TOOLS_OPT_BINARY_ROOT}/${DEBUG_DECORATION}")
+else()
+ # not WIN32
+ set (GLSLANG_SEARCH_PATH "${GLSLANG_REPO_ROOT}/${BUILDTGT_DIR}/install/lib"
+ "${GLSLANG_REPO_ROOT}/${BUILDTGT_DIR}/glslang"
+ "${GLSLANG_REPO_ROOT}/${BUILDTGT_DIR}/glslang/OSDependent/Unix"
+ "${GLSLANG_REPO_ROOT}/${BUILDTGT_DIR}/OGLCompilersDLL"
+ "${GLSLANG_REPO_ROOT}/${BUILDTGT_DIR}/SPIRV"
+ "${GLSLANG_REPO_ROOT}/${BUILDTGT_DIR}/hlsl"
+ "${GLSLANG_REPO_ROOT}/${BUILDTGT_DIR}/StandAlone")
+
+ set (SPIRV_TOOLS_SEARCH_PATH "${SPIRV_TOOLS_BINARY_ROOT}" )
+ set (SPIRV_TOOLS_OPT_SEARCH_PATH "${SPIRV_TOOLS_OPT_BINARY_ROOT}" )
+endif()
+
+find_path(GLSLANG_SPIRV_INCLUDE_DIR SPIRV/spirv.hpp HINTS
+ "${GLSLANG_REPO_ROOT}"
+ "${CMAKE_SOURCE_DIR}/../glslang"
+ DOC "Path to SPIRV/spirv.hpp")
+
+find_path(SPIRV_TOOLS_INCLUDE_DIR spirv-tools/libspirv.h HINTS
+ "${GLSLANG_REPO_ROOT}/External/spirv-tools/include"
+ "${CMAKE_SOURCE_DIR}/../glslang/External/spirv-tools/include"
+ DOC "Path to spirv-tools/libspirv.h")
+
+find_library(GLSLANG_LIB NAMES glslang
+ HINTS ${GLSLANG_SEARCH_PATH} )
+
+find_library(OGLCompiler_LIB NAMES OGLCompiler
+ HINTS ${GLSLANG_SEARCH_PATH} )
+
+find_library(OSDependent_LIB NAMES OSDependent
+ HINTS ${GLSLANG_SEARCH_PATH} )
+
+find_library(HLSL_LIB NAMES HLSL
+ HINTS ${GLSLANG_SEARCH_PATH} )
+
+find_library(SPIRV_LIB NAMES SPIRV
+ HINTS ${GLSLANG_SEARCH_PATH} )
+
+find_library(SPIRV_REMAPPER_LIB NAMES SPVRemapper
+ HINTS ${GLSLANG_SEARCH_PATH} )
+
+find_library(SPIRV_TOOLS_LIB NAMES SPIRV-Tools
+ HINTS ${SPIRV_TOOLS_SEARCH_PATH} )
+
+find_library(SPIRV_TOOLS_OPT_LIB NAMES SPIRV-Tools-opt
+ HINTS ${SPIRV_TOOLS_OPT_SEARCH_PATH} )
+
+if (WIN32)
+ add_library(glslang STATIC IMPORTED)
+ add_library(OGLCompiler STATIC IMPORTED)
+ add_library(OSDependent STATIC IMPORTED)
+ add_library(HLSL STATIC IMPORTED)
+ add_library(SPIRV STATIC IMPORTED)
+ add_library(SPVRemapper STATIC IMPORTED)
+ add_library(Loader STATIC IMPORTED)
+ add_library(SPIRV-Tools-opt STATIC IMPORTED)
+ add_library(SPIRV-Tools STATIC IMPORTED)
+
+ find_library(GLSLANG_DLIB NAMES glslangd
+ HINTS ${GLSLANG_DEBUG_SEARCH_PATH} )
+ find_library(OGLCompiler_DLIB NAMES OGLCompilerd
+ HINTS ${GLSLANG_DEBUG_SEARCH_PATH} )
+ find_library(OSDependent_DLIB NAMES OSDependentd
+ HINTS ${GLSLANG_DEBUG_SEARCH_PATH} )
+ find_library(HLSL_DLIB NAMES HLSLd
+ HINTS ${GLSLANG_DEBUG_SEARCH_PATH} )
+ find_library(SPIRV_DLIB NAMES SPIRVd
+ HINTS ${GLSLANG_DEBUG_SEARCH_PATH} )
+ find_library(SPIRV_REMAPPER_DLIB NAMES SPVRemapperd
+ HINTS ${GLSLANG_DEBUG_SEARCH_PATH} )
+ find_library(SPIRV_TOOLS_DLIB NAMES SPIRV-Toolsd
+ HINTS ${SPIRV_TOOLS_DEBUG_SEARCH_PATH} )
+ find_library(SPIRV_TOOLS_OPT_DLIB NAMES SPIRV-Tools-optd
+ HINTS ${SPIRV_TOOLS_OPT_DEBUG_SEARCH_PATH} )
+
+ set_target_properties(glslang PROPERTIES
+ IMPORTED_LOCATION "${GLSLANG_LIB}"
+ IMPORTED_LOCATION_DEBUG "${GLSLANG_DLIB}")
+ set_target_properties(OGLCompiler PROPERTIES
+ IMPORTED_LOCATION "${OGLCompiler_LIB}"
+ IMPORTED_LOCATION_DEBUG "${OGLCompiler_DLIB}")
+ set_target_properties(OSDependent PROPERTIES
+ IMPORTED_LOCATION "${OSDependent_LIB}"
+ IMPORTED_LOCATION_DEBUG "${OSDependent_DLIB}")
+ set_target_properties(HLSL PROPERTIES
+ IMPORTED_LOCATION "${HLSL_LIB}"
+ IMPORTED_LOCATION_DEBUG "${HLSL_DLIB}")
+ set_target_properties(SPIRV PROPERTIES
+ IMPORTED_LOCATION "${SPIRV_LIB}"
+ IMPORTED_LOCATION_DEBUG "${SPIRV_DLIB}")
+ set_target_properties(SPVRemapper PROPERTIES
+ IMPORTED_LOCATION "${SPIRV_REMAPPER_LIB}"
+ IMPORTED_LOCATION_DEBUG "${SPIRV_REMAPPER_DLIB}")
+ set_target_properties(SPIRV-Tools PROPERTIES
+ IMPORTED_LOCATION "${SPIRV_TOOLS_LIB}"
+ IMPORTED_LOCATION_DEBUG "${SPIRV_TOOLS_DLIB}")
+ set_target_properties(SPIRV-Tools-opt PROPERTIES
+ IMPORTED_LOCATION "${SPIRV_TOOLS_OPT_LIB}"
+ IMPORTED_LOCATION_DEBUG "${SPIRV_TOOLS_OPT_DLIB}")
+
+ set (SPIRV_TOOLS_LIBRARIES SPIRV-Tools-opt SPIRV-Tools)
+ set (GLSLANG_LIBRARIES glslang OGLCompiler OSDependent HLSL SPIRV SPVRemapper ${SPIRV_TOOLS_LIBRARIES})
+else ()
+ # not WIN32
+ set (SPIRV_TOOLS_LIBRARIES ${SPIRV_TOOLS_OPT_LIB} ${SPIRV_TOOLS_LIB})
+ set (GLSLANG_LIBRARIES ${GLSLANG_LIB} ${OGLCompiler_LIB} ${OSDependent_LIB} ${HLSL_LIB} ${SPIRV_LIB} ${SPIRV_REMAPPER_LIB} ${SPIRV_TOOLS_LIBRARIES})
+endif()
set (PYTHON_CMD ${PYTHON_EXECUTABLE})
@@ -193,7 +313,7 @@
endif()
if(UNIX)
- if(INSTALL_LVL_FILES)
+ if(INSTALL_VL_FILES)
install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/vulkan" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/vk_layer_dispatch_table.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/vulkan")
endif()
diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt
index cb1369c..b6068ed 100644
--- a/layers/CMakeLists.txt
+++ b/layers/CMakeLists.txt
@@ -2,7 +2,7 @@
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
add_definitions(-DVK_USE_PLATFORM_WIN32_KHR -DVK_USE_PLATFORM_WIN32_KHX -DWIN32_LEAN_AND_MEAN)
add_custom_target(mk_layer_config_dir ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
- set_target_properties(mk_layer_config_dir PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+ set_target_properties(mk_layer_config_dir PROPERTIES FOLDER ${VVL_TARGET_FOLDER})
set(DisplayServer Win32)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Android")
add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR -DVK_USE_PLATFORM_ANDROID_KHX)
@@ -34,7 +34,6 @@
set (PYTHON_CMD ${PYTHON_EXECUTABLE})
set(SCRIPTS_DIR "${PROJECT_SOURCE_DIR}/scripts")
-message("xXXXxxXXxX scrips_dir is ${SCRIPTS_DIR}")
# Define macro used for building vkxml generated files
macro(run_vk_xml_generate dependency output)
@@ -50,16 +49,16 @@
# NOTE: If you modify this call to use --rev_file instead of --git_dir (to read the commit ID from a file instead of
# parsing from a Git repository), you probably also want to add the revision file to the list of DEPENDS on the
# subsequent line (to ensure that the script is re-run when the revision file is modified).
- COMMAND ${PYTHON_CMD} ${SCRIPTS_DIR}/external_revision_generator.py --git_dir ${source_dir} -s ${symbol_name} -o ${output}
+ # COMMAND ${PYTHON_CMD} ${SCRIPTS_DIR}/external_revision_generator.py --git_dir ${source_dir} -s ${symbol_name} -o ${output}
+ COMMAND ${PYTHON_CMD} ${SCRIPTS_DIR}/external_revision_generator.py --rev_file ${source_dir} -s ${symbol_name} -o ${output}
DEPENDS ${SCRIPTS_DIR}/external_revision_generator.py ${source_dir}/.git/HEAD ${source_dir}/.git/index
)
endmacro()
-# Custom target for generated vulkan helper file dependencies
-set(generate_helper_files_DEPENDS)
-if(BUILD_LAYERS)
- LIST(APPEND generate_helper_files_DEPENDS spirv_tools_commit_id.h)
-endif()
+# Custom targets for generated validation layer helper file dependencies
+add_custom_target(spirv_tools_revision_file DEPENDS
+ spirv_tools_commit_id.h
+ )
add_custom_target(generate_helper_files DEPENDS
vk_enum_string_helper.h
vk_safe_struct.h
@@ -69,9 +68,9 @@
vk_dispatch_table_helper.h
vk_extension_helper.h
vk_typemap_helper.h
- ${generate_helper_files_DEPENDS}
)
-set_target_properties(generate_helper_files PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+set_target_properties(spirv_tools_revision_file PROPERTIES FOLDER ${VVL_TARGET_FOLDER})
+set_target_properties(generate_helper_files PROPERTIES FOLDER ${VVL_TARGET_FOLDER})
# Rules to build generated helper files
run_vk_xml_generate(loader_extension_generator.py vk_layer_dispatch_table.h)
@@ -83,8 +82,9 @@
run_vk_xml_generate(helper_file_generator.py vk_extension_helper.h)
run_vk_xml_generate(helper_file_generator.py vk_typemap_helper.h)
if(BUILD_LAYERS)
- # TODO: fix this or find out if we can nuke it.VUID-VkImageCreateInfo-tiling-00977
- #run_external_revision_generate(${EXTERNAL_SOURCE_ROOT}/glslang/External/spirv-tools SPIRV_TOOLS_COMMIT_ID spirv_tools_commit_id.h)
+ #run_external_revision_generate(${EXTERNAL_SOURCE_ROOT}/glslang/External/spirv-tools SPIRV_TOOLS_COMMIT_ID spirv_tools_commit_id.h)
+ #run_external_revision_generate(${SPIRV_TOOLS_INCLUDE_DIR} SPIRV_TOOLS_COMMIT_ID spirv_tools_commit_id.h)
+ #### TODO LUGMAL FIX THIS!!!! run_external_revision_generate(${SPIRV_TOOLS_INCLUDE_DIR}/.. SPIRV_TOOLS_COMMIT_ID spirv_tools_commit_id.h)
endif()
@@ -104,7 +104,7 @@
target_compile_definitions(VkLayer_utils PUBLIC _CRT_SECURE_NO_WARNINGS)
else()
add_library(VkLayer_utils SHARED ${VKLAYER_UTILS_VLF_SOURCES})
- if(INSTALL_LVL_FILES)
+ if(INSTALL_VL_FILES)
install(TARGETS VkLayer_utils DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
endif()
@@ -113,13 +113,11 @@
VkLayer_utils PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/loader
${VULKAN_HEADERS_LOCATION}/include
- ${VULKAN_HEADERS_LOCATION}/include/vulkan
+ ${VULKAN_HEADERS_LOCATION}/interfaces
${CMAKE_CURRENT_BINARY_DIR}
+ ${PROJECT_BINARY_DIR}
)
-message("OOOOOOOOOOOO vulkan hdrs loc = ${VULKAN_HEADERS_LOCATION}")
-
-
set(LAYER_JSON_FILES_WITH_DEPENDENCIES
VkLayer_core_validation
VkLayer_object_tracker
@@ -144,7 +142,7 @@
COMMAND copy ${src_json} ${dst_json}
VERBATIM
)
- set_target_properties(${config_file}-json PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+ set_target_properties(${config_file}-json PROPERTIES FOLDER ${VVL_TARGET_FOLDER})
endforeach(config_file)
else()
foreach (config_file ${LAYER_JSON_FILES})
@@ -164,7 +162,7 @@
COMMAND copy ${src_val_msgs} ${dst_val_msgs}
VERBATIM
)
- set_target_properties(vk_validation_error_messages PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+ set_target_properties(vk_validation_error_messages PROPERTIES FOLDER ${VVL_TARGET_FOLDER})
endif()
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
# extra setup for out-of-tree builds
@@ -207,6 +205,7 @@
)
endif()
endif()
+
# If a layer has a direct dependency on a project with the same name, use it.
if ((Win32) OR (NOT (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)))
foreach (config_file ${LAYER_JSON_FILES_WITH_DEPENDENCIES})
@@ -221,7 +220,7 @@
# Add targets for JSON file install on Linux.
# Need to remove the "./" from the library path before installing to system directories.
if(UNIX)
- if(INSTALL_LVL_FILES)
+ if(INSTALL_VL_FILES)
foreach (config_file ${LAYER_JSON_FILES})
add_custom_target(${config_file}-staging-json ALL
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/staging-json
@@ -242,7 +241,7 @@
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DEF_FILE} VkLayer_${target}.def
VERBATIM
)
- set_target_properties(copy-${target}-def-file PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+ set_target_properties(copy-${target}-def-file PROPERTIES FOLDER ${VVL_TARGET_FOLDER})
add_library(VkLayer_${target} SHARED ${ARGN} VkLayer_${target}.def)
add_dependencies(VkLayer_${target} generate_helper_files)
target_link_Libraries(VkLayer_${target} VkLayer_utils)
@@ -265,29 +264,25 @@
target_link_Libraries(VkLayer_${target} VkLayer_utils)
add_dependencies(VkLayer_${target} generate_helper_files VkLayer_utils)
set_target_properties(VkLayer_${target} PROPERTIES LINK_FLAGS "-Wl,-Bsymbolic,--exclude-libs,ALL")
- if(INSTALL_LVL_FILES)
+ if(INSTALL_VL_FILES)
install(TARGETS VkLayer_${target} DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()
endmacro()
endif()
-# TODO: cut down this list, maybe add target includes?
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_BINARY_DIR}
${VULKAN_HEADERS_LOCATION}/include
${VULKAN_HEADERS_LOCATION}/include/vulkan
- ${PROJECT_BINARY_DIR}
- ${CMAKE_BINARY_DIR}
)
-message("FFFFFFFFFF cmake_current_binary_dir is ${CMAKE_CURRENT_BINARY_DIR}")
if (WIN32)
# Applies to all configurations
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
# Avoid: fatal error C1128: number of sections exceeded object file format limit: compile with /bigobj
set_source_files_properties(core_validation.cpp threading.cpp
- PROPERTIES COMPILE_FLAGS "/bigobj")
+ PROPERTIES COMPILE_FLAGS "/bigobj"
+ )
# Turn off transitional "changed behavior" warning message for Visual Studio versions prior to 2015.
# The changed behavior is that constructor initializers are now fixed to clear the struct members.
add_compile_options("$<$<AND:$<CXX_COMPILER_ID:MSVC>,$<VERSION_LESS:$<CXX_COMPILER_VERSION>,19>>:/wd4351>")
@@ -296,9 +291,7 @@
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith -Wno-unused-function -Wno-sign-compare")
endif()
-# Clang (and not gcc) warns about unused const variables.
-# Generated files may purposely contain unused consts, so
-# silence this warning in Clang.
+# Clang warns about unused const variables. Generated files may purposely contain unused consts, so silence this warning in Clang
if (CMAKE_C_COMPILER_ID MATCHES "Clang")
set_source_files_properties(parameter_validation.cpp PROPERTIES
COMPILE_FLAGS "-Wno-unused-const-variable")
@@ -312,7 +305,6 @@
add_vk_layer(core_validation core_validation.cpp vk_layer_table.cpp descriptor_sets.cpp buffer_validation.cpp shader_validation.cpp xxhash.c)
add_vk_layer(object_tracker object_tracker.cpp object_tracker_utils.cpp vk_layer_table.cpp)
-# generated
add_vk_layer(threading threading.cpp thread_check.h vk_layer_table.cpp)
add_vk_layer(unique_objects unique_objects.cpp unique_objects_wrappers.h vk_layer_table.cpp)
add_vk_layer(parameter_validation parameter_validation.cpp parameter_validation_utils.cpp parameter_validation.h vk_layer_table.cpp vk_validation_error_messages.h)
@@ -321,3 +313,4 @@
target_include_directories(VkLayer_core_validation PRIVATE ${GLSLANG_SPIRV_INCLUDE_DIR})
target_include_directories(VkLayer_core_validation PRIVATE ${SPIRV_TOOLS_INCLUDE_DIR})
target_link_libraries(VkLayer_core_validation ${SPIRV_TOOLS_LIBRARIES})
+add_dependencies(VkLayer_core_validation spirv_tools_revision_file)
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 195c675..2832dc1 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -76,7 +76,7 @@
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${VALIDATE_DOC} vkvalidatelayerdoc.ps1
VERBATIM
)
- set_target_properties(binary-dir-symlinks PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+ set_target_properties(binary-dir-symlinks PROPERTIES FOLDER ${VVL_TARGET_FOLDER})
endif()
endif()
@@ -92,18 +92,16 @@
set_target_properties(vk_layer_validation_tests
PROPERTIES
COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
-# TODO: Winnow this list!!!!
-target_include_directories(vk_layer_validation_tests
+target_include_directories(vk_layer_validation_tests PUBLIC
${VULKAN_HEADERS_LOCATION}/include
- ${VULKAN_HEADERS_LOCATION}/include/vulkan
- ${PROJECT_SOURCE_DIR}/tests
- ${PROJECT_SOURCE_DIR}/submodules/googletest/googletest/include
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/googletest/googletest/include
${PROJECT_SOURCE_DIR}/layers
${GLSLANG_SPIRV_INCLUDE_DIR}
- #### ${LIBGLM_INCLUDE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_BINARY_DIR}
${PROJECT_BINARY_DIR}
+ ${PROJECT_BINARY_DIR}/layers
)
if(NOT WIN32)
@@ -117,31 +115,22 @@
endif()
endif()
if(WIN32)
- target_link_libraries(vk_layer_validation_tests ${LIBVK} gtest gtest_main ${GLSLANG_LIBRARIES})
+ target_link_libraries(vk_layer_validation_tests ${LIBVK} gtest gtest_main ${GLSLANG_LIBRARIES})
endif()
-# TODO: change to add_target_dependencies
-# TODO: WHY DO THESE MATTER? Seems silly
-#add_dependencies(vk_layer_validation_tests
-# VkLayer_core_validation
-# VkLayer_object_tracker
-# VkLayer_threading
-# VkLayer_unique_objects
-# VkLayer_parameter_validation
-#)
if (WIN32)
# For Windows, copy necessary gtest DLLs to the right spot for the vk_layer_tests...
- FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../submodules/googletest/googletest/$<CONFIGURATION>/*.dll SRC_GTEST_DLLS)
+ FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/googletest/googletest/$<CONFIGURATION>/*.dll SRC_GTEST_DLLS)
FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION> DST_GTEST_DLLS)
add_custom_command(TARGET vk_layer_validation_tests POST_BUILD
COMMAND xcopy /Y /I ${SRC_GTEST_DLLS} ${DST_GTEST_DLLS})
endif()
-set (GTEST_RELATIVE_LOCATION ../submodules/googletest)
+set (GTEST_RELATIVE_LOCATION googletest)
SET(BUILD_GTEST ON CACHE BOOL "Builds the googletest subproject")
SET(BUILD_GMOCK OFF CACHE BOOL "Builds the googlemock subproject")
SET(gtest_force_shared_crt ON CACHE BOOL "Link gtest runtimes dynamically")
SET(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries")
-add_subdirectory(${GTEST_RELATIVE_LOCATION} ${CMAKE_CURRENT_BINARY_DIR}/../submodules/googletest)
+add_subdirectory(${GTEST_RELATIVE_LOCATION} ${CMAKE_CURRENT_BINARY_DIR}/googletest)
add_subdirectory(layers)
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 04292ab..e4dbd91 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -23417,8 +23417,7 @@
vkCreatePipelineLayout(m_device->device(), &pipeline_layout_ci, NULL, &pipeline_layout);
- // Create a dummy pipeline, since LVL inspects which bindings are
- // actually used at draw time
+ // Create a dummy pipeline, since VL inspects which bindings are actually used at draw time
char const *vsSource =
"#version 450\n"
"void main(){\n"
diff --git a/tests/layers/CMakeLists.txt b/tests/layers/CMakeLists.txt
index 3965b26..0fc16dc 100644
--- a/tests/layers/CMakeLists.txt
+++ b/tests/layers/CMakeLists.txt
@@ -21,7 +21,7 @@
VERBATIM
)
add_dependencies(${config_file}-json ${config_file})
- set_target_properties(${config_file}-json PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+ set_target_properties(${config_file}-json PROPERTIES FOLDER ${VVL_TARGET_FOLDER})
endforeach(config_file)
endif()
elseif(APPLE)
@@ -58,24 +58,24 @@
endif()
if (WIN32)
- macro(add_vk_layer target)
+ macro(add_test_layer target)
FILE(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/VkLayer_${target}.def DEF_FILE)
add_custom_target(copy-${target}-def-file ALL
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${DEF_FILE} VkLayer_${target}.def
VERBATIM
)
- set_target_properties(copy-${target}-def-file PROPERTIES FOLDER ${LVL_TARGET_FOLDER})
+ set_target_properties(copy-${target}-def-file PROPERTIES FOLDER ${VVL_TARGET_FOLDER})
add_library(VkLayer_${target} SHARED ${ARGN} VkLayer_${target}.def)
add_dependencies(VkLayer_${target} generate_helper_files VkLayer_utils)
endmacro()
elseif(APPLE)
- macro(add_vk_layer target)
+ macro(add_test_layer target)
add_library(VkLayer_${target} SHARED ${ARGN})
add_dependencies(VkLayer_${target} generate_helper_files VkLayer_utils)
set_target_properties(VkLayer_${target} PROPERTIES LINK_FLAGS "-Wl")
endmacro()
else()
- macro(add_vk_layer target)
+ macro(add_test_layer target)
add_library(VkLayer_${target} SHARED ${ARGN})
add_dependencies(VkLayer_${target} generate_helper_files VkLayer_utils)
set_target_properties(VkLayer_${target} PROPERTIES LINK_FLAGS "-Wl,-Bsymbolic")
@@ -83,12 +83,13 @@
endif()
include_directories(
+ ${VULKAN_HEADERS_LOCATION}/include
+ #TODO: Clear out this list
${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}/../../layers
- ${CMAKE_CURRENT_SOURCE_DIR}/../../loader
- ${CMAKE_CURRENT_SOURCE_DIR}/../../include/vulkan
+ ${PROJECT_SOURCE_DIR}/layers
${CMAKE_CURRENT_BINARY_DIR}
${PROJECT_BINARY_DIR}
+ ${PROJECT_BINARY_DIR}/layers
${CMAKE_BINARY_DIR}
)
@@ -103,12 +104,12 @@
endif()
set (DEVICE_PROFILE_API_SRCS
- device_profile_api.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/../../layers/vk_layer_table.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/../../layers/vk_layer_extension_utils.cpp
- )
+ device_profile_api.cpp
+ ${PROJECT_SOURCE_DIR}/layers/vk_layer_table.cpp
+ ${PROJECT_SOURCE_DIR}/layers/vk_layer_extension_utils.cpp
+ )
-add_vk_layer(device_profile_api ${DEVICE_PROFILE_API_SRCS})
+add_test_layer(device_profile_api ${DEVICE_PROFILE_API_SRCS})
if (WIN32)
# For Windows, copy necessary gtest DLLs to the right spot for the vk_layer_tests...
diff --git a/tests/test_common.h b/tests/test_common.h
index e1d8670..05eccba 100644
--- a/tests/test_common.h
+++ b/tests/test_common.h
@@ -64,7 +64,7 @@
// Use the NDK's header on Android
#ifndef __ANDROID__
-#include "../submodules/googletest/googletest/include/gtest/gtest.h"
+#include "googletest/googletest/include/gtest/gtest.h"
#else
#include "gtest/gtest.h"
#endif