kou commented on a change in pull request #12605:
URL: https://github.com/apache/arrow/pull/12605#discussion_r825298738



##########
File path: cpp/cmake_modules/ThirdpartyToolchain.cmake
##########
@@ -1844,10 +1844,14 @@ macro(build_gtest)
   set(GTEST_VENDORED TRUE)
   set(GTEST_CMAKE_CXX_FLAGS ${EP_CXX_FLAGS})
 
-  if(CMAKE_BUILD_TYPE MATCHES DEBUG)
-    set(CMAKE_GTEST_DEBUG_EXTENSION "d")
+  if(NOT CMAKE_GENERATOR STREQUAL Xcode)

Review comment:
       How about using `GENERATOR_IS_MULTI_CONFIG` 
https://cmake.org/cmake/help/latest/prop_gbl/GENERATOR_IS_MULTI_CONFIG.html ?
   We already use it: 
https://github.com/apache/arrow/blob/master/cpp/cmake_modules/ThirdpartyToolchain.cmake#L1941
   

##########
File path: cpp/cmake_modules/ThirdpartyToolchain.cmake
##########
@@ -1844,10 +1844,14 @@ macro(build_gtest)
   set(GTEST_VENDORED TRUE)
   set(GTEST_CMAKE_CXX_FLAGS ${EP_CXX_FLAGS})
 
-  if(CMAKE_BUILD_TYPE MATCHES DEBUG)
-    set(CMAKE_GTEST_DEBUG_EXTENSION "d")
+  if(NOT CMAKE_GENERATOR STREQUAL Xcode)
+    if(CMAKE_BUILD_TYPE MATCHES DEBUG)
+      set(CMAKE_GTEST_DEBUG_EXTENSION "d")
+    else()
+      set(CMAKE_GTEST_DEBUG_EXTENSION "")
+    endif()
   else()
-    set(CMAKE_GTEST_DEBUG_EXTENSION "")
+    set(CMAKE_GTEST_DEBUG_EXTENSION "d")

Review comment:
       How about using generator expression 
https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html ? 
We can use generator expression in `ExternalProject_Add`'s arguments: 
https://cmake.org/cmake/help/latest/module/ExternalProject.html
   
   ```diff
   diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake 
b/cpp/cmake_modules/ThirdpartyToolchain.cmake
   index ff48ac7ee5..44cab1d6b1 100644
   --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
   +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
   @@ -1849,11 +1849,7 @@ macro(build_gtest)
      set(GTEST_VENDORED TRUE)
      set(GTEST_CMAKE_CXX_FLAGS ${EP_CXX_FLAGS})
    
   -  if(CMAKE_BUILD_TYPE MATCHES DEBUG)
   -    set(CMAKE_GTEST_DEBUG_EXTENSION "d")
   -  else()
   -    set(CMAKE_GTEST_DEBUG_EXTENSION "")
   -  endif()
   +  set(CMAKE_GTEST_DEBUG_EXTENSION "$<$<CONFIG:Debug>,d>")
    
      if(APPLE)
        set(GTEST_CMAKE_CXX_FLAGS ${GTEST_CMAKE_CXX_FLAGS} 
-DGTEST_USE_OWN_TR1_TUPLE=1
   @@ -1894,9 +1890,9 @@ macro(build_gtest)
      set(GTEST_CMAKE_ARGS
          ${EP_COMMON_TOOLCHAIN}
          -DBUILD_SHARED_LIBS=ON
   -      -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
   +      -DCMAKE_BUILD_TYPE=$<CONFIG>
          -DCMAKE_CXX_FLAGS=${GTEST_CMAKE_CXX_FLAGS}
   -      -DCMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}=${GTEST_CMAKE_CXX_FLAGS}
   +      -DCMAKE_CXX_FLAGS_$<UPPER_CASE:$<CONFIG>>=${GTEST_CMAKE_CXX_FLAGS}
          -DCMAKE_INSTALL_LIBDIR=lib
          -DCMAKE_INSTALL_NAME_DIR=${GTEST_INSTALL_NAME_DIR}
          -DCMAKE_INSTALL_PREFIX=${GTEST_PREFIX}
   ```




-- 
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.

To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org

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


Reply via email to