|
1 | 1 | #[=============================================================================[ |
2 | 2 | Set PHP version variables. |
3 | 3 |
|
4 | | -PHP version variables are read from the configure.ac file, and PHP_VERSION_API |
5 | | -number is retrieved from main/php.h header file. |
| 4 | +PHP version is read from the php-src configure.ac file, and PHP_VERSION_API |
| 5 | +number is retrieved from the php-src main/php.h header file. |
6 | 6 |
|
7 | 7 | Variables: |
8 | 8 |
|
9 | | - PHP_VERSION |
10 | | - PHP_VERSION_MAJOR |
11 | | - PHP_VERSION_MINOR |
12 | | - PHP_VERSION_PATCH |
13 | | - PHP_VERSION_LABEL |
14 | | - PHP_API_VERSION |
15 | | -
|
| 9 | +* `PHP_API_VERSION` |
| 10 | +* `PHP_VERSION` |
| 11 | +* `PHP_VERSION_LABEL` |
16 | 12 | #]=============================================================================] |
17 | 13 |
|
18 | 14 | include_guard(GLOBAL) |
19 | 15 |
|
20 | | -# Set the PHP_VERSION_* variables from configure.ac. |
21 | | -file(READ ${CMAKE_CURRENT_LIST_DIR}/../configure.ac _) |
22 | | -string(REGEX MATCH "AC_INIT\\(\\[PHP\\],\\[([0-9]+\.[0-9]+\.[0-9]+)([^\]]*)" _ "${_}") |
| 16 | +block(PROPAGATE PHP_VERSION) |
| 17 | + # Set the PHP_VERSION_* variables from configure.ac. |
| 18 | + set(regex "^AC_INIT\\(\\[PHP\\],\\[([0-9]+\.[0-9]+\.[0-9]+)([^\]]*)") |
| 19 | + file(STRINGS ${CMAKE_CURRENT_LIST_DIR}/../configure.ac _ REGEX "${regex}") |
| 20 | + |
| 21 | + cmake_policy(GET CMP0159 policy) |
| 22 | + if(CMAKE_VERSION VERSION_LESS 3.29 OR NOT policy STREQUAL NEW) |
| 23 | + string(REGEX MATCH "${regex}" _ "${_}") |
| 24 | + endif() |
23 | 25 |
|
24 | | -set(PHP_VERSION "${CMAKE_MATCH_1}") |
| 26 | + set(PHP_VERSION "${CMAKE_MATCH_1}") |
25 | 27 |
|
26 | | -set( |
27 | | - PHP_VERSION_LABEL "${CMAKE_MATCH_2}" |
28 | | - CACHE STRING "Extra PHP version label suffix, e.g. '-dev', 'rc1', '-acme'" |
29 | | -) |
30 | | -mark_as_advanced(PHP_VERSION_LABEL) |
| 28 | + set( |
| 29 | + PHP_VERSION_LABEL "${CMAKE_MATCH_2}" |
| 30 | + CACHE STRING "Extra PHP version label suffix, e.g. '-dev', 'rc1', '-acme'" |
| 31 | + ) |
| 32 | + mark_as_advanced(PHP_VERSION_LABEL) |
| 33 | +endblock() |
31 | 34 |
|
32 | 35 | # This is automatically executed with the project(PHP...) invocation. |
33 | | -macro(_php_post_project) |
34 | | - if(NOT DEFINED PHP_VERSION_ID) |
35 | | - # Append extra version label suffix to PHP_VERSION. |
36 | | - string(APPEND PHP_VERSION "${PHP_VERSION_LABEL}") |
37 | | - message(STATUS "PHP version: ${PHP_VERSION}") |
38 | | - |
39 | | - # Set PHP version ID. |
40 | | - math( |
41 | | - EXPR |
42 | | - PHP_VERSION_ID |
43 | | - "${PHP_VERSION_MAJOR} * 10000 \ |
44 | | - + ${PHP_VERSION_MINOR} * 100 \ |
45 | | - + ${PHP_VERSION_PATCH}" |
46 | | - ) |
47 | | - message(STATUS "PHP version ID: ${PHP_VERSION_ID}") |
48 | | - |
49 | | - # Read PHP API version. |
50 | | - file(READ main/php.h _) |
51 | | - string(REGEX MATCH "#[ \t]*define[ \t]+PHP_API_VERSION[ \t]+([0-9]+)" _ "${_}") |
52 | | - set(PHP_API_VERSION "${CMAKE_MATCH_1}") |
53 | | - message(STATUS "PHP API version: ${PHP_API_VERSION}") |
| 36 | +function(_php_post_project) |
| 37 | + if(DEFINED PHP_VERSION_ID) |
| 38 | + return() |
| 39 | + endif() |
| 40 | + |
| 41 | + # Append extra version label suffix to PHP_VERSION. |
| 42 | + string(APPEND PHP_VERSION "${PHP_VERSION_LABEL}") |
| 43 | + message(STATUS "PHP version: ${PHP_VERSION}") |
| 44 | + |
| 45 | + # Set PHP version ID. |
| 46 | + math( |
| 47 | + EXPR |
| 48 | + PHP_VERSION_ID |
| 49 | + "${PHP_VERSION_MAJOR} * 10000 \ |
| 50 | + + ${PHP_VERSION_MINOR} * 100 \ |
| 51 | + + ${PHP_VERSION_PATCH}" |
| 52 | + ) |
| 53 | + message(STATUS "PHP version ID: ${PHP_VERSION_ID}") |
| 54 | + |
| 55 | + # Read PHP API version. |
| 56 | + set(regex "^[ \t]*#[ \t]*define[ \t]+PHP_API_VERSION[ \t]+([0-9]+)") |
| 57 | + file(STRINGS main/php.h _ REGEX "^${regex}") |
| 58 | + |
| 59 | + cmake_policy(GET CMP0159 policy) |
| 60 | + if(CMAKE_VERSION VERSION_LESS 3.29 OR NOT policy STREQUAL NEW) |
| 61 | + string(REGEX MATCH "${regex}" _ "${_}") |
54 | 62 | endif() |
55 | | -endmacro() |
| 63 | + |
| 64 | + set(PHP_API_VERSION "${CMAKE_MATCH_1}") |
| 65 | + message(STATUS "PHP API version: ${PHP_API_VERSION}") |
| 66 | + |
| 67 | + return(PROPAGATE PHP_VERSION PHP_VERSION_ID PHP_API_VERSION) |
| 68 | +endfunction() |
56 | 69 | variable_watch(PHP_HOMEPAGE_URL _php_post_project) |
0 commit comments