Skip to content

Commit d7600d3

Browse files
committed
Adjust CheckTypeSize usage for CMake 4.2
In CMake 4.2, CheckTypeSize provides the check_type_size(RESULT_VARIABLE) argument to customize the cache variable name.
1 parent 8e18cf1 commit d7600d3

File tree

7 files changed

+85
-47
lines changed

7 files changed

+85
-47
lines changed

cmake/cmake/ConfigureChecks.cmake

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,12 @@ set(HAVE_STRUCT_STAT_ST_RDEV ${PHP_HAVE_STRUCT_STAT_ST_RDEV})
246246

247247
cmake_push_check_state(RESET)
248248
set(CMAKE_EXTRA_INCLUDE_FILES "fcntl.h")
249-
check_type_size("struct flock" STRUCT_FLOCK) # Defines HAVE_STRUCT_FLOCK
249+
check_type_size(
250+
"struct flock"
251+
PHP_SIZEOF_STRUCT_FLOCK
252+
RESULT_VARIABLE PHP_HAVE_STRUCT_FLOCK
253+
)
254+
set(HAVE_STRUCT_FLOCK ${PHP_HAVE_STRUCT_FLOCK})
250255
cmake_pop_check_state()
251256

252257
# Check for sockaddr_storage and sockaddr.sa_len.
@@ -258,8 +263,12 @@ cmake_push_check_state(RESET)
258263
list(APPEND CMAKE_EXTRA_INCLUDE_FILES "winsock2.h")
259264
endif()
260265

261-
check_type_size("struct sockaddr_storage" PHP_STRUCT_SOCKADDR_STORAGE)
262-
set(HAVE_SOCKADDR_STORAGE ${HAVE_PHP_STRUCT_SOCKADDR_STORAGE})
266+
check_type_size(
267+
"struct sockaddr_storage"
268+
PHP_SIZEOF_STRUCT_SOCKADDR_STORAGE
269+
RESULT_VARIABLE PHP_HAVE_STRUCT_SOCKADDR_STORAGE
270+
)
271+
set(HAVE_SOCKADDR_STORAGE ${PHP_HAVE_STRUCT_SOCKADDR_STORAGE})
263272

