kou commented on pull request #8782:
URL: https://github.com/apache/arrow/pull/8782#issuecomment-736172872


   It seems that the latest GoogleTest doesn't use the default 
`CMAKE_XXX_OUTPUT_DIRECTORY`: 
https://github.com/google/googletest/blob/master/googletest/cmake/internal_utils.cmake#L159-L164
   
   Could you try this?
   
   ```diff
   diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake 
b/cpp/cmake_modules/ThirdpartyToolchain.cmake
   index df03c3129..e36571808 100644
   --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
   +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
   @@ -1603,21 +1603,16 @@ macro(build_gtest)
      set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/googletest_ep-prefix")
      set(GTEST_INCLUDE_DIR "${GTEST_PREFIX}/include")
    
   -  set(_GTEST_RUNTIME_DIR ${BUILD_OUTPUT_ROOT_DIRECTORY})
   +  set(_GTEST_LIBRARY_DIR "${GTEST_PREFIX}/lib")
    
      if(MSVC)
        set(_GTEST_IMPORTED_TYPE IMPORTED_IMPLIB)
        set(_GTEST_LIBRARY_SUFFIX
            "${CMAKE_GTEST_DEBUG_EXTENSION}${CMAKE_IMPORT_LIBRARY_SUFFIX}")
   -    # Use the import libraries from the EP
   -    set(_GTEST_LIBRARY_DIR "${GTEST_PREFIX}/lib")
      else()
        set(_GTEST_IMPORTED_TYPE IMPORTED_LOCATION)
        set(_GTEST_LIBRARY_SUFFIX
            "${CMAKE_GTEST_DEBUG_EXTENSION}${CMAKE_SHARED_LIBRARY_SUFFIX}")
   -
   -    # Library and runtime same on non-Windows
   -    set(_GTEST_LIBRARY_DIR "${_GTEST_RUNTIME_DIR}")
      endif()
    
      set(GTEST_SHARED_LIB
   @@ -1632,6 +1627,7 @@ macro(build_gtest)
          ${EP_COMMON_TOOLCHAIN}
          -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
          "-DCMAKE_INSTALL_PREFIX=${GTEST_PREFIX}"
   +      -DCMAKE_INSTALL_LIBDIR=lib
          -DBUILD_SHARED_LIBS=ON
          -DCMAKE_CXX_FLAGS=${GTEST_CMAKE_CXX_FLAGS}
          -DCMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}=${GTEST_CMAKE_CXX_FLAGS})
   @@ -1641,27 +1637,6 @@ macro(build_gtest)
        set(GTEST_CMAKE_ARGS ${GTEST_CMAKE_ARGS} "-DCMAKE_MACOSX_RPATH:BOOL=ON")
      endif()
    
   -  if(CMAKE_GENERATOR STREQUAL "Xcode")
   -    # Xcode projects support multi-configuration builds.  This forces the 
gtest build
   -    # to use the same output directory as a single-configuration Makefile 
driven build.
   -    list(
   -      APPEND GTEST_CMAKE_ARGS 
"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${_GTEST_LIBRARY_DIR}"
   -             
"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_${CMAKE_BUILD_TYPE}=${_GTEST_RUNTIME_DIR}")
   -  endif()
   -
   -  if(MSVC)
   -    if(NOT ("${CMAKE_GENERATOR}" STREQUAL "Ninja"))
   -      set(_GTEST_RUNTIME_DIR ${_GTEST_RUNTIME_DIR}/${CMAKE_BUILD_TYPE})
   -    endif()
   -    set(GTEST_CMAKE_ARGS
   -        ${GTEST_CMAKE_ARGS} 
"-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${_GTEST_RUNTIME_DIR}"
   -        
"-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_${CMAKE_BUILD_TYPE}=${_GTEST_RUNTIME_DIR}")
   -  else()
   -    list(
   -      APPEND GTEST_CMAKE_ARGS 
"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${_GTEST_RUNTIME_DIR}"
   -             
"-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_${CMAKE_BUILD_TYPE}=${_GTEST_RUNTIME_DIR}")
   -  endif()
   -
      add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY=1)
    
      if(MSVC AND NOT ARROW_USE_STATIC_CRT)
   ```


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to