This is an automated email from the ASF dual-hosted git repository. lordgamez pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit d46804aa15a42916d7e0f8b91650d13007e2de0d Author: Ferenc Gerlits <[email protected]> AuthorDate: Tue Feb 25 17:10:12 2025 +0100 MINIFICPP-2461 Fix linker error on MSBuild On Windows, if we use MSBuild instead of Ninja, binary artifacts are put in a subdirectory according to the build type, eg. bin/Debug or bin/Release. Since our LibArchive build was not aware of this, it could not find the liblzma.lib file. This change is a workaround for this problem. Signed-off-by: Gabor Gyimesi <[email protected]> This closes #1937 --- cmake/LibLZMA.cmake | 8 ++++---- cmake/liblzma/dummy/FindLibLZMA.cmake | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/cmake/LibLZMA.cmake b/cmake/LibLZMA.cmake index 1cd66d84c..67ca7c9d7 100644 --- a/cmake/LibLZMA.cmake +++ b/cmake/LibLZMA.cmake @@ -35,11 +35,11 @@ add_library(LibLZMA::LibLZMA ALIAS liblzma) # Set exported variables for FindPackage.cmake set(LIBLZMA_INCLUDE_DIR "${liblzma_SOURCE_DIR}/src/liblzma/api" CACHE STRING "" FORCE) +set(PASSTHROUGH_VARIABLES ${PASSTHROUGH_VARIABLES} "-DEXPORTED_LIBLZMA_INCLUDE_DIR=${LIBLZMA_INCLUDE_DIR}" CACHE STRING "" FORCE) + if (WIN32) - set(LIBLZMA_LIBRARY "${liblzma_BINARY_DIR}/liblzma.lib" CACHE STRING "" FORCE) + set(PASSTHROUGH_VARIABLES ${PASSTHROUGH_VARIABLES} "-DEXPORTED_LIBLZMA_LIB_DIR=${liblzma_BINARY_DIR}" CACHE STRING "" FORCE) else() set(LIBLZMA_LIBRARY "${liblzma_BINARY_DIR}/liblzma.a" CACHE STRING "" FORCE) + set(PASSTHROUGH_VARIABLES ${PASSTHROUGH_VARIABLES} "-DEXPORTED_LIBLZMA_LIBRARY=${LIBLZMA_LIBRARY}" CACHE STRING "" FORCE) endif() - -set(PASSTHROUGH_VARIABLES ${PASSTHROUGH_VARIABLES} "-DEXPORTED_LIBLZMA_INCLUDE_DIR=${LIBLZMA_INCLUDE_DIR}" CACHE STRING "" FORCE) -set(PASSTHROUGH_VARIABLES ${PASSTHROUGH_VARIABLES} "-DEXPORTED_LIBLZMA_LIBRARY=${LIBLZMA_LIBRARY}" CACHE STRING "" FORCE) diff --git a/cmake/liblzma/dummy/FindLibLZMA.cmake b/cmake/liblzma/dummy/FindLibLZMA.cmake index c298caab4..ece2ccc26 100644 --- a/cmake/liblzma/dummy/FindLibLZMA.cmake +++ b/cmake/liblzma/dummy/FindLibLZMA.cmake @@ -17,8 +17,19 @@ if(NOT LIBLZMA_FOUND) set(LIBLZMA_FOUND "YES" CACHE STRING "" FORCE) + set(LIBLZMA_INCLUDE_DIR "${EXPORTED_LIBLZMA_INCLUDE_DIR}" CACHE STRING "" FORCE) set(LIBLZMA_INCLUDE_DIRS "${EXPORTED_LIBLZMA_INCLUDE_DIR}" CACHE STRING "" FORCE) - set(LIBLZMA_LIBRARIES "${EXPORTED_LIBLZMA_LIBRARY}" CACHE STRING "" FORCE) - set(LIBLZMA_LIBRARIES "${EXPORTED_LIBLZMA_LIBRARY}" CACHE STRING "" FORCE) + + if (WIN32) + if (EXISTS "${EXPORTED_LIBLZMA_LIB_DIR}/liblzma.lib") + set(LIBLZMA_LIBRARIES "${EXPORTED_LIBLZMA_LIB_DIR}/liblzma.lib" CACHE STRING "" FORCE) + elseif (EXISTS "${EXPORTED_LIBLZMA_LIB_DIR}/${CMAKE_BUILD_TYPE}/liblzma.lib") + set(LIBLZMA_LIBRARIES "${EXPORTED_LIBLZMA_LIB_DIR}/${CMAKE_BUILD_TYPE}/liblzma.lib" CACHE STRING "" FORCE) + else() + message(FATAL_ERROR "Could not find liblzma.lib") + endif() + else() + set(LIBLZMA_LIBRARIES "${EXPORTED_LIBLZMA_LIBRARY}" CACHE STRING "" FORCE) + endif() endif()
