Skip to content

Commit 494376a

Browse files
committed
lzma: update to version 24.07
1 parent 573d3ff commit 494376a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+36107
-6824
lines changed

.azure-pipelines.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,24 @@ strategy:
2929
VM_IMAGE: 'ubuntu-20.04'
3030
APT_PACKAGES: ninja-build g++-8
3131
CXX_COMPILER: g++-8
32+
C_COMPILER: gcc-8
3233
Linux i686 GCC:
3334
VM_IMAGE: 'ubuntu-20.04'
3435
APT_PACKAGES: ninja-build g++-i686-linux-gnu
3536
CXX_COMPILER: i686-linux-gnu-g++
37+
C_COMPILER: i686-linux-gnu-gcc
3638
COMPILER_FLAGS: -mfpmath=sse -msse
3739
Linux arm64 GCC:
3840
VM_IMAGE: 'ubuntu-20.04'
3941
APT_PACKAGES: ninja-build g++-aarch64-linux-gnu qemu-user
4042
CXX_COMPILER: aarch64-linux-gnu-g++
43+
C_COMPILER: aarch64-linux-gnu-gcc
4144
CRUNCH_EXE_RUNNER: qemu-aarch64 -L /usr/aarch64-linux-gnu
4245
Linux armhf GCC:
4346
VM_IMAGE: 'ubuntu-20.04'
4447
APT_PACKAGES: ninja-build g++-arm-linux-gnueabihf qemu-user
4548
CXX_COMPILER: arm-linux-gnueabihf-g++
49+
C_COMPILER: arm-linux-gnueabihf-gcc
4650
CRUNCH_EXE_RUNNER: qemu-arm -L /usr/arm-linux-gnueabihf
4751
# There is a qemu-arm IO bug in ubuntu-20.04 and ubuntu-22.04,
4852
# remove when ubuntu-24.04 is available.
@@ -51,6 +55,7 @@ strategy:
5155
VM_IMAGE: 'ubuntu-20.04'
5256
APT_PACKAGES: ninja-build
5357
CXX_COMPILER: clang++
58+
C_COMPILER: clang
5459
Windows amd64 MinGW:
5560
VM_IMAGE: 'ubuntu-22.04'
5661
APT_PACKAGES: ninja-build g++-mingw-w64-x86-64 mingw-w64-x86-64-dev gcc-mingw-w64-x86-64-posix-runtime wine
@@ -119,6 +124,9 @@ steps:
119124
if [ -n "${CXX_COMPILER:-}" ]; then
120125
cmake_args+=(-DCMAKE_CXX_COMPILER="${CXX_COMPILER}")
121126
fi
127+
if [ -n "${C_COMPILER:-}" ]; then
128+
cmake_args+=(-DCMAKE_C_COMPILER="${C_COMPILER}")
129+
fi
122130
if [ -n "${COMPILER_FLAGS:-}" ]; then
123131
cmake_args+=(-DCMAKE_CXX_FLAGS="${COMPILER_FLAGS}")
124132
fi

CMakeLists.txt

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ set(CRUNCH_PROJECT_NAME crunch)
66
set(CRUNCH_LIBRARY_NAME crn)
77
set(CRUNCH_EXE_NAME crunch)
88

9-
project(${CRUNCH_PROJECT_NAME} LANGUAGES CXX)
9+
project(${CRUNCH_PROJECT_NAME} LANGUAGES C CXX)
1010

1111
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
1212

@@ -30,12 +30,14 @@ if (Git_FOUND)
3030
endif()
3131
endif()
3232

33-
macro(set_cxx_flag FLAG)
34-
if (${ARGC} GREATER 1)
35-
set(CMAKE_CXX_FLAGS_${ARGV1} "${CMAKE_CXX_FLAGS_${ARGV1}} ${FLAG}")
36-
else()
37-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${FLAG}")
38-
endif()
33+
macro(set_c_cxx_flag FLAG)
34+
foreach(lang C CXX)
35+
if (${ARGC} GREATER 1)
36+
set(CMAKE_${lang}_FLAGS_${ARGV1} "${CMAKE_${lang}_FLAGS_${ARGV1}} ${FLAG}")
37+
else()
38+
set(CMAKE_${lang}_FLAGS "${CMAKE_${lang}_FLAGS} ${FLAG}")
39+
endif()
40+
endforeach()
3941
endmacro()
4042

