[Slackbuilds-users] DevIL - Does not Compile when nvidia-texture-tools is installed
Konrad J Hambrick
kjhambrick at gmail.com
Sun May 22 19:46:37 UTC 2022
All --
I emailed the maintainer on May 12 but have received no reply.
Below is the email I sent.
The Punchline is that the DevIL SBo will not compile on my Slackware64
15.0 + Multilib System when the nvidia-texture-tools SBo is installed.
The simplest fix is to turn off nvidia-texture-tools via a cmake Config
Flag:
# --------------------- cut here -------------------
# diff -Naur DevIL~01.SlackBuild DevIL.SlackBuild
--- or/DevIL.SlackBuild 2022-04-23 17:41:07.620019227 -0500
+++ DevIL.SlackBuild 2022-05-12 11:19:49.873854478 -0500
@@ -73,6 +73,7 @@
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -std=c++14 -fpermissive" \
-DCMAKE_INSTALL_PREFIX=/usr \
+ -DIL_USE_DXTC_NVIDIA=NO \
-DCMAKE_BUILD_TYPE=Release ..
make
make install/strip DESTDIR=$PKG
# --------------------- cut here -------------------
Is this the best place to post such info ?
Thanks everyone !
-- kjh
# ----------------------original email to the maintainer ------------
Yth - Arnaud
I am running Slackware64 15.0 System with Multilib +
NVIDIA-Linux-x86_64-510.68.02.run
I discovered that if nvidia-texture-tools ( aka nvtt ) is installed, that
DevIL will not compile.
I tried with nvidia-texture-tools version 2.1.1 and also with the more
recent version 2.1.2
There are missing Header Files in /usr/include/nvcore/ ( and maybe others )
To reproduce: build and install nvidia-texture-tools.SlackBuild and then
try to build DevIL.SlackBuild
I changed the nvidia-texture-tools CMakeLists.txt so that the header files
are installed in /usr/include/{nvtt,nvthread,nvmath,nvimage,nvcore}/
as well as installing nvconfig.h
The DevIL.SlackBuild compile makes it past the missing Headers in src-IL/
However, the compiler finally fails building
src-IL/CMakeFiles/IL.dir/src/il_nvidia.cpp.o because the nvtt headers
differ from what is DevIL expects to find ( output below mu sig )
I found a CMake switch ( -DIL_USE_DXTC_NVIDIA=NO ) that can be turned off
in the DevIL.SlackBuild to avoid nvtt altogether.
Then it builds as expected.
Here is diff -Naur
#-------------------- cut here --------------
# diff -Naur DevIL~01.SlackBuild DevIL.SlackBuild
--- or/DevIL.SlackBuild 2022-04-23 17:41:07.620019227 -0500
+++ DevIL.SlackBuild 2022-05-12 11:19:49.873854478 -0500
@@ -73,6 +73,7 @@
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -std=c++14 -fpermissive" \
-DCMAKE_INSTALL_PREFIX=/usr \
+ -DIL_USE_DXTC_NVIDIA=NO \
-DCMAKE_BUILD_TYPE=Release ..
make
make install/strip DESTDIR=$PKG
# --------------------- cut there -------------------
Thanks for all the SlackBuilds !
-- kjh
This is the failure after installing the nvtt header files.
/tmp/SBo/DevIL/DevIL/src-IL/src/il_nvidia.cpp: In function 'ILubyte*
ilNVidiaCompressDXT(ILubyte*, ILuint, ILuint, ILuint, ILenum, ILuint*)':
/tmp/SBo/DevIL/DevIL/src-IL/src/il_nvidia.cpp:104:28: error: cannot declare
variable 'outputHandler' to be of abstract type 'ilOutputHandlerMem'
104 | ilOutputHandlerMem outputHandler(Width, Height, DxtFormat);
| ^~~~~~~~~~~~~
/tmp/SBo/DevIL/DevIL/src-IL/src/il_nvidia.cpp:38:8: note: because the
following virtual functions are pure within 'ilOutputHandlerMem':
38 | struct ilOutputHandlerMem : public nvtt::OutputHandler
| ^~~~~~~~~~~~~~~~~~
In file included from /tmp/SBo/DevIL/DevIL/src-IL/src/il_nvidia.cpp:20:
/usr/include/nvtt/nvtt.h:341:22: note: 'virtual void
nvtt::OutputHandler::endImage()'
341 | virtual void endImage() = 0;
| ^~~~~~~~
/tmp/SBo/DevIL/DevIL/src-IL/src/il_nvidia.cpp: In function 'ILuint
ilNVidiaCompressDXTFile(ILubyte*, ILuint, ILuint, ILuint, ILenum)':
/tmp/SBo/DevIL/DevIL/src-IL/src/il_nvidia.cpp:188:29: error: cannot declare
variable 'outputHandler' to be of abstract type 'ilOutputHandlerFile'
188 | ilOutputHandlerFile outputHandler(Width, Height, DxtFormat);
| ^~~~~~~~~~~~~
/tmp/SBo/DevIL/DevIL/src-IL/src/il_nvidia.cpp:148:8: note: because the
following virtual functions are pure within 'ilOutputHandlerFile':
148 | struct ilOutputHandlerFile : public nvtt::OutputHandler
| ^~~~~~~~~~~~~~~~~~~
In file included from /tmp/SBo/DevIL/DevIL/src-IL/src/il_nvidia.cpp:20:
/usr/include/nvtt/nvtt.h:341:22: note: 'virtual void
nvtt::OutputHandler::endImage()'
341 | virtual void endImage() = 0;
| ^~~~~~~~
make[2]: *** [src-IL/CMakeFiles/IL.dir/build.make:678:
src-IL/CMakeFiles/IL.dir/src/il_nvidia.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:134: src-IL/CMakeFiles/IL.dir/all] Error
2
make: *** [Makefile:136: all] Error 2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.slackbuilds.org/pipermail/slackbuilds-users/attachments/20220522/0e5c6219/attachment.htm>
More information about the SlackBuilds-users
mailing list