11# Generate lexer and parser files.
22
3+ include (FeatureSummary)
4+ include (PHP/Package/BISON)
5+ include (PHP/Package/RE2C)
6+
37if (
4- EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_ini_parser.c
5- AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_ini_parser.h
6- AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_language_parser.c
7- AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_language_parser.h
8+ NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_ini_parser.c
9+ OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_ini_parser.h
10+ OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_language_parser.c
11+ OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_language_parser.h
812)
9- set (PHP_BISON_OPTIONAL TRUE )
13+ set_package_properties(BISON PROPERTIES TYPE REQUIRED )
1014endif ()
11- include (PHP/BISON)
1215
1316if (BISON_FOUND)
1417 if (CMAKE_SCRIPT_MODE_FILE )
@@ -22,7 +25,6 @@ if(BISON_FOUND)
2225 zend_ini_parser.y
2326 ${CMAKE_CURRENT_SOURCE_DIR} /zend_ini_parser.c
2427 HEADER
25- #HEADER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/zend_ini_parser.h
2628 ${verbose}
2729 )
2830
@@ -37,8 +39,8 @@ if(BISON_FOUND)
3739 zend_language_parser.y
3840 ${CMAKE_CURRENT_SOURCE_DIR} /zend_language_parser.c
3941 HEADER
40- #HEADER_FILE ${CMAKE_CURRENT_SOURCE_DIR}/zend_language_parser.h
4142 ${verbose}
43+ CODEGEN
4244 )
4345
4446 # Tweak zendparse to be exported through ZEND_API. This has to be revisited
@@ -109,14 +111,13 @@ if(BISON_FOUND)
109111endif ()
110112
111113if (
112- EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_ini_scanner.c
113- AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_ini_scanner_defs.h
114- AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_language_scanner.c
115- AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_language_scanner_defs.h
114+ NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_ini_scanner.c
115+ OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_ini_scanner_defs.h
116+ OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_language_scanner.c
117+ OR NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR} /zend_language_scanner_defs.h
116118)
117- set (PHP_RE2C_OPTIONAL TRUE )
119+ set_package_properties(RE2C PROPERTIES TYPE REQUIRED )
118120endif ()
119- include (PHP/RE2C)
120121
121122if (RE2C_FOUND)
122123 re2c(
0 commit comments