4143
macro(set_linker_flag FLAG)
@@ -73,7 +75,7 @@ option(USE_FAST_MATH "Enable fast math (generated images are less likely to be r
7375

7476
if (MSVC)
7577
# Enable MSVC parallel compilation.
76-
set_cxx_flag("/MP")
78+
set_c_cxx_flag("/MP")
7779

7880
# MSVC doesn't implement strict aliasing so there is nothing else to do.
7981

@@ -84,50 +86,50 @@ if (MSVC)
8486
# See https://learn.microsoft.com/en-us/cpp/build/reference/fp-specify-floating-point-behavior
8587
# and https://devblogs.microsoft.com/cppblog/the-fpcontract-flag-and-changes-to-fp-modes-in-vs2022/
8688
# By default, MSVC doesn't enable the /fp:fast option.
87-
set_cxx_flag("/fp:fast")
89+
set_c_cxx_flag("/fp:fast")
8890
endif()
8991

9092
if (USE_LTO)
91-
set_cxx_flag("/GL" RELEASE)
92-
set_cxx_flag("/GL" RELWITHDEBINFO)
93-
set_cxx_flag("/GL" MINSIZEREL)
93+
set_c_cxx_flag("/GL" RELEASE)
94+
set_c_cxx_flag("/GL" RELWITHDEBINFO)
95+
set_c_cxx_flag("/GL" MINSIZEREL)
9496
set_linker_flag("/LTCG" RELEASE)
9597
set_linker_flag("/LTCG" RELWITHDEBINFO)
9698
set_linker_flag("/LTCG" MINSIZEREL)
9799
endif()
98100
else()
99101
# As written in crnlib.h and stb_image.h, strict aliasing should always be disabled.
100-
set_cxx_flag("-fno-strict-aliasing")
102+
set_c_cxx_flag("-fno-strict-aliasing")
101103

102104
# Generate maxmimum amount of debug information, including macro definitions.
103-
set_cxx_flag("-g3" DEBUG)
104-
set_cxx_flag("-g3" RELWITHDEBINFO)
105+
set_c_cxx_flag("-g3" DEBUG)
106+
set_c_cxx_flag("-g3" RELWITHDEBINFO)
105107

106-
set_cxx_flag("-pthread")
108+
set_c_cxx_flag("-pthread")
107109
set_linker_flag("-pthread")
108110

109111
if (USE_EXTRA_OPTIMIZATION)
110112
# CMake already sets the -O3 flag on Release build and -O[1-3s] already sets the -fomit-frame-pointer flag.
111-
set_cxx_flag("-Og" DEBUG)
112-
set_cxx_flag("-O3" RELWITHDEBINFO)
113+
set_c_cxx_flag("-Og" DEBUG)
114+
set_c_cxx_flag("-O3" RELWITHDEBINFO)
113115
endif()
114116

115117
if (USE_FAST_MATH)
116118
# By default, GCC uses -ffp-contract=fast with -std=gnu* and uses -ffp-contract=off with -std=c*.
117119
# See https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
118120
# By default, GCC doesn't enable the -ffast-math option.
119-
set_cxx_flag("-ffast-math -fno-math-errno -ffp-contract=fast")
121+
set_c_cxx_flag("-ffast-math -fno-math-errno -ffp-contract=fast")
120122
else()
121123
# By default, GCC uses -std=gnu* and then enables -ffp-contract=fast even if -ffast-math is not enabled.
122-
set_cxx_flag("-ffp-contract=off")
124+
set_c_cxx_flag("-ffp-contract=off")
123125
endif()
124126

125127
# It should be done at the very end because it copies all compiler flags
126128
# to the linker flags.
127129
if (USE_LTO)
128-
set_cxx_flag("-flto" RELEASE)
129-
set_cxx_flag("-flto" RELWITHDEBINFO)
130-
set_cxx_flag("-flto" MINSIZEREL)
130+
set_c_cxx_flag("-flto" RELEASE)
131+
set_c_cxx_flag("-flto" RELWITHDEBINFO)
132+
set_c_cxx_flag("-flto" MINSIZEREL)
131133
set_linker_flag("${CMAKE_CXX_FLAGS}" RELEASE)
132134
set_linker_flag("${CMAKE_CXX_FLAGS}" RELWITHDEBINFO)
133135
set_linker_flag("${CMAKE_CXX_FLAGS}" MINSIZEREL)

crnlib/CMakeLists.txt

Lines changed: 86 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -142,39 +142,97 @@ set(CRNLIB_SRCS
142142
${CMAKE_CURRENT_SOURCE_DIR}/crn_vector2d.h
143143
${CMAKE_CURRENT_SOURCE_DIR}/crn_winhdr.h
144144
${CMAKE_CURRENT_SOURCE_DIR}/crnlib.cpp
145-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zBuf.cpp
146-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zBuf.h
147-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zBuf2.cpp
148-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zCrc.h
149-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zFile.cpp
150-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zFile.h
151-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zStream.cpp
152-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_7zVersion.h
153-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Alloc.cpp
154-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Alloc.h
155-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Bcj2.cpp
156-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Bcj2.h
157-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Bra.cpp
158-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Bra.h
159-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Bra86.cpp
160-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_BraIA64.cpp
161-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_CpuArch.h
162-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzFind.cpp
163-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzFind.h
164-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzHash.h
165-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaDec.cpp
166-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaDec.h
167-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaEnc.cpp
168-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaEnc.h
169-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaLib.cpp
170-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzmaLib.h
171-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_MyVersion.h
172-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Types.h
173145
${CMAKE_CURRENT_SOURCE_DIR}/stb_image.h
174146
${CMAKE_CURRENT_SOURCE_DIR}/stb_image_write.h
175147
${CMAKE_CURRENT_SOURCE_DIR}/../inc/crn_decomp.h
176148
${CMAKE_CURRENT_SOURCE_DIR}/../inc/crnlib.h
177149
${CMAKE_CURRENT_SOURCE_DIR}/../inc/dds_defs.h
150+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zAlloc.c
151+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zAlloc.h
152+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zArcIn.c
153+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zBuf2.c
154+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zBuf.c
155+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zBuf.h
156+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zCrc.c
157+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zCrc.h
158+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zCrcOpt.c
159+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zDec.c
160+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zFile.c
161+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zFile.h
162+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7z.h
163+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zStream.c
164+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zTypes.h
165+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zVersion.h
166+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/7zWindows.h
167+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Aes.c
168+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Aes.h
169+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/AesOpt.c
170+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Alloc.c
171+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Alloc.h
172+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Bcj2.c
173+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Bcj2Enc.c
174+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Bcj2.h
175+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Bra86.c
176+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Bra.c
177+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Bra.h
178+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/BraIA64.c
179+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Compiler.h
180+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/CpuArch.c
181+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/CpuArch.h
182+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Delta.c
183+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Delta.h
184+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/DllSecur.c
185+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/DllSecur.h
186+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzFind.c
187+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzFind.h
188+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzFindMt.c
189+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzFindMt.h
190+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzFindOpt.c
191+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzHash.h
192+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Lzma2Dec.c
193+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Lzma2Dec.h
194+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Lzma2DecMt.c
195+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Lzma2DecMt.h
196+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Lzma2Enc.c
197+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Lzma2Enc.h
198+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Lzma86Dec.c
199+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Lzma86Enc.c
200+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Lzma86.h
201+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzmaDec.c
202+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzmaDec.h
203+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzmaEnc.c
204+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzmaEnc.h
205+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzmaLib.c
206+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzmaLib.h
207+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/MtCoder.c
208+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/MtCoder.h
209+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/MtDec.c
210+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/MtDec.h
211+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Ppmd7.c
212+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Ppmd7Dec.c
213+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Ppmd7Enc.c
214+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Ppmd7.h
215+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Ppmd.h
216+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Precomp.h
217+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/RotateDefs.h
218+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Sha256.c
219+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Sha256.h
220+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Sha256Opt.c
221+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Sort.c
222+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Sort.h
223+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/SwapBytes.c
224+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/SwapBytes.h
225+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Threads.c
226+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Threads.h
227+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Xz.c
228+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/XzCrc64.c
229+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/XzCrc64.h
230+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/XzCrc64Opt.c
231+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/XzDec.c
232+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/XzEnc.c
233+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/XzEnc.h
234+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Xz.h
235+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/XzIn.c
178236
)
179237

180238
if(WIN32)

crnlib/crn_lzma_codec.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#include "crn_lzma_codec.h"
55
#include "crn_strutils.h"
66
#include "crn_checksum.h"
7-
#include "lzma_LzmaLib.h"
7+
#include "lzma/LzmaLib.h"
88
#include "crn_threading.h"
99

1010
namespace crnlib {

0 commit comments

Comments
 (0)