Skip to content

Commit 48c6738

Browse files
authored
ARROW-17872: [C++][CI] Reduce macOS CI dependencies (apache#14310)
Pin LLVM and Clang-format version to 14 because it's pre-installed on the runner image. Authored-by: Jin Shang <[email protected]> Signed-off-by: Sutou Kouhei <[email protected]>
1 parent 12667cd commit 48c6738

File tree

12 files changed

+38
-54
lines changed

12 files changed

+38
-54
lines changed

.env

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ FEDORA=35
5353
UBUNTU=20.04
5454

5555
# Default versions for various dependencies
56-
CLANG_TOOLS=12
56+
CLANG_TOOLS=14
5757
CUDA=11.0.3
5858
DASK=latest
5959
DOTNET=6.0
@@ -64,7 +64,7 @@ HDFS=3.2.1
6464
JDK=8
6565
KARTOTHEK=latest
6666
# LLVM 12 and GCC 11 reports -Wmismatched-new-delete.
67-
LLVM=13
67+
LLVM=14
6868
MAVEN=3.5.4
6969
NODE=16
7070
NUMBA=latest

.github/workflows/cpp.yml

-3
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,7 @@ jobs:
182182
key: cpp-ccache-macos-${{ hashFiles('cpp/**') }}
183183
restore-keys: cpp-ccache-macos-
184184
- name: Build
185-
# use brew version of clang, to be consistent with LLVM lib, see ARROW-17790.
186185
run: |
187-
export CC=$(brew --prefix llvm)/bin/clang
188-
export CXX=$(brew --prefix llvm)/bin/clang++
189186
ci/scripts/cpp_build.sh $(pwd) $(pwd)/build
190187
- name: Test
191188
shell: bash

.github/workflows/python.yml

-3
Original file line numberDiff line numberDiff line change
@@ -167,10 +167,7 @@ jobs:
167167
-r python/requirements-test.txt
168168
- name: Build
169169
shell: bash
170-
# use brew version of clang, to be consistent with LLVM lib, see ARROW-17790.
171170
run: |
172-
export CC=$(brew --prefix llvm)/bin/clang
173-
export CXX=$(brew --prefix llvm)/bin/clang++
174171
export PYTHON=python3
175172
ci/scripts/cpp_build.sh $(pwd) $(pwd)/build
176173
ci/scripts/python_build.sh $(pwd) $(pwd)/build

.github/workflows/ruby.yml

-3
Original file line numberDiff line numberDiff line change
@@ -169,10 +169,7 @@ jobs:
169169
key: ruby-ccache-macos-${{ hashFiles('cpp/**') }}
170170
restore-keys: ruby-ccache-macos-
171171
- name: Build C++
172-
# use brew version of clang, to be consistent with LLVM lib, see ARROW-17790.
173172
run: |
174-
export CC=$(brew --prefix llvm)/bin/clang
175-
export CXX=$(brew --prefix llvm)/bin/clang++
176173
ci/scripts/cpp_build.sh $(pwd) $(pwd)/build
177174
- name: Build GLib
178175
run: |

cpp/Brewfile

+1-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ brew "git"
2828
brew "glog"
2929
brew "googletest"
3030
brew "grpc"
31-
brew "llvm"
32-
brew "llvm@12"
31+
brew "llvm@14"
3332
brew "lz4"
3433
brew "ninja"
3534
brew "numpy"

cpp/CMakeLists.txt

-3
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,6 @@ set(ARROW_LLVM_VERSIONS
138138
"9"
139139
"8"
140140
"7")
141-
list(GET ARROW_LLVM_VERSIONS 0 ARROW_LLVM_VERSION_PRIMARY)
142-
string(REGEX REPLACE "^([0-9]+)(\\..+)?" "\\1" ARROW_LLVM_VERSION_PRIMARY_MAJOR
143-
"${ARROW_LLVM_VERSION_PRIMARY}")
144141

145142
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../.env ARROW_ENV)
146143
string(REGEX MATCH "CLANG_TOOLS=[^\n]+" ARROW_ENV_CLANG_TOOLS_VERSION "${ARROW_ENV}")

cpp/cmake_modules/FindLLVMAlt.cmake

+18-23
Original file line numberDiff line numberDiff line change
@@ -40,35 +40,30 @@ if(DEFINED LLVM_ROOT)
4040
endif()
4141

