1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
|
diff --git a/cpp/cmake_modules/BuildUtils.cmake b/cpp/cmake_modules/BuildUtils.cmake
index e59b4a38a..9bd895608 100644
--- a/cpp/cmake_modules/BuildUtils.cmake
+++ b/cpp/cmake_modules/BuildUtils.cmake
@@ -440,7 +440,7 @@ function(ADD_ARROW_LIB LIB_NAME)
target_include_directories(${LIB_NAME}_static PRIVATE ${ARG_PRIVATE_INCLUDES})
endif()
- if(MSVC_TOOLCHAIN)
+ if(MSVC_TOOLCHAIN AND 0)
set(LIB_NAME_STATIC ${LIB_NAME}_static)
else()
set(LIB_NAME_STATIC ${LIB_NAME})
diff --git a/cpp/cmake_modules/FindBrotli.cmake b/cpp/cmake_modules/FindBrotli.cmake
index b46a0f1a0..3d87f5204 100644
--- a/cpp/cmake_modules/FindBrotli.cmake
+++ b/cpp/cmake_modules/FindBrotli.cmake
@@ -69,9 +69,9 @@ if(BROTLI_ROOT)
PATH_SUFFIXES ${ARROW_INCLUDE_PATH_SUFFIXES}
NO_DEFAULT_PATH)
else()
- find_package(PkgConfig QUIET)
- pkg_check_modules(BROTLI_PC libbrotlicommon libbrotlienc libbrotlidec)
- if(BROTLI_PC_FOUND)
+ #find_package(PkgConfig QUIET)
+ #pkg_check_modules(BROTLI_PC libbrotlicommon libbrotlienc libbrotlidec)
+ if(BROTLI_PC_FOUND AND 0) # Find via pkg_check_modules disabled as incompatible with vcpkg
set(BROTLI_INCLUDE_DIR "${BROTLI_PC_libbrotlicommon_INCLUDEDIR}")
# Some systems (e.g. Fedora) don't fill Brotli_LIBRARY_DIRS, so add the other dirs here.
diff --git a/cpp/cmake_modules/FindLz4.cmake b/cpp/cmake_modules/FindLz4.cmake
index 14b6d93b9..d8d80c408 100644
--- a/cpp/cmake_modules/FindLz4.cmake
+++ b/cpp/cmake_modules/FindLz4.cmake
@@ -15,10 +15,12 @@
# specific language governing permissions and limitations
# under the License.
-if(MSVC_TOOLCHAIN AND NOT DEFINED LZ4_MSVC_LIB_PREFIX)
- set(LZ4_MSVC_LIB_PREFIX "lib")
+# Avoid the debug build linking to the release library by mistake.
+# In theory harmless if static linking at this point, but disastrous if done for a shared library.
+if(CMAKE_BUILD_TYPE STREQUAL "DEBUG")
+ set(LZ4_LIB_NAME_DEBUG_SUFFIX d)
endif()
-set(LZ4_LIB_NAME_BASE "${LZ4_MSVC_LIB_PREFIX}lz4")
+set(LZ4_LIB_NAME_BASE "lz4${LZ4_LIB_NAME_DEBUG_SUFFIX}")
if(ARROW_LZ4_USE_SHARED)
set(LZ4_LIB_NAMES)
@@ -34,12 +36,8 @@ if(ARROW_LZ4_USE_SHARED)
LZ4_LIB_NAMES
"${CMAKE_SHARED_LIBRARY_PREFIX}${LZ4_LIB_NAME_BASE}${CMAKE_SHARED_LIBRARY_SUFFIX}")
else()
- if(MSVC AND NOT DEFINED LZ4_MSVC_STATIC_LIB_SUFFIX)
- set(LZ4_MSVC_STATIC_LIB_SUFFIX "_static")
- endif()
- set(LZ4_STATIC_LIB_SUFFIX "${LZ4_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(LZ4_LIB_NAMES
- "${CMAKE_STATIC_LIBRARY_PREFIX}${LZ4_LIB_NAME_BASE}${LZ4_STATIC_LIB_SUFFIX}")
+ "${CMAKE_STATIC_LIBRARY_PREFIX}${LZ4_LIB_NAME_BASE}${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()
if(LZ4_ROOT)
@@ -56,8 +54,8 @@ if(LZ4_ROOT)
else()
find_package(PkgConfig QUIET)
- pkg_check_modules(LZ4_PC liblz4)
- if(LZ4_PC_FOUND)
+ #pkg_check_modules(LZ4_PC liblz4)
+ if(0) # Do not use pkg_check_modules, doesn't seem to work correctly on some macOS versions (10.x in GitHub Actions)
set(LZ4_INCLUDE_DIR "${LZ4_PC_INCLUDEDIR}")
list(APPEND LZ4_PC_LIBRARY_DIRS "${LZ4_PC_LIBDIR}")
diff --git a/cpp/cmake_modules/FindSnappy.cmake b/cpp/cmake_modules/FindSnappy.cmake
index 5784cf592..817cf0c47 100644
--- a/cpp/cmake_modules/FindSnappy.cmake
+++ b/cpp/cmake_modules/FindSnappy.cmake
@@ -15,20 +15,27 @@
# specific language governing permissions and limitations
# under the License.
+# Avoid the debug build linking to the release library by mistake.
+# In theory harmless if static linking at this point, but disastrous if done for a shared library.
+if(CMAKE_BUILD_TYPE STREQUAL "DEBUG")
+ set(SNAPPY_LIB_NAME_DEBUG_SUFFIX d)
+endif()
+
+set(SNAPPY_LIB_NAME_BASE "snappy${SNAPPY_LIB_NAME_DEBUG_SUFFIX}")
+
if(ARROW_SNAPPY_USE_SHARED)
set(SNAPPY_LIB_NAMES)
if(CMAKE_IMPORT_LIBRARY_SUFFIX)
list(APPEND SNAPPY_LIB_NAMES
- "${CMAKE_IMPORT_LIBRARY_PREFIX}snappy${CMAKE_IMPORT_LIBRARY_SUFFIX}")
+ "${CMAKE_IMPORT_LIBRARY_PREFIX}${SNAPPY_LIB_NAME_BASE}${CMAKE_IMPORT_LIBRARY_SUFFIX}")
endif()
list(APPEND SNAPPY_LIB_NAMES
- "${CMAKE_SHARED_LIBRARY_PREFIX}snappy${CMAKE_SHARED_LIBRARY_SUFFIX}")
+ "${CMAKE_SHARED_LIBRARY_PREFIX}${SNAPPY_LIB_NAME_BASE}${CMAKE_SHARED_LIBRARY_SUFFIX}")
else()
- set(SNAPPY_STATIC_LIB_NAME_BASE "snappy")
if(MSVC)
- set(SNAPPY_STATIC_LIB_NAME_BASE "${SNAPPY_STATIC_LIB_NAME_BASE}${SNAPPY_MSVC_STATIC_LIB_SUFFIX}")
+ set(SNAPPY_STATIC_LIB_NAME_BASE "${SNAPPY_LIB_NAME_BASE}${SNAPPY_MSVC_STATIC_LIB_SUFFIX}")
endif()
- set(SNAPPY_LIB_NAMES "${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_STATIC_LIB_NAME_BASE}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(SNAPPY_LIB_NAMES "${CMAKE_STATIC_LIBRARY_PREFIX}${SNAPPY_LIB_NAME_BASE}${CMAKE_STATIC_LIBRARY_SUFFIX}")
endif()
if(Snappy_ROOT)
diff --git a/cpp/cmake_modules/FindThrift.cmake b/cpp/cmake_modules/FindThrift.cmake
index 273d907ed..65f477f54 100644
--- a/cpp/cmake_modules/FindThrift.cmake
+++ b/cpp/cmake_modules/FindThrift.cmake
@@ -39,6 +39,12 @@ function(EXTRACT_THRIFT_VERSION)
endif()
endfunction(EXTRACT_THRIFT_VERSION)
+# Avoid the debug build linking to the release library by mistake.
+# In theory harmless if static linking at this point, but disastrous if done for a shared library.
+if(CMAKE_BUILD_TYPE STREQUAL "DEBUG")
+ set(THRIFT_LIB_NAME_DEBUG_SUFFIX d)
+endif()
+
if(MSVC_TOOLCHAIN AND NOT DEFINED THRIFT_MSVC_LIB_SUFFIX)
if(NOT ARROW_THRIFT_USE_SHARED)
if(ARROW_USE_STATIC_CRT)
@@ -48,7 +54,7 @@ if(MSVC_TOOLCHAIN AND NOT DEFINED THRIFT_MSVC_LIB_SUFFIX)
endif()
endif()
endif()
-set(THRIFT_LIB_NAME_BASE "thrift${THRIFT_MSVC_LIB_SUFFIX}")
+set(THRIFT_LIB_NAME_BASE "thrift${THRIFT_MSVC_LIB_SUFFIX}${THRIFT_LIB_NAME_DEBUG_SUFFIX}")
if(ARROW_THRIFT_USE_SHARED)
set(THRIFT_LIB_NAMES thrift)
@@ -84,8 +90,8 @@ else()
# THRIFT-4760: The pkgconfig files are currently only installed when using autotools.
# Starting with 0.13, they are also installed for the CMake-based installations of Thrift.
find_package(PkgConfig QUIET)
- pkg_check_modules(THRIFT_PC thrift)
- if(THRIFT_PC_FOUND)
+ #pkg_check_modules(THRIFT_PC thrift)
+ if(0) # Do not use pkg_check_modules, as it finds the wrong location (an intermediate build dir).
set(THRIFT_INCLUDE_DIR "${THRIFT_PC_INCLUDEDIR}")
list(APPEND THRIFT_PC_LIBRARY_DIRS "${THRIFT_PC_LIBDIR}")
@@ -101,8 +107,7 @@ else()
set(THRIFT_VERSION ${THRIFT_PC_VERSION})
else()
find_library(THRIFT_LIB
- NAMES ${THRIFT_LIB_NAMES}
- PATH_SUFFIXES "lib/${CMAKE_LIBRARY_ARCHITECTURE}" "lib")
+ NAMES ${THRIFT_LIB_NAMES})
find_path(THRIFT_INCLUDE_DIR thrift/Thrift.h PATH_SUFFIXES "include")
find_program(THRIFT_COMPILER thrift PATH_SUFFIXES "bin")
extract_thrift_version()
diff --git a/cpp/cmake_modules/Findzstd.cmake b/cpp/cmake_modules/Findzstd.cmake
index 6659a682d..d8cc4f72d 100644
--- a/cpp/cmake_modules/Findzstd.cmake
+++ b/cpp/cmake_modules/Findzstd.cmake
@@ -34,13 +34,14 @@ if(ARROW_ZSTD_USE_SHARED)
ZSTD_LIB_NAMES
"${CMAKE_SHARED_LIBRARY_PREFIX}${ZSTD_LIB_NAME_BASE}${CMAKE_SHARED_LIBRARY_SUFFIX}")
else()
- if(MSVC AND NOT DEFINED ZSTD_MSVC_STATIC_LIB_SUFFIX)
- set(ZSTD_MSVC_STATIC_LIB_SUFFIX "_static")
+ if(MSVC AND CMAKE_BUILD_TYPE STREQUAL "DEBUG")
+ set(ZSTD_MSVC_DEBUG_LIB_SUFFIX d)
endif()
set(ZSTD_STATIC_LIB_SUFFIX
- "${ZSTD_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ "${ZSTD_MSVC_DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(ZSTD_LIB_NAMES
- "${CMAKE_STATIC_LIBRARY_PREFIX}${ZSTD_LIB_NAME_BASE}${ZSTD_STATIC_LIB_SUFFIX}")
+ "zstd${ZSTD_STATIC_LIB_SUFFIX}"
+ "libzstd${ZSTD_STATIC_LIB_SUFFIX}")
endif()
# First, find via if specified ZTD_ROOT
|