KTX-Software
KTX-Software copied to clipboard
Visual Studio Projects Always Outdated
Whenever I try to run a project in a generated MS Visual Studio solution it tells me that various projects are outdated and asks if I want to build them. For example, when ktxinfo
is set as the default project, whenever I try to run it the following are listed as out of date:
- ktx_version
- mkvkformatfiles
- ktxinfo_version
- ktxinfo
Needless to say this is annoying.
There is a way to get MSVS to tell you why it thinks something is out of date but at present I can't recall how to do it. It isn't as simple as setting some option.
The _version
ones might not be fixable since we need them to run to check for changes in git status. However the script only updates the version.h
files if they are different from the existing so at the point of the above, a ktxinfo dependency on version.h should not cause it to be out of date.
mkvkformatfiles
being out of date is an entirely different problem. Only if the mkvkformatfiles
script or vulkan_core.h have been changed should this need to be built.
I've just been working on toktx. In this case VS2017 presents an absurd list of out-of-date projects:
- mkvkformatfiles
- makevkswitch
- makedfd2vk
- ktx_version
- toktx_version
- toktx
The bug in VS 2019 that prevented us using it has been fixed. It provides a warning that helps explain the out of date version files. It is looking in the build directory for the files created by mkversion but in fact they are created in the source directory. For example we are creating [KTX-Software]/lib/version.h but VS is expecting it to be created in [BUILD]/lib/version.h.
In the Debug config I'm also getting warnings that "defaultlib 'MSVCRT' conflicts with use of other libs" for both ktx_read and ktx. These dlls probably need to be linking with MSVCRTD.