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