@@ -488,19 +488,32 @@ if(ARROW_BUILD_TESTS)
488488 set (GTEST_CMAKE_CXX_FLAGS "-fPIC" )
489489 endif ()
490490
491- ExternalProject_Add(googletest_ep
492- URL "https://github.com/google/googletest/archive/release-${GTEST_VERSION} .tar.gz"
493- CMAKE_ARGS -DCMAKE_CXX_FLAGS=${GTEST_CMAKE_CXX_FLAGS} -Dgtest_force_shared_crt=ON
494- # googletest doesn't define install rules, so just build in the
495- # source dir and don't try to install. See its README for
496- # details.
497- BUILD_IN_SOURCE 1
498- INSTALL_COMMAND "" )
499-
500491 set (GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR} /googletest_ep-prefix/src/googletest_ep" )
501492 set (GTEST_INCLUDE_DIR "${GTEST_PREFIX} /include" )
502493 set (GTEST_STATIC_LIB "${GTEST_PREFIX} /${CMAKE_CFG_INTDIR} /${CMAKE_STATIC_LIBRARY_PREFIX} gtest${CMAKE_STATIC_LIBRARY_SUFFIX} " )
503494 set (GTEST_VENDORED 1)
495+
496+ if (CMAKE_VERSION VERSION_GREATER "3.2" )
497+ # BUILD_BYPRODUCTS is a 3.2+ feature
498+ ExternalProject_Add(googletest_ep
499+ URL "https://github.com/google/googletest/archive/release-${GTEST_VERSION} .tar.gz"
500+ CMAKE_ARGS -DCMAKE_CXX_FLAGS=${GTEST_CMAKE_CXX_FLAGS} -Dgtest_force_shared_crt=ON
501+ # googletest doesn't define install rules, so just build in the
502+ # source dir and don't try to install. See its README for
503+ # details.
504+ BUILD_IN_SOURCE 1
505+ BUILD_BYPRODUCTS "${GTEST_STATIC_LIB} "
506+ INSTALL_COMMAND "" )
507+ else ()
508+ ExternalProject_Add(googletest_ep
509+ URL "https://github.com/google/googletest/archive/release-${GTEST_VERSION} .tar.gz"
510+ CMAKE_ARGS -DCMAKE_CXX_FLAGS=${GTEST_CMAKE_CXX_FLAGS} -Dgtest_force_shared_crt=ON
511+ # googletest doesn't define install rules, so just build in the
512+ # source dir and don't try to install. See its README for
513+ # details.
514+ BUILD_IN_SOURCE 1
515+ INSTALL_COMMAND "" )
516+ endif ()
504517 else ()
505518 find_package (GTest REQUIRED)
506519 set (GTEST_VENDORED 0)
@@ -525,24 +538,34 @@ if(ARROW_BUILD_TESTS)
525538 endif ()
526539
527540 set (GFLAGS_PREFIX "${CMAKE_CURRENT_BINARY_DIR} /gflags_ep-prefix/src/gflags_ep" )
528- ExternalProject_Add(gflags_ep
529- GIT_REPOSITORY https://github.com/gflags/gflags.git
530- GIT_TAG cce68f0c9c5d054017425e6e6fd54f696d36e8ee
531- BUILD_IN_SOURCE 1
532- CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
533- -DCMAKE_INSTALL_PREFIX=${GFLAGS_PREFIX}
534- -DBUILD_SHARED_LIBS=OFF
535- -DBUILD_STATIC_LIBS=ON
536- -DBUILD_PACKAGING=OFF
537- -DBUILD_TESTING=OFF
538- -BUILD_CONFIG_TESTS=OFF
539- -DINSTALL_HEADERS=ON
540- -DCMAKE_CXX_FLAGS=${GFLAGS_CMAKE_CXX_FLAGS} )
541-
542541 set (GFLAGS_HOME "${GFLAGS_PREFIX} " )
543542 set (GFLAGS_INCLUDE_DIR "${GFLAGS_PREFIX} /include" )
544543 set (GFLAGS_STATIC_LIB "${GFLAGS_PREFIX} /lib/libgflags.a" )
545544 set (GFLAGS_VENDORED 1)
545+ set (GFLAGS_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
546+ -DCMAKE_INSTALL_PREFIX=${GFLAGS_PREFIX}
547+ -DBUILD_SHARED_LIBS=OFF
548+ -DBUILD_STATIC_LIBS=ON
549+ -DBUILD_PACKAGING=OFF
550+ -DBUILD_TESTING=OFF
551+ -BUILD_CONFIG_TESTS=OFF
552+ -DINSTALL_HEADERS=ON
553+ -DCMAKE_CXX_FLAGS=${GFLAGS_CMAKE_CXX_FLAGS} )
554+ if (CMAKE_VERSION VERSION_GREATER "3.2" )
555+ # BUILD_BYPRODUCTS is a 3.2+ feature
556+ ExternalProject_Add(gflags_ep
557+ GIT_REPOSITORY https://github.com/gflags/gflags.git
558+ GIT_TAG cce68f0c9c5d054017425e6e6fd54f696d36e8ee
559+ BUILD_IN_SOURCE 1
560+ BUILD_BYPRODUCTS "${GFLAGS_STATIC_LIB} "
561+ CMAKE_ARGS ${GFLAGS_CMAKE_ARGS} )
562+ else ()
563+ ExternalProject_Add(gflags_ep
564+ GIT_REPOSITORY https://github.com/gflags/gflags.git
565+ GIT_TAG cce68f0c9c5d054017425e6e6fd54f696d36e8ee
566+ BUILD_IN_SOURCE 1
567+ CMAKE_ARGS ${GFLAGS_CMAKE_ARGS} )
568+ endif ()
546569 else ()
547570 set (GFLAGS_VENDORED 0)
548571 find_package (GFlags REQUIRED)
@@ -570,16 +593,24 @@ if(ARROW_BUILD_BENCHMARKS)
570593 endif ()
571594
572595 set (GBENCHMARK_PREFIX "${CMAKE_CURRENT_BINARY_DIR} /gbenchmark_ep/src/gbenchmark_ep-install" )
573- ExternalProject_Add(gbenchmark_ep
574- URL "https://github.com/google/benchmark/archive/v${GBENCHMARK_VERSION} .tar.gz"
575- CMAKE_ARGS
576- "-DCMAKE_BUILD_TYPE=Release"
577- "-DCMAKE_INSTALL_PREFIX:PATH=${GBENCHMARK_PREFIX} "
578- "-DCMAKE_CXX_FLAGS=-fPIC ${GBENCHMARK_CMAKE_CXX_FLAGS} " )
579-
580596 set (GBENCHMARK_INCLUDE_DIR "${GBENCHMARK_PREFIX} /include" )
581597 set (GBENCHMARK_STATIC_LIB "${GBENCHMARK_PREFIX} /lib/${CMAKE_STATIC_LIBRARY_PREFIX} benchmark${CMAKE_STATIC_LIBRARY_SUFFIX} " )
582598 set (GBENCHMARK_VENDORED 1)
599+ set (GBENCHMARK_CMAKE_ARGS
600+ "-DCMAKE_BUILD_TYPE=Release"
601+ "-DCMAKE_INSTALL_PREFIX:PATH=${GBENCHMARK_PREFIX} "
602+ "-DCMAKE_CXX_FLAGS=-fPIC ${GBENCHMARK_CMAKE_CXX_FLAGS} " )
603+ if (CMAKE_VERSION VERSION_GREATER "3.2" )
604+ # BUILD_BYPRODUCTS is a 3.2+ feature
605+ ExternalProject_Add(gbenchmark_ep
606+ URL "https://github.com/google/benchmark/archive/v${GBENCHMARK_VERSION} .tar.gz"
607+ BUILD_BYPRODUCTS "${GBENCHMARK_STATIC_LIB} "
608+ CMAKE_ARGS ${GBENCHMARK_CMAKE_ARGS} )
609+ else ()
610+ ExternalProject_Add(gbenchmark_ep
611+ URL "https://github.com/google/benchmark/archive/v${GBENCHMARK_VERSION} .tar.gz"
612+ CMAKE_ARGS ${GBENCHMARK_CMAKE_ARGS} )
613+ endif ()
583614 else ()
584615 find_package (GBenchmark REQUIRED)
585616 set (GBENCHMARK_VENDORED 0)
0 commit comments