From e24d826611e16a1be19c6ee1466c0c263e6c90a2 Mon Sep 17 00:00:00 2001 From: Sam Thursfield Date: Sun, 30 Oct 2016 22:22:05 +0000 Subject: [PATCH] Fix CMake build system with the Ninja backend Previously building with `cmake -G Ninja` would fail with this error: ninja: error: 'third-party/event-c51b159cff/lib/libevent.a', needed by 'libtransmission/transmission-test-watchdir_generic', missing and no known rule to make it This was due to missing BUILD_BYPRODUCTS in the calls to ExternalProject_Add(), as discussed here: --- cmake/TrMacros.cmake | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/cmake/TrMacros.cmake b/cmake/TrMacros.cmake index 360392cf8..6ddef1102 100644 --- a/cmake/TrMacros.cmake +++ b/cmake/TrMacros.cmake @@ -90,6 +90,12 @@ macro(tr_add_external_auto_library ID LIBNAME) set(${ID}_UPSTREAM_TARGET ${LIBNAME}-${${ID}_RELEASE}) set(${ID}_PREFIX "${CMAKE_BINARY_DIR}/third-party/${${ID}_UPSTREAM_TARGET}") + set(${ID}_INCLUDE_DIR "${${ID}_PREFIX}/include" CACHE INTERNAL "") + set(${ID}_LIBRARY "${${ID}_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LIBNAME}${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE INTERNAL "") + + set(${ID}_INCLUDE_DIRS ${${ID}_INCLUDE_DIR}) + set(${ID}_LIBRARIES ${${ID}_LIBRARY}) + ExternalProject_Add( ${${ID}_UPSTREAM_TARGET} ${${ID}_UPSTREAM} @@ -102,15 +108,10 @@ macro(tr_add_external_auto_library ID LIBNAME) "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}" "-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}" "-DCMAKE_INSTALL_PREFIX:PATH=" + BUILD_BYPRODUCTS "${${ID}_LIBRARY}" ) set_property(TARGET ${${ID}_UPSTREAM_TARGET} PROPERTY FOLDER "ThirdParty") - - set(${ID}_INCLUDE_DIR "${${ID}_PREFIX}/include" CACHE INTERNAL "") - set(${ID}_LIBRARY "${${ID}_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LIBNAME}${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE INTERNAL "") - - set(${ID}_INCLUDE_DIRS ${${ID}_INCLUDE_DIR}) - set(${ID}_LIBRARIES ${${ID}_LIBRARY}) endif() endmacro()