KhronosGroup / KTX-Software

KTX (Khronos Texture) Library and Tools
Other
874 stars 229 forks source link

Update README section on date keyword expansion to reflect renamed toktx.cc #300

Closed alecazam closed 4 years ago

alecazam commented 4 years ago

I just pulled latest on this project (using SourceTree and git lfs), but I can't build it.

./install-gitconfig.sh Git config was successfully set. KTX-Software % rm TODO.md include/ktx.h tools/toktx/toktx.cpp rm: tools/toktx/toktx.cpp: No such file or directory


This is missing toktx.cpp, but I see toktx.cc

KTX-Software % ls tools/toktx CMakeLists.txt image.hpp npbmimage.cc stdafx.h toktx.cc image.cc jpgimage.cc pngimage.cc targetver.h toktx.gypi

Then there's a missing ktx.h file

CMake Error at CMakeLists.txt:98 (add_library): Cannot find source file: include/ktx.h

ls include <- missing ktx.h, but it's on github. Also can't "go to file" to download this on github. Is it missing from some manifest? ktxvulkan.h

MarkCallow commented 4 years ago

It does build on macOS. It is my primary development system.

The problem here is that the instructions in README.md were overlooked when toktx.cpp was renamed. You executed the first part, which removed include/ktx.h. Whether you did the second part, the git checkout is not clear but even if you had, given one unknown file name, toktx.cpp, git checkout would not check out any files so you ended up without include/ktx.h in your workarea.

The fix is simple, git checkout TODO.md include/ktx.h then retry the CMake config.

I'll leave this open with a changed title to remind me to fix README.md.

alecazam commented 4 years ago

Looks like I first had to do a git restore on all those deleted files, and then do the following. I also had to restore ktx.cc or it wasn't found by cmake. That seemed to make git and cmake happy afterwards.

git restore TODO.md git restore include/ktx.h git restore tools/toktx/toktx.cc

rm TODO.md include/ktx.h git checkout TODO.md include/ktx.h

Was able to build all the tools after this, so thanks for the tips. ktx2ktx2 is especially helpful for migrating away from KTX with to KTX2. KTX2 does not store the sizes in the mips like KTX does. So then mips with block encoded formats of 8/16 bytes can be uploaded directly to the gpu from mmap-ed KTX files, and premultiplied state and swizzles have fields in KTX2. KTX had to rely on key-value pairs to store that.

MarkCallow commented 4 years ago

I don't understand why git restore was necessary but I'm glad you got the build working.