Skip to content

Commit 80caa40

Browse files
committed
lzma: update to version 26.01
1 parent 51e443d commit 80caa40

121 files changed

Lines changed: 36950 additions & 6829 deletions

Some content is hidden

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

.azure-pipelines.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,26 +28,31 @@ strategy:
2828
Linux amd64 GCC:
2929
VM_IMAGE: 'ubuntu-22.04'
3030
APT_PACKAGES: ninja-build g++-10
31+
C_COMPILER: gcc-10
3132
CXX_COMPILER: g++-10
3233
Linux i686 GCC:
3334
VM_IMAGE: 'ubuntu-22.04'
3435
APT_PACKAGES: ninja-build g++-i686-linux-gnu
36+
C_COMPILER: i686-linux-gnu-gcc
3537
CXX_COMPILER: i686-linux-gnu-g++
3638
COMPILER_FLAGS: -mfpmath=sse -msse
3739
Linux arm64 GCC:
3840
VM_IMAGE: 'ubuntu-22.04'
3941
APT_PACKAGES: ninja-build g++-aarch64-linux-gnu qemu-user
42+
C_COMPILER: aarch64-linux-gnu-gcc
4043
CXX_COMPILER: aarch64-linux-gnu-g++
4144
CRUNCH_EXE_RUNNER: qemu-aarch64 -L /usr/aarch64-linux-gnu
4245
Linux armhf GCC:
4346
# There is an IO bug in qemu-arm from ubuntu-22.04.
4447
VM_IMAGE: 'ubuntu-24.04'
4548
APT_PACKAGES: ninja-build g++-arm-linux-gnueabihf qemu-user
49+
C_COMPILER: arm-linux-gnueabihf-gcc
4650
CXX_COMPILER: arm-linux-gnueabihf-g++
4751
CRUNCH_EXE_RUNNER: qemu-arm -L /usr/arm-linux-gnueabihf
4852
Linux amd64 Clang:
4953
VM_IMAGE: 'ubuntu-22.04'
5054
APT_PACKAGES: ninja-build
55+
C_COMPILER: clang
5156
CXX_COMPILER: clang++
5257
Windows amd64 MinGW:
5358
VM_IMAGE: 'ubuntu-22.04'
@@ -114,11 +119,14 @@ steps:
114119
if [ -n "${TOOLCHAIN_FILE:-}" ]; then
115120
cmake_args+=(-DCMAKE_TOOLCHAIN_FILE="${TOOLCHAIN_FILE}")
116121
fi
122+
if [ -n "${C_COMPILER:-}" ]; then
123+
cmake_args+=(-DCMAKE_C_COMPILER="${C_COMPILER}")
124+
fi
117125
if [ -n "${CXX_COMPILER:-}" ]; then
118126
cmake_args+=(-DCMAKE_CXX_COMPILER="${CXX_COMPILER}")
119127
fi
120128
if [ -n "${COMPILER_FLAGS:-}" ]; then
121-
cmake_args+=(-DCMAKE_CXX_FLAGS="${COMPILER_FLAGS}")
129+
cmake_args+=(-DCMAKE_C_FLAGS="${COMPILER_FLAGS}" -DCMAKE_CXX_FLAGS="${COMPILER_FLAGS}")
122130
fi
123131
if [ -z "${SOURCE_DIR:-}" ]; then
124132
cmake_args+=(-DBUILD_CRUNCH=ON -DBUILD_EXAMPLES=ON -DBUILD_SHARED_LIBS=ON)

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)
@@ -77,7 +79,7 @@ endif()
7779

7880
if (MSVC)
7981
# Enable MSVC parallel compilation.
80-
set_cxx_flag("/MP")
82+
set_c_cxx_flag("/MP")
8183

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

@@ -88,50 +90,50 @@ if (MSVC)
8890
# See https://learn.microsoft.com/en-us/cpp/build/reference/fp-specify-floating-point-behavior
8991
# and https://devblogs.microsoft.com/cppblog/the-fpcontract-flag-and-changes-to-fp-modes-in-vs2022/
9092
# By default, MSVC doesn't enable the /fp:fast option.
91-
set_cxx_flag("/fp:fast")
93+
set_c_cxx_flag("/fp:fast")
9294
endif()
9395