4242
if(NOT LLVM_FOUND)
43-
set(LLVM_HINTS ${LLVM_ROOT} ${LLVM_DIR} /usr/lib /usr/share)
44-
if(APPLE)
45-
find_program(BREW brew)
46-
if(BREW)
47-
execute_process(COMMAND ${BREW} --prefix "llvm@${ARROW_LLVM_VERSION_PRIMARY_MAJOR}"
48-
OUTPUT_VARIABLE LLVM_BREW_PREFIX
49-
OUTPUT_STRIP_TRAILING_WHITESPACE)
50-
if(NOT LLVM_BREW_PREFIX)
51-
execute_process(COMMAND ${BREW} --prefix llvm
43+
foreach(ARROW_LLVM_VERSION ${ARROW_LLVM_VERSIONS})
44+
set(LLVM_HINTS ${LLVM_ROOT} ${LLVM_DIR} /usr/lib /usr/share)
45+
46+
if(APPLE)
47+
find_program(BREW brew)
48+
if(BREW)
49+
string(REGEX REPLACE "^([0-9]+)(\\..+)?" "\\1" ARROW_LLVM_VERSION_MAJOR
50+
"${ARROW_LLVM_VERSION}")
51+
execute_process(COMMAND ${BREW} --prefix "llvm@${ARROW_LLVM_VERSION_MAJOR}"
5252
OUTPUT_VARIABLE LLVM_BREW_PREFIX
5353
OUTPUT_STRIP_TRAILING_WHITESPACE)
54-
endif()
55-
if(LLVM_BREW_PREFIX)
5654
list(APPEND LLVM_HINTS ${LLVM_BREW_PREFIX})
5755
endif()
5856
endif()
59-
endif()
6057

61-
foreach(HINT ${LLVM_HINTS})
62-
foreach(ARROW_LLVM_VERSION ${ARROW_LLVM_VERSIONS})
63-
find_package(LLVM
64-
${ARROW_LLVM_VERSION}
65-
CONFIG
66-
HINTS
67-
${HINT})
68-
if(LLVM_FOUND)
69-
break()
70-
endif()
71-
endforeach()
58+
find_package(LLVM
59+
${ARROW_LLVM_VERSION}
60+
CONFIG
61+
HINTS
62+
${LLVM_HINTS})
63+
64+
if(LLVM_FOUND)
65+
break()
66+
endif()
7267
endforeach()
7368
endif()
7469

cpp/src/arrow/util/bpacking.cc

+5-4
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,14 @@ struct Unpack32DynamicFunction {
153153
using FunctionType = decltype(&unpack32_default);
154154

155155
static std::vector<std::pair<DispatchLevel, FunctionType>> implementations() {
156-
return {
157-
{ DispatchLevel::NONE, unpack32_default }
156+
return {{DispatchLevel::NONE, unpack32_default}
158157
#if defined(ARROW_HAVE_RUNTIME_AVX2)
159-
, { DispatchLevel::AVX2, unpack32_avx2 }
158+
,
159+
{DispatchLevel::AVX2, unpack32_avx2}
160160
#endif
161161
#if defined(ARROW_HAVE_RUNTIME_AVX512)
162-
, { DispatchLevel::AVX512, unpack32_avx512 }
162+
,
163+
{DispatchLevel::AVX512, unpack32_avx512}
163164
#endif
164165
};
165166
}

cpp/src/gandiva/GandivaConfig.cmake.in

-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
@PACKAGE_INIT@
2828

2929
set(ARROW_LLVM_VERSIONS "@ARROW_LLVM_VERSIONS@")
30-
set(ARROW_LLVM_VERSION_PRIMARY_MAJOR "@ARROW_LLVM_VERSION_PRIMARY_MAJOR@")
3130

3231
include(CMakeFindDependencyMacro)
3332
find_dependency(Arrow)

cpp/src/parquet/level_comparison.cc

+6-6
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ struct GreaterThanDynamicFunction {
4444
using FunctionType = decltype(&GreaterThanBitmap);
4545

4646
static std::vector<std::pair<DispatchLevel, FunctionType>> implementations() {
47-
return {
48-
{ DispatchLevel::NONE, standard::GreaterThanBitmapImpl }
47+
return {{DispatchLevel::NONE, standard::GreaterThanBitmapImpl}
4948
#if defined(ARROW_HAVE_RUNTIME_AVX2)
50-
, { DispatchLevel::AVX2, GreaterThanBitmapAvx2 }
49+
,
50+
{DispatchLevel::AVX2, GreaterThanBitmapAvx2}
5151
#endif
5252
};
5353
}
@@ -57,10 +57,10 @@ struct MinMaxDynamicFunction {
5757
using FunctionType = decltype(&FindMinMax);
5858

5959
static std::vector<std::pair<DispatchLevel, FunctionType>> implementations() {
60-
return {
61-
{ DispatchLevel::NONE, standard::FindMinMaxImpl }
60+
return {{DispatchLevel::NONE, standard::FindMinMaxImpl}
6261
#if defined(ARROW_HAVE_RUNTIME_AVX2)
63-
, { DispatchLevel::AVX2, FindMinMaxAvx2 }
62+
,
63+
{DispatchLevel::AVX2, FindMinMaxAvx2}
6464
#endif
6565
};
6666
}

dev/tasks/verify-rc/github.macos.amd64.yml

-4
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,4 @@ jobs:
7171
USE_CONDA: 1
7272
{% endif %}
7373
run: |
74-
{% if not use_conda %}
75-
export CC=$(brew --prefix llvm)/bin/clang
76-
export CXX=$(brew --prefix llvm)/bin/clang++
77-
{% endif %}
7874
arrow/dev/release/verify-release-candidate.sh {{ release|default("") }} {{ rc|default("") }}

python/CMakeLists.txt

+6
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ include(CMakeParseArguments)
4343
# https://www.cmake.org/cmake/help/latest/policy/CMP0054.html
4444
cmake_policy(SET CMP0054 NEW)
4545

46+
# find_package() uses <PackageName>_ROOT variables.
47+
# https://cmake.org/cmake/help/latest/policy/CMP0074.html
48+
if(POLICY CMP0074)
49+
cmake_policy(SET CMP0074 NEW)
50+
endif()
51+
4652
# Use the first Python installation on PATH, not the newest one
4753
set(Python3_FIND_STRATEGY "LOCATION")
4854
# On Windows, use registry last, not first

0 commit comments

Comments
 (0)