| Option | Platform | Default | Description |
| ------ | -------- | ------- | ----------- |
| CMAKE_OSX_DEPLOYMENT_TARGET | MacOS | `10.12` | The minimum version of MacOS for loader deployment. |
+| VULKANINFO_BUILD_DLL_VERSIONINFO | Windows | `""` | Set the Windows specific version information for Vulkaninfo. Format is "major.minor.patch.build". |
These variables should be set using the `-D` option when invoking CMake to
generate the native platform files.
# Require the user to ask that it be installed if they really want it.
option(INSTALL_ICD "Install icd" OFF)
+if(WIN32)
+ # Optional: Allow specify the exact version used in the vulkaninfo executable
+ # Format is major.minor.patch.build
+ set(VULKANINFO_BUILD_DLL_VERSIONINFO "" CACHE STRING "Set the version to be used in the vulkaninfo.rc file. Default value is 1.0.1111.2222")
+endif()
+
# Enable IDE GUI folders
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# "Helper" targets that don't have interesting source code should set their FOLDER property to this
# CMakeLists.txt file for building Vulkaninfo
if(WIN32)
- add_executable(vulkaninfo vulkaninfo.cpp vulkaninfo.rc)
+ # ~~~
+ # Setup the vulkaninfo.rc file to contain the correct info
+ # Optionally uses the VULKANINFO_BUILD_DLL_VERSIONINFO build option to allow setting the exact build version
+ # When VULKANINFO_BUILD_DLL_VERSIONINFO is not provided, "Dev Build" is added to the version string
+ # ~~~
+ if ("$CACHE{VULKANINFO_BUILD_DLL_VERSIONINFO}" STREQUAL "")
+ # Default version - for when no version is provided
+ set(VULKANINFO_RC_VERSION "1.0.1111.2222")
+ set(VULKANINFO_VER_FILE_VERSION_STR "\"${VULKANINFO_RC_VERSION}.Dev Build\"")
+ set(VULKANINFO_VER_FILE_DESCRIPTION_STR "\"Vulkan Loader - Dev Build\"")
+ else()
+ set(VULKANINFO_RC_VERSION "$CACHE{VULKANINFO_BUILD_DLL_VERSIONINFO}")
+ set(VULKANINFO_VER_FILE_VERSION_STR "\"${VULKANINFO_RC_VERSION}\"")
+ set(VULKANINFO_VER_FILE_DESCRIPTION_STR "\"Vulkan Loader\"")
+ endif()
+
+ # RC file wants the value of FILEVERSION to separated by commas
+ string(REPLACE "." ", " VULKANINFO_VER_FILE_VERSION "${VULKANINFO_RC_VERSION}")
+
+ # Configure the file to include the versioning info
+ configure_file(vulkaninfo.rc.in ${CMAKE_CURRENT_BINARY_DIR}/vulkaninfo.rc)
+
+ add_executable(vulkaninfo vulkaninfo.cpp ${CMAKE_CURRENT_BINARY_DIR}/vulkaninfo.rc)
elseif(APPLE)
add_executable(vulkaninfo
vulkaninfo.cpp
+++ /dev/null
-//
-// Copyright (c) 2018-2019 The Khronos Group Inc.
-// Copyright (c) 2018-2019 Valve Corporation
-// Copyright (c) 2018-2019 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: Lenny Komow <david@lunarg.com>
-//
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-// Start customize section
-// Edit this section for your build
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-#define VERSION_MAJOR 1
-#define VERSION_MINOR 0
-#define VERSION_PATCH 1111
-#define VERSION_BUILDNO 2222
-
-#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 Info"
- #define VER_FILE_VERSION_STR STRINGIZE(VERSION_MAJOR) \
- "." STRINGIZE(VERSION_MINOR) \
- "." STRINGIZE(VERSION_PATCH) \
- "." STRINGIZE(VERSION_BUILDNO)
-#else
- #define VER_FILE_DESCRIPTION_STR "Vulkan Info - " 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-2021"
- VALUE "ProductName", "Vulkan Runtime"
- VALUE "ProductVersion", VER_FILE_VERSION_STR
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 0000
- END
-END
--- /dev/null
+//
+// Copyright (c) 2018-2019 The Khronos Group Inc.
+// Copyright (c) 2018-2019 Valve Corporation
+// Copyright (c) 2018-2019 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: Lenny Komow <david@lunarg.com>
+// Author: Charles Giessen <charles@lunarg.com>
+
+#include "winres.h"
+
+// All set through CMake
+#define VER_FILE_VERSION ${VULKANINFO_VER_FILE_VERSION}
+#define VER_FILE_VERSION_STR ${VULKANINFO_VER_FILE_VERSION_STR}
+#define VER_FILE_DESCRIPTION_STR ${VULKANINFO_VER_FILE_DESCRIPTION_STR}
+
+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-2021"
+ VALUE "ProductName", "Vulkan Runtime"
+ VALUE "ProductVersion", VER_FILE_VERSION_STR
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 0000
+ END
+END