9496
if (USE_LTO)
95-
set_cxx_flag("/GL" RELEASE)
96-
set_cxx_flag("/GL" RELWITHDEBINFO)
97-
set_cxx_flag("/GL" MINSIZEREL)
97+
set_c_cxx_flag("/GL" RELEASE)
98+
set_c_cxx_flag("/GL" RELWITHDEBINFO)
99+
set_c_cxx_flag("/GL" MINSIZEREL)
98100
set_linker_flag("/LTCG" RELEASE)
99101
set_linker_flag("/LTCG" RELWITHDEBINFO)
100102
set_linker_flag("/LTCG" MINSIZEREL)
101103
endif()
102104
else()
103105
# As written in crnlib.h and stb_image.h, strict aliasing should always be disabled.
104-
set_cxx_flag("-fno-strict-aliasing")
106+
set_c_cxx_flag("-fno-strict-aliasing")
105107

106108
# Generate maxmimum amount of debug information, including macro definitions.
107-
set_cxx_flag("-g3" DEBUG)
108-
set_cxx_flag("-g3" RELWITHDEBINFO)
109+
set_c_cxx_flag("-g3" DEBUG)
110+
set_c_cxx_flag("-g3" RELWITHDEBINFO)
109111

110-
set_cxx_flag("-pthread")
112+
set_c_cxx_flag("-pthread")
111113
set_linker_flag("-pthread")
112114

113115
if (USE_EXTRA_OPTIMIZATION)
114116
# CMake already sets the -O3 flag on Release build and -O[1-3s] already sets the -fomit-frame-pointer flag.
115-
set_cxx_flag("-Og" DEBUG)
116-
set_cxx_flag("-O3" RELWITHDEBINFO)
117+
set_c_cxx_flag("-Og" DEBUG)
118+
set_c_cxx_flag("-O3" RELWITHDEBINFO)
117119
endif()
118120

119121
if (USE_FAST_MATH)
120122
# By default, GCC uses -ffp-contract=fast with -std=gnu* and uses -ffp-contract=off with -std=c*.
121123
# See https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
122124
# By default, GCC doesn't enable the -ffast-math option.
123-
set_cxx_flag("-ffast-math -fno-math-errno -ffp-contract=fast")
125+
set_c_cxx_flag("-ffast-math -fno-math-errno -ffp-contract=fast")
124126
else()
125127
# By default, GCC uses -std=gnu* and then enables -ffp-contract=fast even if -ffast-math is not enabled.
126-
set_cxx_flag("-ffp-contract=off")
128+
set_c_cxx_flag("-ffp-contract=off")
127129
endif()
128130

129131
# It should be done at the very end because it copies all compiler flags
130132
# to the linker flags.
131133
if (USE_LTO)
132-
set_cxx_flag("-flto" RELEASE)
133-
set_cxx_flag("-flto" RELWITHDEBINFO)
134-
set_cxx_flag("-flto" MINSIZEREL)
134+
set_c_cxx_flag("-flto" RELEASE)
135+
set_c_cxx_flag("-flto" RELWITHDEBINFO)
136+
set_c_cxx_flag("-flto" MINSIZEREL)
135137
set_linker_flag("${CMAKE_CXX_FLAGS}" RELEASE)
136138
set_linker_flag("${CMAKE_CXX_FLAGS}" RELWITHDEBINFO)
137139
set_linker_flag("${CMAKE_CXX_FLAGS}" MINSIZEREL)

crnlib/CMakeLists.txt

Lines changed: 90 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -142,49 +142,107 @@ 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)
181239
set(CRNLIB_THREAD_SRCS
182-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzFindMt.cpp
183-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_LzFindMt.h
184-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Threads.cpp
185-
${CMAKE_CURRENT_SOURCE_DIR}/lzma_Threads.h
186240
${CMAKE_CURRENT_SOURCE_DIR}/crn_threading_win32.cpp
187241
${CMAKE_CURRENT_SOURCE_DIR}/crn_threading_win32.h
242+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzFindMt.c
243+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/LzFindMt.h
244+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Threads.c
245+
${CMAKE_CURRENT_SOURCE_DIR}/lzma/Threads.h
188246
)
189247
else()
190248
set(CRNLIB_THREAD_SRCS

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)