From a104e5fb03650042ba106c7334c02cbe0110bd91 Mon Sep 17 00:00:00 2001 From: mingchuan Date: Wed, 6 Jun 2018 14:03:07 +0800 Subject: Fix cmake when custom CMAKE_INSTALL_LIBDIR is given According to cmake documents, we cannot assume CMAKE_INSTALL_LIBDIR is a relative path. This commit fixes the "no rule to make libjsoncpp.a" error by passing -DCMAKE_INSTALL_LIBDIR=lib to jsoncpp external project. --- cmake/jsoncpp.cmake | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'cmake/jsoncpp.cmake') diff --git a/cmake/jsoncpp.cmake b/cmake/jsoncpp.cmake index cc2da7e7..0c110b53 100644 --- a/cmake/jsoncpp.cmake +++ b/cmake/jsoncpp.cmake @@ -6,15 +6,8 @@ else() set(JSONCPP_CMAKE_COMMAND ${CMAKE_COMMAND}) endif() -include(GNUInstallDirs) -set(libdir ${CMAKE_INSTALL_LIBDIR}) -if(CMAKE_LIBRARY_ARCHITECTURE) - # Do not use Debian multiarch library dir. - string(REPLACE "/${CMAKE_LIBRARY_ARCHITECTURE}" "" libdir ${libdir}) -endif() - set(prefix "${CMAKE_BINARY_DIR}/deps") -set(JSONCPP_LIBRARY "${prefix}/${libdir}/${CMAKE_STATIC_LIBRARY_PREFIX}jsoncpp${CMAKE_STATIC_LIBRARY_SUFFIX}") +set(JSONCPP_LIBRARY "${prefix}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}jsoncpp${CMAKE_STATIC_LIBRARY_SUFFIX}") set(JSONCPP_INCLUDE_DIR "${prefix}/include") if(NOT MSVC) @@ -36,6 +29,7 @@ ExternalProject_Add(jsoncpp-project CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_INSTALL_LIBDIR=lib # Build static lib but suitable to be included in a shared lib. -DCMAKE_POSITION_INDEPENDENT_CODE=${BUILD_SHARED_LIBS} -DJSONCPP_WITH_TESTS=OFF -- cgit