Canonicalize Vulkan ICD library names

Windows DLLs are not systematically prefixed with "lib".
This change follows the implicit and explict expectations set out in:
https://vulkan.lunarg.com/doc/view/1.0.21.0/windows/LoaderAndLayerInterface.html
http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN49

Also make the vk_swiftshader target a dependency of vk-unittests so that
building the latter also allows running it.

Bug: b/139189696
Change-Id: I070871e63c5cefc3f80a6f441a1d5097c85b82b6
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/35630
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9a518af..370ba96 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2039,48 +2039,47 @@
         add_subdirectory(third_party/SPIRV-Tools)
     endif()
 
-    add_library(libvk_swiftshader SHARED ${VULKAN_LIST})
-    set_target_properties(libvk_swiftshader PROPERTIES
+    add_library(vk_swiftshader SHARED ${VULKAN_LIST})
+
+    set_target_properties(vk_swiftshader PROPERTIES
         INCLUDE_DIRECTORIES "${VULKAN_INCLUDE_DIR}"
         FOLDER "Vulkan"
         COMPILE_OPTIONS "${SWIFTSHADER_COMPILE_OPTIONS}"
         COMPILE_DEFINITIONS "VK_EXPORT=;NO_SANITIZE_FUNCTION=;$<$<CONFIG:Debug>:DEBUGGER_WAIT_DIALOG>"
-        PREFIX ""
     )
 
     if(WIN32)
-        set_property(TARGET libvk_swiftshader APPEND
+        set_property(TARGET vk_swiftshader APPEND
                      PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_WIN32_KHR")
     elseif(LINUX)
         if(X11)
-            set_property(TARGET libvk_swiftshader APPEND
+            set_property(TARGET vk_swiftshader APPEND
                         PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_XLIB_KHR")
         endif(X11)
         if(XCB)
-            set_property(TARGET libvk_swiftshader APPEND
+            set_property(TARGET vk_swiftshader APPEND
                         PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_XCB_KHR")
         endif(XCB)
     elseif(APPLE)
-        set_property(TARGET libvk_swiftshader APPEND
+        set_property(TARGET vk_swiftshader APPEND
                      PROPERTY COMPILE_DEFINITIONS "VK_USE_PLATFORM_MACOS_MVK")
     endif()
 
-    set_shared_library_export_map(libvk_swiftshader ${SOURCE_DIR}/Vulkan)
-    target_link_libraries(libvk_swiftshader ${Reactor} Yarn ${OS_LIBS} SPIRV-Tools SPIRV-Tools-opt)
+    set_shared_library_export_map(vk_swiftshader ${SOURCE_DIR}/Vulkan)
+    target_link_libraries(vk_swiftshader ${Reactor} Yarn ${OS_LIBS} SPIRV-Tools SPIRV-Tools-opt)
     add_custom_command(
-        TARGET libvk_swiftshader
+        TARGET vk_swiftshader
         POST_BUILD
-        COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:libvk_swiftshader>/translator
-        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libvk_swiftshader> $<TARGET_FILE_DIR:libvk_swiftshader>/translator/${LIB_PREFIX}Vulkan_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
+        COMMAND ${CMAKE_COMMAND} -E make_directory $<TARGET_FILE_DIR:vk_swiftshader>/translator
+        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> $<TARGET_FILE_DIR:vk_swiftshader>/translator/${LIB_PREFIX}Vulkan_translator${CMAKE_SHARED_LIBRARY_SUFFIX}
         COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
-        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:libvk_swiftshader> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
+        COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:vk_swiftshader> ${CMAKE_BINARY_DIR}/${CMAKE_SYSTEM_NAME}/
     )
 
     # The vk_swiftshader_icd.json manifest file will point to ICD_LIBRARY_PATH.
     # Set ICD_LIBRARY_PATH to be a relative path similar to "./libvk_swiftshader.so", so both files can be moved.
     # A relative path is relative to the manifest file.
-    # Note that the library name is always "libvk_swiftshader"; we do not use the platform-specific prefix.
-    set(ICD_LIBRARY_PATH "libvk_swiftshader${CMAKE_SHARED_LIBRARY_SUFFIX}")
+    set(ICD_LIBRARY_PATH "${CMAKE_SHARED_LIBRARY_PREFIX}vk_swiftshader${CMAKE_SHARED_LIBRARY_SUFFIX}")
     if(WIN32)
         # The path is output to a JSON file, which requires backslashes to be escaped.
         set(ICD_LIBRARY_PATH ".\\\\${ICD_LIBRARY_PATH}")
@@ -2255,6 +2254,8 @@
     )
 
     add_executable(vk-unittests ${VK_UNITTESTS_LIST})
+    add_dependencies(vk-unittests vk_swiftshader)
+
     set_target_properties(vk-unittests PROPERTIES
         INCLUDE_DIRECTORIES "${VK_UNITTESTS_INCLUDE_DIR}"
         FOLDER "Tests"
diff --git a/src/Vulkan/libvk_swiftshader.def b/src/Vulkan/vk_swiftshader.def
similarity index 100%
rename from src/Vulkan/libvk_swiftshader.def
rename to src/Vulkan/vk_swiftshader.def
diff --git a/src/Vulkan/libvk_swiftshader.exports b/src/Vulkan/vk_swiftshader.exports
similarity index 100%
rename from src/Vulkan/libvk_swiftshader.exports
rename to src/Vulkan/vk_swiftshader.exports
diff --git a/src/Vulkan/libvk_swiftshader.lds b/src/Vulkan/vk_swiftshader.lds
similarity index 100%
rename from src/Vulkan/libvk_swiftshader.lds
rename to src/Vulkan/vk_swiftshader.lds
diff --git a/tests/VulkanUnitTests/Driver.cpp b/tests/VulkanUnitTests/Driver.cpp
index e216d74..047e394 100644
--- a/tests/VulkanUnitTests/Driver.cpp
+++ b/tests/VulkanUnitTests/Driver.cpp
@@ -61,19 +61,24 @@
 	#elif defined(NDEBUG)
 		#if defined(_WIN64)
 			return load("./build/Release_x64/vk_swiftshader.dll") ||
+			       load("./build/Release/vk_swiftshader.dll") ||
+			       load("./vk_swiftshader.dll");
 		#else
 			return load("./build/Release_Win32/vk_swiftshader.dll") ||
+			       load("./build/Release/vk_swiftshader.dll") ||
+			       load("./vk_swiftshader.dll");
 		#endif
-			       load("./build/Release/libvk_swiftshader.dll") ||
 	#else
 		#if defined(_WIN64)
 			return load("./build/Debug_x64/vk_swiftshader.dll") ||
+			       load("./build/Debug/vk_swiftshader.dll") ||
+			       load("./vk_swiftshader.dll");
 		#else
 			return load("./build/Debug_Win32/vk_swiftshader.dll") ||
+			       load("./build/Debug/vk_swiftshader.dll") ||
+			       load("./vk_swiftshader.dll");
 		#endif
-			       load("./build/Debug/libvk_swiftshader.dll") ||
 	#endif
-			       load("./libvk_swiftshader.dll");
 #elif OS_MAC
 	return load("./build/Darwin/libvk_swiftshader.dylib") ||
 	       load("swiftshader/libvk_swiftshader.dylib") ||
@@ -81,7 +86,7 @@
 #elif OS_LINUX
 	return load("./build/Linux/libvk_swiftshader.so") ||
 	       load("swiftshader/libvk_swiftshader.so") ||
-	       load("libvk_swiftshader.so");
+	       load("./libvk_swiftshader.so");
 #elif OS_ANDROID || OS_FUCHSIA
 	return load("libvk_swiftshader.so");
 #else