You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by lo...@apache.org on 2025/02/27 14:21:18 UTC
(nifi-minifi-cpp) 04/04: MINIFICPP-2461 Fix linker error on MSBuild
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 <fg...@gmail.com>
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 <ga...@gmail.com>
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()