Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions components/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,8 @@ if(PROJECT_IS_TOP_LEVEL)
# Include dependency settings if the project isn't being included as a subproject.
# NOTE: We mark the file optional since it's not required if the user happens to have the
# dependencies installed already.
include("${CMAKE_SOURCE_DIR}/../../build/deps/core/cmake-settings/all.cmake"
set(CLP_CORE_DEPS_DIR "${CMAKE_SOURCE_DIR}/../../build/deps/core")
include("${CLP_CORE_DEPS_DIR}/cmake-settings/all.cmake"
OPTIONAL
RESULT_VARIABLE CLP_DEPS_SETTINGS_FILE_PATH
)
Expand Down Expand Up @@ -310,10 +311,13 @@ endif()

if(CLP_NEED_LIBLZMA)
if(CLP_USE_STATIC_LIBS)
set(LibLZMA_ROOT ${LibLZMA-static_ROOT})
set(LibLZMA_USE_STATIC_LIBS ON)
else()
set(LibLZMA_ROOT ${LibLZMA-shared_ROOT})
endif()
# Version 5.8.1 and above address CVE-2024-3094 and CVE-2025-31115.
find_package(LibLZMA 5.8.1 REQUIRED MODULE)
find_package(LibLZMA 5.8.1 REQUIRED)
message(STATUS "Found LibLZMA ${LibLZMA_VERSION}")
endif()

Expand Down
7 changes: 3 additions & 4 deletions components/core/cmake/Modules/FindLibLZMA.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@ set(liblzma_HEADER "lzma.h")
set(liblzma_LIBNAME "lzma")
set(liblzma_PKGCONFIG_NAME "liblzma")

if(DEFINED LibLZMA_ROOT)
set(liblzma_PKGCONFIG_DIR "${LibLZMA_ROOT}/lib/pkgconfig")
if(DEFINED CLP_CORE_DEPS_DIR)
set(ENV{liblzma_ORIG_PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}")
set(ENV{PKG_CONFIG_PATH} "${liblzma_PKGCONFIG_DIR}:$ENV{PKG_CONFIG_PATH}")
set(ENV{PKG_CONFIG_PATH} "${CLP_CORE_DEPS_DIR}:$ENV{PKG_CONFIG_PATH}")
endif()

# Run pkg-config
Expand Down Expand Up @@ -91,7 +90,7 @@ if(NOT TARGET LibLZMA::LibLZMA)
endif()

# Restore original value of PKG_CONFIG_PATH
if(DEFINED LibLZMA_ROOT)
if(DEFINED CLP_CORE_DEPS_DIR)
set(ENV{PKG_CONFIG_PATH} "$ENV{liblzma_ORIG_PKG_CONFIG_PATH}")
unset(ENV{liblzma_ORIG_PKG_CONFIG_PATH})
endif()
40 changes: 39 additions & 1 deletion taskfiles/deps/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -223,16 +223,54 @@ tasks:
TARBALL_URL: "https://github.com/fmtlib/fmt/archive/refs/tags/10.2.1.tar.gz"

liblzma:
internal: true
run: "once"
deps:
- task: "liblzma-shared"
- task: "liblzma-static"

liblzma-shared:
internal: true
run: "once"
cmds:
- task: "utils:install-remote-cmake-lib"
vars:
CMAKE_GEN_ARGS:
- "-DBUILD_SHARED_LIBS=ON"
- "-DBUILD_TESTING=OFF"
- "-DCMAKE_BUILD_TYPE=Release"
- "-DCMAKE_INSTALL_MESSAGE=LAZY"
- "-DXZ_DOC=OFF"
- "-DXZ_TOOL_LZMADEC=OFF"
- "-DXZ_TOOL_LZMAINFO=OFF"
- "-DXZ_TOOL_SCRIPTS=OFF"
- "-DXZ_TOOL_SYMLINKS_LZMA=OFF"
- "-DXZ_TOOL_XZ=OFF"
- "-DXZ_TOOL_XZDEC=OFF"
LIB_NAME: "LibLZMA-shared"
TARBALL_SHA256: "507825b599356c10dca1cd720c9d0d0c9d5400b9de300af00e4d1ea150795543"
TARBALL_URL: "https://github.com/tukaani-project/xz/releases/download/v5.8.1\
/xz-5.8.1.tar.gz"

liblzma-static:
internal: true
run: "once"
cmds:
- task: "utils:install-remote-cmake-lib"
vars:
CMAKE_GEN_ARGS:
- "-DBUILD_SHARED_LIBS=OFF"
- "-DBUILD_TESTING=OFF"
- "-DCMAKE_BUILD_TYPE=Release"
- "-DCMAKE_INSTALL_MESSAGE=LAZY"
LIB_NAME: "LibLZMA"
- "-DXZ_DOC=OFF"
- "-DXZ_TOOL_LZMADEC=OFF"
- "-DXZ_TOOL_LZMAINFO=OFF"
- "-DXZ_TOOL_SCRIPTS=OFF"
- "-DXZ_TOOL_SYMLINKS_LZMA=OFF"
- "-DXZ_TOOL_XZ=OFF"
- "-DXZ_TOOL_XZDEC=OFF"
LIB_NAME: "LibLZMA-static"
TARBALL_SHA256: "507825b599356c10dca1cd720c9d0d0c9d5400b9de300af00e4d1ea150795543"
TARBALL_URL: "https://github.com/tukaani-project/xz/releases/download/v5.8.1\
/xz-5.8.1.tar.gz"
Expand Down
Loading