mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-01 11:22:21 -06:00
Windows: Embed version information into CMake binaries
This commit is contained in:
@@ -1057,6 +1057,19 @@ endif()
|
||||
include (${CMake_BINARY_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
|
||||
include (${CMake_SOURCE_DIR}/Source/LocalUserOptions.cmake OPTIONAL)
|
||||
|
||||
if(WIN32)
|
||||
# Add Windows executable version information.
|
||||
configure_file("CMakeVersion.rc.in" "CMakeVersion.rc" @ONLY)
|
||||
|
||||
# We use a separate object library for this to work around a limitation of
|
||||
# MinGW's windres tool with spaces in the path to the include directories.
|
||||
add_library(CMakeVersion OBJECT "${CMAKE_CURRENT_BINARY_DIR}/CMakeVersion.rc")
|
||||
set_property(TARGET CMakeVersion PROPERTY INCLUDE_DIRECTORIES "")
|
||||
foreach(_tool ${_tools})
|
||||
target_sources(${_tool} PRIVATE $<TARGET_OBJECTS:CMakeVersion>)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# Install tools
|
||||
|
||||
foreach(_tool ${_tools})
|
||||
|
||||
34
Source/CMakeVersion.rc.in
Normal file
34
Source/CMakeVersion.rc.in
Normal file
@@ -0,0 +1,34 @@
|
||||
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
file Copyright.txt or https://cmake.org/licensing for details. */
|
||||
|
||||
#define VER_FILEVERSION @CMake_VERSION_MAJOR@,@CMake_VERSION_MINOR@,@CMake_VERSION_PATCH@
|
||||
#define VER_FILEVERSION_STR "@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@.@CMake_VERSION_PATCH@\0"
|
||||
|
||||
#define VER_PRODUCTVERSION @CMake_VERSION_MAJOR@,@CMake_VERSION_MINOR@,@CMake_VERSION_PATCH@
|
||||
#define VER_PRODUCTVERSION_STR "@CMake_VERSION@\0"
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION VER_FILEVERSION
|
||||
PRODUCTVERSION VER_PRODUCTVERSION
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904E4"
|
||||
BEGIN
|
||||
VALUE "FileVersion", VER_FILEVERSION_STR
|
||||
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
||||
END
|
||||
END
|
||||
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
/* The following line should only be modified for localized versions. */
|
||||
/* It consists of any number of WORD,WORD pairs, with each pair */
|
||||
/* describing a language,codepage combination supported by the file. */
|
||||
/* */
|
||||
/* For example, a file might have values "0x409,1252" indicating that it */
|
||||
/* supports English language (0x409) in the Windows ANSI codepage (1252). */
|
||||
|
||||
VALUE "Translation", 0x409, 1252
|
||||
END
|
||||
END
|
||||
Reference in New Issue
Block a user