264273
check_struct_has_member(
265274
"struct sockaddr"
@@ -274,14 +283,14 @@ cmake_pop_check_state()
274283
# Check types.
275284
################################################################################
276285

277-
check_type_size("gid_t" SIZEOF_GID_T)
278-
if(NOT HAVE_SIZEOF_GID_T)
286+
check_type_size("gid_t" PHP_SIZEOF_GID_T RESULT_VARIABLE PHP_HAVE_GID_T)
287+
if(NOT PHP_HAVE_GID_T)
279288
set(PHP_GID_T_CODE "#define gid_t int")
280289
else()
281290
set(PHP_GID_T_CODE "/* #undef gid_t */")
282291
endif()
283292

284-
check_type_size("int" SIZEOF_INT)
293+
check_type_size("int" SIZEOF_INT RESULT_VARIABLE PHP_HAVE_INT)
285294
if(SIZEOF_INT STREQUAL "")
286295
set(SIZEOF_INT_CODE "#define SIZEOF_INT 0")
287296
endif()
@@ -292,46 +301,46 @@ endif()
292301
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
293302
set(SIZEOF_INTMAX_T_CODE "#define SIZEOF_INTMAX_T 0")
294303
else()
295-
check_type_size("intmax_t" SIZEOF_INTMAX_T)
304+
check_type_size("intmax_t" SIZEOF_INTMAX_T RESULT_VARIABLE PHP_HAVE_INTMAX_T)
296305
endif()
297306

298-
check_type_size("long" SIZEOF_LONG)
299-
if(SIZEOF_LONG STREQUAL "")
307+
check_type_size("long" SIZEOF_LONG RESULT_VARIABLE PHP_HAVE_LONG)
308+
if(NOT PHP_HAVE_LONG)
300309
set(SIZEOF_LONG_CODE "#define SIZEOF_LONG 0")
301310
endif()
302311

303-
check_type_size("long long" SIZEOF_LONG_LONG)
304-
if(SIZEOF_LONG_LONG STREQUAL "")
312+
check_type_size("long long" SIZEOF_LONG_LONG RESULT_VARIABLE PHP_HAVE_LONG_LONG)
313+
if(NOT PHP_HAVE_LONG_LONG)
305314
set(SIZEOF_LONG_LONG_CODE "#define SIZEOF_LONG_LONG 0")
306315
endif()
307316

308-
check_type_size("off_t" SIZEOF_OFF_T)
309-
if(SIZEOF_OFF_T STREQUAL "")
317+
check_type_size("off_t" SIZEOF_OFF_T RESULT_VARIABLE PHP_HAVE_OFF_T)
318+
if(NOT PHP_HAVE_OFF_T)
310319
set(SIZEOF_OFF_T_CODE "#define SIZEOF_OFF_T 0")
311320
endif()
312321

313322
# The ptrdiff_t is always available by C89 standard and its size varies between
314323
# 32-bit and 64-bit target platforms. Checking whether the ptrdiff_t exists is
315324
# redundant and is left here as PHP still checks it conditionally in the intl
316325
# extension and main/s{n,p}printf.{c,h}.
317-
check_type_size("ptrdiff_t" SIZEOF_PTRDIFF_T)
326+
check_type_size("ptrdiff_t" SIZEOF_PTRDIFF_T RESULT_VARIABLE PHP_HAVE_PTRDIFF_T)
318327

319-
check_type_size("size_t" SIZEOF_SIZE_T)
320-
if(SIZEOF_SIZE_T STREQUAL "")
328+
check_type_size("size_t" SIZEOF_SIZE_T RESULT_VARIABLE PHP_HAVE_SIZE_T)
329+
if(NOT PHP_HAVE_SIZE_T)
321330
set(SIZEOF_SIZE_T_CODE "#define SIZEOF_SIZE_T 0")
322331
endif()
323332

324333
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
325334
set(SIZEOF_SSIZE_T_CODE "#define SIZEOF_SSIZE_T 0")
326335
else()
327-
check_type_size("ssize_t" SIZEOF_SSIZE_T)
328-
if(SIZEOF_SSIZE_T STREQUAL "")
336+
check_type_size("ssize_t" SIZEOF_SSIZE_T RESULT_VARIABLE PHP_HAVE_SSIZE_T)
337+
if(NOT PHP_HAVE_SSIZE_T)
329338
set(SIZEOF_SSIZE_T_CODE "#define SIZEOF_SSIZE_T 0")
330339
endif()
331340
endif()
332341

333-
check_type_size("uid_t" SIZEOF_UID_T)
334-
if(NOT HAVE_SIZEOF_UID_T)
342+
check_type_size("uid_t" PHP_SIZEOF_UID_T RESULT_VARIABLE PHP_HAVE_UID_T)
343+
if(NOT PHP_HAVE_UID_T)
335344
set(PHP_UID_T_CODE "#define uid_t int")
336345
else()
337346
set(PHP_UID_T_CODE "/* #undef uid_t */")
@@ -345,7 +354,12 @@ cmake_push_check_state(RESET)
345354
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
346355
list(APPEND CMAKE_EXTRA_INCLUDE_FILES ws2tcpip.h)
347356
endif()
348-
check_type_size("socklen_t" SOCKLEN_T) # Defines HAVE_SOCKLEN_T
357+
check_type_size(
358+
"socklen_t"
359+
PHP_SIZEOF_SOCKLEN_T
360+
RESULT_VARIABLE PHP_HAVE_SOCKLEN_T
361+
)
362+
set(HAVE_SOCKLEN_T ${PHP_HAVE_SOCKLEN_T})
349363
cmake_pop_check_state()
350364

351365
################################################################################

cmake/cmake/checks/CheckFopencookie.cmake

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,14 @@ endif()
3838
cmake_push_check_state(RESET)
3939
set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
4040
set(CMAKE_EXTRA_INCLUDE_FILES "stdio.h")
41-
check_type_size("cookie_io_functions_t" PHP_COOKIE_IO_FUNCTIONS_T)
41+
check_type_size(
42+
"cookie_io_functions_t"
43+
PHP_SIZEOF_COOKIE_IO_FUNCTIONS_T
44+
RESULT_VARIABLE PHP_HAVE_COOKIE_IO_FUNCTIONS_T
45+
)
4246
cmake_pop_check_state()
4347

44-
if(NOT HAVE_PHP_COOKIE_IO_FUNCTIONS_T)
48+
if(NOT PHP_HAVE_COOKIE_IO_FUNCTIONS_T)
4549
return()
4650
endif()
4751

cmake/cmake/platforms/Windows.cmake

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
5454
# known on Windows targets.
5555
##############################################################################
5656

57-
set(HAVE_PHP_EXT_SOCKETS_STRUCT_CMSGCRED FALSE)
58-
set(HAVE_PHP_EXT_SOCKETS_STRUCT_UCRED FALSE)
59-
set(HAVE_PHP_STRUCT_SOCKADDR_STORAGE FALSE)
60-
set(HAVE_SIZEOF_GID_T FALSE)
61-
set(HAVE_SIZEOF_SSIZE_T FALSE)
62-
set(HAVE_SIZEOF_UID_T FALSE)
63-
set(HAVE_SOCKLEN_T TRUE)
6457
set(HAVE_STDDEF_H TRUE) # Defined by check_type_size().
6558
set(HAVE_STDINT_H TRUE) # Defined by check_type_size().
66-
set(HAVE_STRUCT_FLOCK FALSE)
6759
set(HAVE_SYS_TYPES_H TRUE) # Defined by check_type_size().
6860
set(PHP_EBCDIC FALSE)
6961
set(PHP_EXT_FILEINFO_HAVE_STRCASESTR FALSE)
@@ -81,6 +73,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
8173
set(PHP_EXT_SOCKETS_HAVE_LINUX_FILTER_H FALSE)
8274
set(PHP_EXT_SOCKETS_HAVE_SA_SS_FAMILY FALSE)
8375
set(PHP_EXT_SOCKETS_HAVE_SOCKATMARK FALSE)
76+
set(PHP_EXT_SOCKETS_HAVE_STRUCT_CMSGCRED FALSE)
77+
set(PHP_EXT_SOCKETS_HAVE_STRUCT_UCRED FALSE)
8478
set(PHP_EXT_SOCKETS_HAVE_SYS_SOCKIO_H FALSE)
8579
set(PHP_HAS_FFP_CONTRACT_OFF_C FALSE)
8680
set(PHP_HAS_FNO_COMMON_C FALSE)
@@ -151,6 +145,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
151145
set(PHP_HAVE_GETSERVBYPORT TRUE)
152146
set(PHP_HAVE_GETSERVBYPORT_LIBRARY ws2_32)
153147
set(PHP_HAVE_GETWD FALSE)
148+
set(PHP_HAVE_GID_T FALSE)
154149
set(PHP_HAVE_GRP_H FALSE)
155150
set(PHP_HAVE_IEEEFP_H FALSE)
156151
set(PHP_HAVE_IFADDRS_H FALSE)
@@ -195,13 +190,17 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
195190
set(PHP_HAVE_SIGPROCMASK FALSE)
196191
set(PHP_HAVE_SOCKET TRUE)
197192
set(PHP_HAVE_SOCKET_LIBRARY ws2_32)
193+
set(PHP_HAVE_SOCKLEN_T TRUE)
194+
set(PHP_HAVE_SSIZE_T FALSE)
198195
set(PHP_HAVE_STATFS FALSE)
199196
set(PHP_HAVE_STATVFS FALSE)
200197
set(PHP_HAVE_STD_SYSLOG FALSE)
201198
set(PHP_HAVE_STRINGS_H FALSE)
202199
set(PHP_HAVE_STRLCAT FALSE)
203200
set(PHP_HAVE_STRLCPY FALSE)
201+
set(PHP_HAVE_STRUCT_FLOCK FALSE)
204202
set(PHP_HAVE_STRUCT_SOCKADDR_SA_LEN FALSE)
203+
set(PHP_HAVE_STRUCT_SOCKADDR_STORAGE FALSE)
205204
set(PHP_HAVE_STRUCT_STAT_ST_BLKSIZE FALSE)
206205
set(PHP_HAVE_STRUCT_STAT_ST_BLOCKS FALSE)
207206
set(PHP_HAVE_STRUCT_STAT_ST_RDEV TRUE)
@@ -233,6 +232,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
233232
set(PHP_HAVE_SYSEXITS_H FALSE)
234233
set(PHP_HAVE_TMMINTRIN_H TRUE)
235234
set(PHP_HAVE_TZSET TRUE)
235+
set(PHP_HAVE_UID_T FALSE)
236236
set(PHP_HAVE_UNISTD_H FALSE)
237237
set(PHP_HAVE_UNIX_H FALSE)
238238
set(PHP_HAVE_UNSETENV FALSE)
@@ -259,20 +259,20 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
259259
set(PHP_ZEND_HAVE_SIGSETJMP FALSE) # Windows has setjmp() in <setjmp.h>.
260260
set(PHP_ZEND_HAVE_STRNLEN TRUE)
261261

262-
set(HAVE_SIZEOF_INT TRUE)
262+
set(PHP_HAVE_INT TRUE)
263263
set(SIZEOF_INT 4)
264264

265-
set(HAVE_SIZEOF_LONG TRUE)
265+
set(PHP_HAVE_LONG TRUE)
266266
set(SIZEOF_LONG 4)
267267

268-
set(HAVE_SIZEOF_LONG_LONG TRUE)
268+
set(PHP_HAVE_LONG_LONG TRUE)
269269
set(SIZEOF_LONG_LONG 8)
270270

271-
set(HAVE_SIZEOF_OFF_T TRUE)
271+
set(PHP_HAVE_OFF_T TRUE)
272272
set(SIZEOF_OFF_T 4)
273273

274-
set(HAVE_SIZEOF_SIZE_T TRUE)
275-
set(HAVE_SIZEOF_PTRDIFF_T TRUE)
274+
set(PHP_HAVE_SIZE_T TRUE)
275+
set(PHP_HAVE_PTRDIFF_T TRUE)
276276
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
277277
set(SIZEOF_PTRDIFF_T 4)
278278
set(SIZEOF_SIZE_T 4)

cmake/ext/ffi/CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,12 @@ set_package_properties(
8080

8181
target_link_libraries(php_ext_ffi PRIVATE FFI::FFI)
8282

83-
check_type_size("long double" PHP_EXT_FFI_LONG_DOUBLE)
84-
set(HAVE_LONG_DOUBLE ${HAVE_PHP_EXT_FFI_LONG_DOUBLE})
83+
check_type_size(
84+
"long double"
85+
PHP_EXT_FFI_SIZEOF_LONG_DOUBLE
86+
RESULT_VARIABLE PHP_EXT_FFI_HAVE_LONG_DOUBLE
87+
)
88+
set(HAVE_LONG_DOUBLE ${PHP_EXT_FFI_HAVE_LONG_DOUBLE})
8589

8690
if(TARGET FFI::FFI)
8791
cmake_push_check_state(RESET)

cmake/ext/pcntl/CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,14 @@ set(HAVE_WAIT4 ${PHP_EXT_PCNTL_HAVE_WAIT4})
130130

131131
cmake_push_check_state(RESET)
132132
set(CMAKE_EXTRA_INCLUDE_FILES "signal.h")
133-
check_type_size(siginfo_t PHP_EXT_PCNTL_STRUCT_SIGINFO_T)
133+
check_type_size(
134+
siginfo_t
135+
PHP_EXT_PCNTL_SIZEOF_STRUCT_SIGINFO_T
136+
RESULT_VARIABLE PHP_EXT_PCNTL_HAVE_STRUCT_SIGINFO_T
137+
)
134138
cmake_pop_check_state()
135139

136-
if(HAVE_PHP_EXT_PCNTL_STRUCT_SIGINFO_T)
140+
if(PHP_EXT_PCNTL_HAVE_STRUCT_SIGINFO_T)
137141
target_compile_definitions(php_ext_pcntl PRIVATE HAVE_STRUCT_SIGINFO_T)
138142
endif()
139143

cmake/ext/sockets/CMakeLists.txt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,16 +146,24 @@ set(HAVE_SA_SS_FAMILY ${PHP_EXT_SOCKETS_HAVE_SA_SS_FAMILY})
146146
cmake_push_check_state(RESET)
147147
set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
148148
set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h")
149-
check_type_size("struct ucred" PHP_EXT_SOCKETS_STRUCT_UCRED)
149+
check_type_size(
150+
"struct ucred"
151+
PHP_EXT_SOCKETS_SIZEOF_STRUCT_UCRED
152+
RESULT_VARIABLE PHP_EXT_SOCKETS_HAVE_STRUCT_UCRED
153+
)
150154
cmake_pop_check_state()
151-
set(ANC_CREDS_UCRED ${HAVE_PHP_EXT_SOCKETS_STRUCT_UCRED})
155+
set(ANC_CREDS_UCRED ${PHP_EXT_SOCKETS_HAVE_STRUCT_UCRED})
152156

153157
# Check for struct cmsgcred.
154158
cmake_push_check_state(RESET)
155159
set(CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h")
156-
check_type_size("struct cmsgcred" PHP_EXT_SOCKETS_STRUCT_CMSGCRED)
160+
check_type_size(
161+
"struct cmsgcred"
162+
PHP_EXT_SOCKETS_SIZEOF_STRUCT_CMSGCRED
163+
RESULT_VARIABLE PHP_EXT_SOCKETS_HAVE_STRUCT_CMSGCRED
164+
)
157165
cmake_pop_check_state()
158-
set(ANC_CREDS_CMSGCRED ${HAVE_PHP_EXT_SOCKETS_STRUCT_CMSGCRED})
166+
set(ANC_CREDS_CMSGCRED ${PHP_EXT_SOCKETS_HAVE_STRUCT_CMSGCRED})
159167

160168
set(HAVE_SOCKETS TRUE)
161169

cmake/ext/sysvsem/CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,12 @@ target_sources(
7474

7575
cmake_push_check_state(RESET)
7676
set(CMAKE_EXTRA_INCLUDE_FILES "sys/types.h;sys/ipc.h;sys/sem.h")
77-
check_type_size("union semun" PHP_EXT_SYSVSEM_UNION_SEMUN)
78-
set(HAVE_SEMUN ${HAVE_PHP_EXT_SYSVSEM_UNION_SEMUN})
77+
check_type_size(
78+
"union semun"
79+
PHP_EXT_SYSVSEM_SIZEOF_UNION_SEMUN
80+
RESULT_VARIABLE PHP_EXT_SYSVSEM_HAVE_UNION_SEMUN
81+
)
82+
set(HAVE_SEMUN ${PHP_EXT_SYSVSEM_HAVE_UNION_SEMUN})
7983
cmake_pop_check_state()
8084

8185
set(HAVE_SYSVSEM TRUE)

0 commit comments

Comments
 (0)