diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0e7ca80..53b41a3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -102,18 +102,18 @@ endif()
add_executable(texassemble
Texassemble/texassemble.cpp
Texassemble/AnimatedGif.cpp)
-target_link_libraries(texassemble ${PROJECT_NAME})
+target_link_libraries(texassemble ${PROJECT_NAME} version.lib)
source_group(texassemble REGULAR_EXPRESSION Texassemble/*.*)
add_executable(texconv
Texconv/texconv.cpp
Texconv/ExtendedBMP.cpp
Texconv/PortablePixMap.cpp)
-target_link_libraries(texconv ${PROJECT_NAME})
+target_link_libraries(texconv ${PROJECT_NAME} version.lib)
source_group(texconv REGULAR_EXPRESSION Texconv/*.*)
add_executable(texdiag Texdiag/texdiag.cpp)
-target_link_libraries(texdiag ${PROJECT_NAME})
+target_link_libraries(texdiag ${PROJECT_NAME} version.lib)
source_group(texdiag REGULAR_EXPRESSION Texdiag/*.*)
if(MSVC)
diff --git a/Texassemble/Texassemble_Desktop_2017.vcxproj b/Texassemble/Texassemble_Desktop_2017.vcxproj
index c34ca34..935a985 100644
--- a/Texassemble/Texassemble_Desktop_2017.vcxproj
+++ b/Texassemble/Texassemble_Desktop_2017.vcxproj
@@ -140,7 +140,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
true
@@ -171,7 +171,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
@@ -201,7 +201,7 @@
/Zc:__cplusplus %(AdditionalOptions)
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -233,7 +233,7 @@
/Zc:__cplusplus %(AdditionalOptions)
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -265,7 +265,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -297,7 +297,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
diff --git a/Texassemble/Texassemble_Desktop_2019.vcxproj b/Texassemble/Texassemble_Desktop_2019.vcxproj
index 08e59b7..5bd68d8 100644
--- a/Texassemble/Texassemble_Desktop_2019.vcxproj
+++ b/Texassemble/Texassemble_Desktop_2019.vcxproj
@@ -141,7 +141,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
true
@@ -173,7 +173,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
@@ -204,7 +204,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -237,7 +237,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -270,7 +270,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -303,7 +303,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
diff --git a/Texassemble/texassemble.cpp b/Texassemble/texassemble.cpp
index 29f3d65..5298812 100644
--- a/Texassemble/texassemble.cpp
+++ b/Texassemble/texassemble.cpp
@@ -560,7 +560,33 @@ namespace
void PrintLogo()
{
- wprintf(L"Microsoft (R) DirectX Texture Assembler (DirectXTex version)\n");
+ wchar_t version[32] = {};
+
+ wchar_t appName[_MAX_PATH] = {};
+ if (GetModuleFileNameW(nullptr, appName, _countof(appName)))
+ {
+ DWORD size = GetFileVersionInfoSizeW(appName, nullptr);
+ if (size > 0)
+ {
+ auto verInfo = std::make_unique(size);
+ if (GetFileVersionInfoW(appName, 0, size, verInfo.get()))
+ {
+ LPVOID lpstr = nullptr;
+ UINT strLen = 0;
+ if (VerQueryValueW(verInfo.get(), L"\\StringFileInfo\\040904B0\\ProductVersion", &lpstr, &strLen))
+ {
+ wcsncpy_s(version, reinterpret_cast(lpstr), strLen);
+ }
+ }
+ }
+ }
+
+ if (!*version || wcscmp(version, L"1.0.0.0") == 0)
+ {
+ swprintf_s(version, L"%03d (library)", DIRECTX_TEX_VERSION);
+ }
+
+ wprintf(L"Microsoft (R) DirectX Texture Assembler [DirectXTex] Version %ls\n", version);
wprintf(L"Copyright (C) Microsoft Corp. All rights reserved.\n");
#ifdef _DEBUG
wprintf(L"*** Debug build ***\n");
diff --git a/Texconv/Texconv_Desktop_2017.vcxproj b/Texconv/Texconv_Desktop_2017.vcxproj
index 0f75c89..55051b8 100644
--- a/Texconv/Texconv_Desktop_2017.vcxproj
+++ b/Texconv/Texconv_Desktop_2017.vcxproj
@@ -141,7 +141,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
true
@@ -173,7 +173,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
@@ -204,7 +204,7 @@
true
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -237,7 +237,7 @@
true
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -270,7 +270,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -303,7 +303,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
diff --git a/Texconv/Texconv_Desktop_2019.vcxproj b/Texconv/Texconv_Desktop_2019.vcxproj
index 9e69389..51a5d9d 100644
--- a/Texconv/Texconv_Desktop_2019.vcxproj
+++ b/Texconv/Texconv_Desktop_2019.vcxproj
@@ -142,7 +142,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
true
@@ -175,7 +175,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
@@ -207,7 +207,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -241,7 +241,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -275,7 +275,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -309,7 +309,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
diff --git a/Texconv/texconv.cpp b/Texconv/texconv.cpp
index 52f46bc..5e78317 100644
--- a/Texconv/texconv.cpp
+++ b/Texconv/texconv.cpp
@@ -697,7 +697,33 @@ namespace
void PrintLogo()
{
- wprintf(L"Microsoft (R) DirectX Texture Converter (DirectXTex version)\n");
+ wchar_t version[32] = {};
+
+ wchar_t appName[_MAX_PATH] = {};
+ if (GetModuleFileNameW(nullptr, appName, _countof(appName)))
+ {
+ DWORD size = GetFileVersionInfoSizeW(appName, nullptr);
+ if (size > 0)
+ {
+ auto verInfo = std::make_unique(size);
+ if (GetFileVersionInfoW(appName, 0, size, verInfo.get()))
+ {
+ LPVOID lpstr = nullptr;
+ UINT strLen = 0;
+ if (VerQueryValueW(verInfo.get(), L"\\StringFileInfo\\040904B0\\ProductVersion", &lpstr, &strLen))
+ {
+ wcsncpy_s(version, reinterpret_cast(lpstr), strLen);
+ }
+ }
+ }
+ }
+
+ if (!*version || wcscmp(version, L"1.0.0.0") == 0)
+ {
+ swprintf_s(version, L"%03d (library)", DIRECTX_TEX_VERSION);
+ }
+
+ wprintf(L"Microsoft (R) DirectX Texture Converter [DirectXTex] Version %ls\n", version);
wprintf(L"Copyright (C) Microsoft Corp. All rights reserved.\n");
#ifdef _DEBUG
wprintf(L"*** Debug build ***\n");
diff --git a/Texdiag/texdiag.cpp b/Texdiag/texdiag.cpp
index 5fd4c84..a4ecf25 100644
--- a/Texdiag/texdiag.cpp
+++ b/Texdiag/texdiag.cpp
@@ -521,7 +521,33 @@ namespace
void PrintLogo()
{
- wprintf(L"Microsoft (R) DirectX Texture Diagnostic Tool\n");
+ wchar_t version[32] = {};
+
+ wchar_t appName[_MAX_PATH] = {};
+ if (GetModuleFileNameW(nullptr, appName, _countof(appName)))
+ {
+ DWORD size = GetFileVersionInfoSizeW(appName, nullptr);
+ if (size > 0)
+ {
+ auto verInfo = std::make_unique(size);
+ if (GetFileVersionInfoW(appName, 0, size, verInfo.get()))
+ {
+ LPVOID lpstr = nullptr;
+ UINT strLen = 0;
+ if (VerQueryValueW(verInfo.get(), L"\\StringFileInfo\\040904B0\\ProductVersion", &lpstr, &strLen))
+ {
+ wcsncpy_s(version, reinterpret_cast(lpstr), strLen);
+ }
+ }
+ }
+ }
+
+ if (!*version || wcscmp(version, L"1.0.0.0") == 0)
+ {
+ swprintf_s(version, L"%03d (library)", DIRECTX_TEX_VERSION);
+ }
+
+ wprintf(L"Microsoft (R) DirectX Texture Diagnostic Tool [DirectXTex] Version %ls\n", version);
wprintf(L"Copyright (C) Microsoft Corp. All rights reserved.\n");
#ifdef _DEBUG
wprintf(L"*** Debug build ***\n");
diff --git a/Texdiag/texdiag_Desktop_2017.vcxproj b/Texdiag/texdiag_Desktop_2017.vcxproj
index 09175f0..da7ea69 100644
--- a/Texdiag/texdiag_Desktop_2017.vcxproj
+++ b/Texdiag/texdiag_Desktop_2017.vcxproj
@@ -140,7 +140,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
true
@@ -171,7 +171,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
@@ -201,7 +201,7 @@
/Zc:__cplusplus %(AdditionalOptions)
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -233,7 +233,7 @@
/Zc:__cplusplus %(AdditionalOptions)
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -265,7 +265,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -297,7 +297,7 @@
Guard
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
diff --git a/Texdiag/texdiag_Desktop_2019.vcxproj b/Texdiag/texdiag_Desktop_2019.vcxproj
index 5d55eba..02a17ab 100644
--- a/Texdiag/texdiag_Desktop_2019.vcxproj
+++ b/Texdiag/texdiag_Desktop_2019.vcxproj
@@ -141,7 +141,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
true
@@ -173,7 +173,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
Console
true
@@ -204,7 +204,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -237,7 +237,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -270,7 +270,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true
@@ -303,7 +303,7 @@
26812
- ole32.lib;windowscodecs.lib;uuid.lib;%(AdditionalDependencies)
+ ole32.lib;windowscodecs.lib;uuid.lib;version.lib;%(AdditionalDependencies)
true
Console
true