From 8ed6db358dc3195fe374169a0c3a9c6397e6474e Mon Sep 17 00:00:00 2001 From: Christian Weigel Date: Fri, 17 Feb 2017 10:07:48 +0100 Subject: [PATCH 1/6] fix static build of ilu and ilut --- DevIL/src-ILU/CMakeLists.txt | 10 +++++++--- DevIL/src-ILUT/CMakeLists.txt | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/DevIL/src-ILU/CMakeLists.txt b/DevIL/src-ILU/CMakeLists.txt index 44b9531b..1ade7cb4 100644 --- a/DevIL/src-ILU/CMakeLists.txt +++ b/DevIL/src-ILU/CMakeLists.txt @@ -42,9 +42,13 @@ source_group("Source Files" FILES src/*.cpp) source_group("Header Files" FILES ${ILU_INC} ) source_group("Resource Files" FILES ${ILU_RSRC} ) -# Remove SHARED to create a static library -add_library(ILU SHARED ${ILU_SRCS} ${ILU_INC} ${ILU_RSRC}) -set_target_properties(ILU PROPERTIES SOVERSION 1) +if(BUILD_SHARED_LIBS) + add_library(ILU SHARED ${ILU_SRCS} ${ILU_INC} ${ILU_RSRC}) + set_target_properties(ILU PROPERTIES SOVERSION 1) +else(BUILD_SHARED_LIBS) + add_library(ILU ${ILU_SRCS} ${ILU_INC} ${ILU_RSRC}) +endif(BUILD_SHARED_LIBS) + ## ILU requires IL diff --git a/DevIL/src-ILUT/CMakeLists.txt b/DevIL/src-ILUT/CMakeLists.txt index 63662bc6..4953708c 100644 --- a/DevIL/src-ILUT/CMakeLists.txt +++ b/DevIL/src-ILUT/CMakeLists.txt @@ -62,9 +62,13 @@ source_group("Source Files" FILES src/*.cpp) source_group("Header Files" FILES ${ILUT_INC} ) source_group("Resource Files" FILES ${ILUT_RSRC} ) -# Remove SHARED to create a static library -add_library(ILUT SHARED ${ILUT_SRCS} ${ILUT_INC} ${ILUT_RSRC}) -set_target_properties(ILUT PROPERTIES SOVERSION 1) +if(BUILD_SHARED_LIBS) + add_library(ILUT SHARED ${ILUT_SRCS} ${ILUT_INC} ${ILUT_RSRC}) + set_target_properties(ILUT PROPERTIES SOVERSION 1) +else(BUILD_SHARED_LIBS) + add_library(ILUT ${ILUT_SRCS} ${ILUT_INC} ${ILUT_RSRC}) +endif(BUILD_SHARED_LIBS) + ## add link sub library info target_link_libraries(ILUT From b196fbd2529291fd7bf8ad4a4b960430f0097b24 Mon Sep 17 00:00:00 2001 From: DanielPharos Date: Sun, 8 Oct 2017 15:35:28 +0200 Subject: [PATCH 2/6] Interpret the header further. --- DevIL/src-IL/src/il_iwi.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/DevIL/src-IL/src/il_iwi.cpp b/DevIL/src-IL/src/il_iwi.cpp index 5309b118..87ab0462 100644 --- a/DevIL/src-IL/src/il_iwi.cpp +++ b/DevIL/src-IL/src/il_iwi.cpp @@ -22,6 +22,12 @@ typedef struct IWIHEAD ILubyte Flags; ILushort Width; ILushort Height; + ILubyte Unknown1; + ILubyte Unknown2; + ILuint Filesize; + ILuint OffsetTexture; + ILuint OffsetMipmap1; + ILuint OffsetMipmap2; } IWIHEAD; #define IWI_ARGB8 0x01 @@ -90,14 +96,18 @@ ILboolean ilIsValidIwiL(const void *Lump, ILuint Size) // Internal function used to get the IWI header from the current file. ILboolean iGetIwiHead(IWIHEAD *Header) { + //Partially based on: https://github.com/CptAsgard/CoD2Unity/blob/master/Assets/cod2iwifiles.txt Header->Signature = GetLittleUInt(); Header->Format = igetc(); Header->Flags = igetc(); //@TODO: Find out what the flags mean. Header->Width = GetLittleUShort(); Header->Height = GetLittleUShort(); - - // @TODO: Find out what is in the rest of the header. - iseek(18, IL_SEEK_CUR); + Header->Unknown1 = igetc(); //@TODO: Find out what this byte means. + Header->Unknown2 = igetc(); //@TODO: Find out what this byte means. + Header->Filesize = GetLittleUInt(); + Header->OffsetTexture = GetLittleUInt(); + Header->OffsetMipmap1 = GetLittleUInt(); + Header->OffsetMipmap2 = GetLittleUInt(); return IL_TRUE; } @@ -292,6 +302,8 @@ ILboolean IwiReadImage(ILimage *BaseImage, IWIHEAD *Header, ILuint NumMips) ILubyte *CompData = NULL; ILint i, j, k, m; + iseek(Header->OffsetTexture, IL_SEEK_SET); + for (i = NumMips; i >= 0; i--) { Image = BaseImage; // Go to the ith mipmap level. @@ -299,6 +311,7 @@ ILboolean IwiReadImage(ILimage *BaseImage, IWIHEAD *Header, ILuint NumMips) for (j = 0; j < i; j++) Image = Image->Mipmaps; + //@TODO: Seek to the mipmap offset switch (Header->Format) { case IWI_ARGB8: // These are all From 884f1804a333a110edf2cd64ae4dea5bd2be3052 Mon Sep 17 00:00:00 2001 From: Tomas Maly Date: Wed, 22 Nov 2017 21:19:41 +0100 Subject: [PATCH 3/6] fixed out-of-source build; removed resource compilation for visual studio 2015 and later; fixed overriding CMAKE_MODULE_PATH --- DevIL/CMakeLists.txt | 2 +- DevIL/src-IL/CMakeLists.txt | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/DevIL/CMakeLists.txt b/DevIL/CMakeLists.txt index e342f93d..3d12dda4 100644 --- a/DevIL/CMakeLists.txt +++ b/DevIL/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.6) project(ImageLib) # include our custom modules -set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules") +list (APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules") add_subdirectory(src-IL) add_subdirectory(src-ILU) diff --git a/DevIL/src-IL/CMakeLists.txt b/DevIL/src-IL/CMakeLists.txt index 3cda85cf..6e7b4c91 100644 --- a/DevIL/src-IL/CMakeLists.txt +++ b/DevIL/src-IL/CMakeLists.txt @@ -36,11 +36,18 @@ if(WIN32) add_definitions(-DIL_DLL -DJPEGSTATIC) # note: .def not used for now - __declspec() in source handles export. set(DevIL_SRCS ${DevIL_SRCS} msvc/il.def) - if(UNICODE) - set(DevIL_RSRC ${DevIL_RSRC} "msvc/resources/IL Logo.ico" "msvc/IL Unicode.rc") - else(UNICODE) - set(DevIL_RSRC ${DevIL_RSRC} "msvc/resources/IL Logo.ico" "msvc/IL.rc") - endif(UNICODE) + if(${MSVC_VERSION} GREATER 1899) # MSVC 2015 or later + option(DEVIL_INCLUDE_RESOURCES "DevIL: compile-in resources" OFF) + else() + option(DEVIL_INCLUDE_RESOURCES "DevIL: compile-in resources" ON) + endif() + if(DEVIL_INCLUDE_RESOURCES) + if(UNICODE) + set(DevIL_RSRC ${DevIL_RSRC} "msvc/resources/IL Logo.ico" "msvc/IL Unicode.rc") + else(UNICODE) + set(DevIL_RSRC ${DevIL_RSRC} "msvc/resources/IL Logo.ico" "msvc/IL.rc") + endif(UNICODE) + endif(DEVIL_INCLUDE_RESOURCES) set(DevIL_TXT ${DevIL_TXT} ../AUTHORS ../ChangeLog ../CREDITS ../libraries.txt ../README.md ../README.cmake ../TODO) # SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NODEFAULTLIB:msvcrt.lib ") set(CMAKE_C_FLAGS_RELEASE "/MT /O2") @@ -293,11 +300,11 @@ if(IL_USE_DXTC_SQUISH) endif(IL_USE_DXTC_SQUISH) -include_directories(${incs}) +include_directories(${incs} "${CMAKE_CURRENT_BINARY_DIR}/include") target_link_libraries(IL ${libs}) # generate config.h -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/config.h.cmake.in ${CMAKE_CURRENT_SOURCE_DIR}/include/config.h) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/config.h.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/include/config.h) From 77d3d40819f7e067b5dddf4381816fd6ed8042f0 Mon Sep 17 00:00:00 2001 From: Eshed Date: Sun, 21 Jan 2018 22:07:18 +0200 Subject: [PATCH 4/6] Fix case --- DevIL/src-IL/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DevIL/src-IL/CMakeLists.txt b/DevIL/src-IL/CMakeLists.txt index 3cda85cf..73ce34a6 100644 --- a/DevIL/src-IL/CMakeLists.txt +++ b/DevIL/src-IL/CMakeLists.txt @@ -41,7 +41,7 @@ if(WIN32) else(UNICODE) set(DevIL_RSRC ${DevIL_RSRC} "msvc/resources/IL Logo.ico" "msvc/IL.rc") endif(UNICODE) - set(DevIL_TXT ${DevIL_TXT} ../AUTHORS ../ChangeLog ../CREDITS ../libraries.txt ../README.md ../README.cmake ../TODO) + set(DevIL_TXT ${DevIL_TXT} ../AUTHORS ../ChangeLog ../CREDITS ../Libraries.txt ../README.md ../README.cmake ../TODO) # SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NODEFAULTLIB:msvcrt.lib ") set(CMAKE_C_FLAGS_RELEASE "/MT /O2") else(BUILD_SHARED_LIBS) From 0ccb20138ecd3fef4bdc15711185d3b12176d192 Mon Sep 17 00:00:00 2001 From: DanielPharos Date: Wed, 13 Feb 2019 21:35:43 +0100 Subject: [PATCH 5/6] Revert "Fix case" --- DevIL/src-IL/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DevIL/src-IL/CMakeLists.txt b/DevIL/src-IL/CMakeLists.txt index 73ce34a6..3cda85cf 100644 --- a/DevIL/src-IL/CMakeLists.txt +++ b/DevIL/src-IL/CMakeLists.txt @@ -41,7 +41,7 @@ if(WIN32) else(UNICODE) set(DevIL_RSRC ${DevIL_RSRC} "msvc/resources/IL Logo.ico" "msvc/IL.rc") endif(UNICODE) - set(DevIL_TXT ${DevIL_TXT} ../AUTHORS ../ChangeLog ../CREDITS ../Libraries.txt ../README.md ../README.cmake ../TODO) + set(DevIL_TXT ${DevIL_TXT} ../AUTHORS ../ChangeLog ../CREDITS ../libraries.txt ../README.md ../README.cmake ../TODO) # SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NODEFAULTLIB:msvcrt.lib ") set(CMAKE_C_FLAGS_RELEASE "/MT /O2") else(BUILD_SHARED_LIBS) From 85bce116677a331a26e0891b9c6ea6390948f41f Mon Sep 17 00:00:00 2001 From: DanielPharos Date: Wed, 13 Feb 2019 21:43:45 +0100 Subject: [PATCH 6/6] This is DentonW#71, but GitHub has the dumbs, and can't see the change anymore. --- DevIL/src-IL/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DevIL/src-IL/CMakeLists.txt b/DevIL/src-IL/CMakeLists.txt index 6e7b4c91..f492f0d5 100644 --- a/DevIL/src-IL/CMakeLists.txt +++ b/DevIL/src-IL/CMakeLists.txt @@ -48,7 +48,7 @@ if(WIN32) set(DevIL_RSRC ${DevIL_RSRC} "msvc/resources/IL Logo.ico" "msvc/IL.rc") endif(UNICODE) endif(DEVIL_INCLUDE_RESOURCES) - set(DevIL_TXT ${DevIL_TXT} ../AUTHORS ../ChangeLog ../CREDITS ../libraries.txt ../README.md ../README.cmake ../TODO) + set(DevIL_TXT ${DevIL_TXT} ../AUTHORS ../ChangeLog ../CREDITS ../Libraries.txt ../README.md ../README.cmake ../TODO) # SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NODEFAULTLIB:msvcrt.lib ") set(CMAKE_C_FLAGS_RELEASE "/MT /O2") else(BUILD_SHARED_LIBS)