loader: added Windows resource file for vulkan-1.dll
authorDavid Pinedo <david@lunarg.com>
Thu, 5 May 2016 19:52:37 +0000 (13:52 -0600)
committerDavid Pinedo <david@lunarg.com>
Thu, 5 May 2016 19:52:37 +0000 (13:52 -0600)
Properties->Details on vulkan-1.dll will display valid
version and build information

Address:
  https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/473

BUILD.md
loader/CMakeLists.txt
loader/loader.rc [new file with mode: 0755]
windowsRuntimeInstaller/InstallerRT.nsi

index 432a4c2..c21935d 100644 (file)
--- a/BUILD.md
+++ b/BUILD.md
@@ -100,6 +100,10 @@ Windows 7+ with additional required software packages:
 
 ## Windows Build - MSVC
 
+Before building on Windows, you may want to modify the customize section in loader/loader.rc to so as to
+set the version numbers and build description for your build. Doing so will set the information displayed
+for the Properites->Details tab of the loader vulkan-1.dll file that is built.
+
 Build all Windows targets after installing required software and cloning the LVL repo as described above by completing the following steps in a "Developer Command Prompt for VS2013" window (Note that the update\_external\_sources script used below builds external tools into predefined locations. See **LVL's Dependencies** for more information and other options):
 ```
 cd Vulkan-LoaderAndValidationLayers  # cd to the root of the cloned git repository
index 4823d21..1dcf58f 100644 (file)
@@ -49,7 +49,7 @@ if (WIN32)
     target_compile_options(loader-norm PUBLIC "$<$<CONFIG:DEBUG>:${LOCAL_C_FLAGS_DBG}>")
     add_library(loader-opt OBJECT ${OPT_LOADER_SRCS})
     target_compile_options(loader-opt PUBLIC "$<$<CONFIG:DEBUG>:${LOCAL_C_FLAGS_REL}>")
-    add_library(vulkan-${MAJOR} SHARED $<TARGET_OBJECTS:loader-opt> $<TARGET_OBJECTS:loader-norm> ${CMAKE_CURRENT_BINARY_DIR}/vulkan-${MAJOR}.def)
+    add_library(vulkan-${MAJOR} SHARED $<TARGET_OBJECTS:loader-opt> $<TARGET_OBJECTS:loader-norm> ${CMAKE_CURRENT_BINARY_DIR}/vulkan-${MAJOR}.def ${CMAKE_CURRENT_SOURCE_DIR}/loader.rc)
     set_target_properties(vulkan-${MAJOR} PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_BINARY_DIR}/vulkan-${MAJOR}.def")
     add_library(VKstatic.${MAJOR} STATIC $<TARGET_OBJECTS:loader-opt> $<TARGET_OBJECTS:loader-norm>)
     set_target_properties(VKstatic.${MAJOR} PROPERTIES OUTPUT_NAME VKstatic.${MAJOR})
diff --git a/loader/loader.rc b/loader/loader.rc
new file mode 100755 (executable)
index 0000000..b32d2a1
--- /dev/null
@@ -0,0 +1,98 @@
+//
+// Copyright (c) 2014-2016 The Khronos Group Inc.
+// Copyright (c) 2014-2016 Valve Corporation
+// Copyright (c) 2014-2016 LunarG, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// Author: David Pinedo <david@lunarg.com>
+//
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+// Start customize section
+// Edit this section for your build
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+#define VERSION_MAJOR               1
+#define VERSION_MINOR               0
+#define VERSION_PATCH               12
+#define VERSION_BUILDNO             0
+
+#define VERSION_BUILD_DESCRIPTION   "Dev Build"
+
+// All builds except release builds should set this to 0.
+// Release builds should set this to 1.
+#define VERSION_IS_RELEASEBUILD        0
+
+
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+// End of customize section
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+#include "winres.h"
+
+#define VER_FILE_VERSION            VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH, VERSION_BUILDNO
+
+#define STRINGIZE2(s) #s
+#define STRINGIZE(s) STRINGIZE2(s)
+
+#if VERSION_IS_RELEASEBUILD==1
+   #define VER_FILE_DESCRIPTION_STR    "Vulkan Loader"
+   #define VER_FILE_VERSION_STR        STRINGIZE(VERSION_MAJOR)        \
+                                       "." STRINGIZE(VERSION_MINOR)    \
+                                       "." STRINGIZE(VERSION_PATCH)    \
+                                       "." STRINGIZE(VERSION_BUILDNO)
+#else
+   #define VER_FILE_DESCRIPTION_STR    "Vulkan Loader - " VERSION_BUILD_DESCRIPTION
+   #define VER_FILE_VERSION_STR        STRINGIZE(VERSION_MAJOR)        \
+                                    "." STRINGIZE(VERSION_MINOR)    \
+                                    "." STRINGIZE(VERSION_PATCH)    \
+                                    "." STRINGIZE(VERSION_BUILDNO) \
+                                    "." VERSION_BUILD_DESCRIPTION
+#endif
+
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION VER_FILE_VERSION
+ PRODUCTVERSION VER_FILE_VERSION
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS VS_FF_DEBUG
+#else
+ FILEFLAGS 0x0L
+#endif
+
+ FILEOS 0x00000L
+ FILETYPE VFT_DLL
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "04090000"
+        BEGIN
+            VALUE "FileDescription", VER_FILE_DESCRIPTION_STR
+            VALUE "FileVersion", VER_FILE_VERSION_STR
+            VALUE "LegalCopyright", "Copyright (C) 2015-2016"
+            VALUE "ProductName", "Vulkan Runtime"
+            VALUE "ProductVersion", VER_FILE_VERSION_STR
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x409, 0000
+    END
+END
index b0c9ad0..6b1771f 100644 (file)
 
 # Version information
 # Set VERSION_BUILDNO to:
-#    x.pre.z for prereleases
+#    x.devbuild.z for development builds
 #    x for releases
 #
 !define PRODUCTNAME "VulkanRT"
 !define VERSION_ABI_MAJOR "1"
 !define VERSION_API_MAJOR "1"
 !define VERSION_MINOR "0"
-!define VERSION_PATCH "1"
-!define VERSION_BUILDNO "0.pre.1"
+!define VERSION_PATCH "12"
+!define VERSION_BUILDNO "0.devbuild.1"
 !define PUBLISHER "YourCompany, Inc."
 #!define VERSION_BUILDNO "0"
 !define PRODUCTVERSION "${VERSION_API_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_BUILDNO}"