[mapguide-commits] r10146 - in branches/4.0/MgDev: . cmake/configs
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon May 12 09:51:41 PDT 2025
Author: jng
Date: 2025-05-12 09:51:40 -0700 (Mon, 12 May 2025)
New Revision: 10146
Modified:
branches/4.0/MgDev/CMakeLists.txt
branches/4.0/MgDev/cmake/configs/php.ini.in
branches/4.0/MgDev/cmake_build.sh
branches/4.0/MgDev/cmake_linuxapt.sh
Log:
Add option to allow building the bundled PHP with shared mbstring extension. This is needed to successfully compile PHP 8.3 on rhel8+ based distros with the standard compiler set
Modified: branches/4.0/MgDev/CMakeLists.txt
===================================================================
--- branches/4.0/MgDev/CMakeLists.txt 2025-05-12 16:40:27 UTC (rev 10145)
+++ branches/4.0/MgDev/CMakeLists.txt 2025-05-12 16:51:40 UTC (rev 10146)
@@ -203,6 +203,12 @@
# Set common commands.
set(MOVE_COMMAND "mv")
+if (WITH_PHP_MBSTRING_SHARED)
+ set (PHP_EXT_MB_STRING_DEFN "extension=mbstring")
+else (WITH_PHP_MBSTRING_SHARED)
+ set (PHP_EXT_MB_STRING_DEFN ";mbstring extension built statically")
+endif (WITH_PHP_MBSTRING_SHARED)
+
if (WITH_JAVA)
find_package(Java REQUIRED)
find_package(JNI REQUIRED)
Modified: branches/4.0/MgDev/cmake/configs/php.ini.in
===================================================================
--- branches/4.0/MgDev/cmake/configs/php.ini.in 2025-05-12 16:40:27 UTC (rev 10145)
+++ branches/4.0/MgDev/cmake/configs/php.ini.in 2025-05-12 16:51:40 UTC (rev 10146)
@@ -924,6 +924,7 @@
;extension=imap
;extension=ldap
;extension=mbstring
+ at PHP_EXT_MB_STRING_DEFN@
;extension=exif ; Must be after mbstring as it depends on it
;extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
Modified: branches/4.0/MgDev/cmake_build.sh
===================================================================
--- branches/4.0/MgDev/cmake_build.sh 2025-05-12 16:40:27 UTC (rev 10145)
+++ branches/4.0/MgDev/cmake_build.sh 2025-05-12 16:51:40 UTC (rev 10146)
@@ -123,10 +123,10 @@
echo "Setting up CMake in: $CMAKE_BUILD_DIR"
cd "$CMAKE_BUILD_DIR" || exit
if test $USE_NINJA -eq 1; then
- cmake -G Ninja "$SOURCE_DIR" -DMG_VERSION_MAJOR=$MG_VERSION_MAJOR -DMG_VERSION_MINOR=$MG_VERSION_MINOR -DMG_VERSION_RELEASE=$MG_VERSION_RELEASE -DMG_VERSION_REV=$MG_REV -DMG_INSTALL_PREFIX=$MG_INST_PREFIX -DMG_CPU=$BUILD_CPU -DWITH_JAVA=TRUE -DUSE_LD_GOLD=$USE_LD_GOLD -DSANITIZE_ADDRESS=$USE_ASAN -DPHP_VER=$PHP_VER -DHTTPD_VER=$HTTPD_VER -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DMG_OEM_WORK_DIR=$OEM_WORK_DIR -DMG_LINUXAPT_WORK_DIR=$LINUXAPT_WORK_DIR -DINTERNAL_XERCES=$INTERNAL_XERCES -DINTERNAL_ACE=$INTERNAL_ACE -DINTERNAL_ZLIB=$INTERNAL_ZLIB -DINTERNAL_JPEG=$INTERNAL_JPEG -DINTERNAL_PNG=$INTERNAL_PNG -DINTERNAL_FREETYPE=$INTERNAL_FREETYPE -DINTERNAL_GD=$INTERNAL_GD -DINTERNAL_JSON=$INTERNAL_JSON -DINTERNAL_GEOS=$INTERNAL_GEOS -DCOMMON_SUBSET_ONLY=$COMMON_SUBSET_ONLY -DWITH_PORTABLE=$ENABLE_MG_PORTABLE
+ cmake -G Ninja "$SOURCE_DIR" -DMG_VERSION_MAJOR=$MG_VERSION_MAJOR -DMG_VERSION_MINOR=$MG_VERSION_MINOR -DMG_VERSION_RELEASE=$MG_VERSION_RELEASE -DMG_VERSION_REV=$MG_REV -DMG_INSTALL_PREFIX=$MG_INST_PREFIX -DMG_CPU=$BUILD_CPU -DWITH_JAVA=TRUE -DUSE_LD_GOLD=$USE_LD_GOLD -DSANITIZE_ADDRESS=$USE_ASAN -DPHP_VER=$PHP_VER -DHTTPD_VER=$HTTPD_VER -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DMG_OEM_WORK_DIR=$OEM_WORK_DIR -DMG_LINUXAPT_WORK_DIR=$LINUXAPT_WORK_DIR -DINTERNAL_XERCES=$INTERNAL_XERCES -DINTERNAL_ACE=$INTERNAL_ACE -DINTERNAL_ZLIB=$INTERNAL_ZLIB -DINTERNAL_JPEG=$INTERNAL_JPEG -DINTERNAL_PNG=$INTERNAL_PNG -DINTERNAL_FREETYPE=$INTERNAL_FREETYPE -DINTERNAL_GD=$INTERNAL_GD -DINTERNAL_JSON=$INTERNAL_JSON -DINTERNAL_GEOS=$INTERNAL_GEOS -DCOMMON_SUBSET_ONLY=$COMMON_SUBSET_ONLY -DWITH_PORTABLE=$ENABLE_MG_PORTABLE -DWITH_PHP_MBSTRING_SHARED=$WITH_PHP_MBSTRING_SHARED
check_build
else
- cmake "$SOURCE_DIR" -DMG_VERSION_MAJOR=$MG_VERSION_MAJOR -DMG_VERSION_MINOR=$MG_VERSION_MINOR -DMG_VERSION_RELEASE=$MG_VERSION_RELEASE -DMG_VERSION_REV=$MG_REV -DMG_INSTALL_PREFIX=$MG_INST_PREFIX -DMG_CPU=$BUILD_CPU -DWITH_JAVA=TRUE -DUSE_LD_GOLD=$USE_LD_GOLD -DSANITIZE_ADDRESS=$USE_ASAN -DPHP_VER=$PHP_VER -DHTTPD_VER=$HTTPD_VER -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DMG_OEM_WORK_DIR=$OEM_WORK_DIR -DMG_LINUXAPT_WORK_DIR=$LINUXAPT_WORK_DIR -DINTERNAL_XERCES=$INTERNAL_XERCES -DINTERNAL_ACE=$INTERNAL_ACE -DINTERNAL_ZLIB=$INTERNAL_ZLIB -DINTERNAL_JPEG=$INTERNAL_JPEG -DINTERNAL_PNG=$INTERNAL_PNG -DINTERNAL_FREETYPE=$INTERNAL_FREETYPE -DINTERNAL_GD=$INTERNAL_GD -DINTERNAL_JSON=$INTERNAL_JSON -DINTERNAL_GEOS=$INTERNAL_GEOS -DCOMMON_SUBSET_ONLY=$COMMON_SUBSET_ONLY -DWITH_PORTABLE=$ENABLE_MG_PORTABLE
+ cmake "$SOURCE_DIR" -DMG_VERSION_MAJOR=$MG_VERSION_MAJOR -DMG_VERSION_MINOR=$MG_VERSION_MINOR -DMG_VERSION_RELEASE=$MG_VERSION_RELEASE -DMG_VERSION_REV=$MG_REV -DMG_INSTALL_PREFIX=$MG_INST_PREFIX -DMG_CPU=$BUILD_CPU -DWITH_JAVA=TRUE -DUSE_LD_GOLD=$USE_LD_GOLD -DSANITIZE_ADDRESS=$USE_ASAN -DPHP_VER=$PHP_VER -DHTTPD_VER=$HTTPD_VER -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DMG_OEM_WORK_DIR=$OEM_WORK_DIR -DMG_LINUXAPT_WORK_DIR=$LINUXAPT_WORK_DIR -DINTERNAL_XERCES=$INTERNAL_XERCES -DINTERNAL_ACE=$INTERNAL_ACE -DINTERNAL_ZLIB=$INTERNAL_ZLIB -DINTERNAL_JPEG=$INTERNAL_JPEG -DINTERNAL_PNG=$INTERNAL_PNG -DINTERNAL_FREETYPE=$INTERNAL_FREETYPE -DINTERNAL_GD=$INTERNAL_GD -DINTERNAL_JSON=$INTERNAL_JSON -DINTERNAL_GEOS=$INTERNAL_GEOS -DCOMMON_SUBSET_ONLY=$COMMON_SUBSET_ONLY -DWITH_PORTABLE=$ENABLE_MG_PORTABLE -DWITH_PHP_MBSTRING_SHARED=$WITH_PHP_MBSTRING_SHARED
check_build
fi
cmake --build .
Modified: branches/4.0/MgDev/cmake_linuxapt.sh
===================================================================
--- branches/4.0/MgDev/cmake_linuxapt.sh 2025-05-12 16:40:27 UTC (rev 10145)
+++ branches/4.0/MgDev/cmake_linuxapt.sh 2025-05-12 16:51:40 UTC (rev 10146)
@@ -25,6 +25,7 @@
LINUXAPT_WORK_DIR=~/mapguide_linuxapt_build
USE_CCACHE=0
USE_STATIC_OPENSSL=0
+USE_PHP_SHARED_MBSTRING=0
while [ $# -gt 0 ]; do # Until you run out of parameters...
case "$1" in
--prefix)
@@ -42,6 +43,9 @@
--with-static-openssl)
USE_STATIC_OPENSSL=1
;;
+ --with-php-shared-mbstring)
+ USE_PHP_SHARED_MBSTRING=1
+ ;;
# "infecting" our ccache with root-elevated cached object files is probably a bad look
# especially if we need to non-elevated ccache builds further down the road
#--with-ccache)
@@ -53,6 +57,8 @@
echo " --prefix [install prefix, default: /usr/local/mapguideopensource]"
echo " --oem-working-dir [working directory, default: ~/mapguide_oem_build]"
echo " --working-dir [working directory, default: ~/mapguide_linuxapt_build]"
+ echo " --with-static-openssl [use static openssl]"
+ echo " --with-php-shared-mbstring [build PHP mbstring extension as a shared module]"
echo " --help [Display usage]"
#echo " --with-ccache [Use ccache]"
exit
@@ -100,6 +106,7 @@
echo "Oem Working Directory is: $OEM_WORK_DIR"
echo "LinuxApt Working Directory is: $LINUXAPT_WORK_DIR"
echo "Using ccache: $USE_CCACHE"
+echo "Building PHP mbstring extension as shared: $USE_PHP_SHARED_MBSTRING"
echo "PHP_JPEG_DIR = $PHP_JPEG_DIR"
echo "PHP_PNG_DIR = $PHP_PNG_DIR"
@@ -214,10 +221,13 @@
check_build
echo "Configuring PHP"
cd "${PHP_WORKDIR}" || exit
- # TODO: Patch out the use of meta_ccld so ccache can work: https://bugs.php.net/bug.php?id=75940
- # if/when we finally move to PHP 7, this patch is already applied
- ./configure --prefix="${MG_INSTALL_WEB_PREFIX}/php" --with-apxs2="${MG_INSTALL_WEB_PREFIX}/apache2/bin/apxs" --with-openssl --enable-mbstring --enable-gd --with-jpeg --with-libxml 2>&1 | tee "$LINUXAPT_WORK_DIR/configure_php.log"
- check_build
+ if test $USE_PHP_SHARED_MBSTRING -eq 1; then
+ ./configure --prefix="${MG_INSTALL_WEB_PREFIX}/php" --with-apxs2="${MG_INSTALL_WEB_PREFIX}/apache2/bin/apxs" --with-openssl --enable-mbstring=shared --enable-gd --with-jpeg --with-libxml 2>&1 | tee "$LINUXAPT_WORK_DIR/configure_php.log"
+ check_build
+ else
+ ./configure --prefix="${MG_INSTALL_WEB_PREFIX}/php" --with-apxs2="${MG_INSTALL_WEB_PREFIX}/apache2/bin/apxs" --with-openssl --enable-mbstring --enable-gd --with-jpeg --with-libxml 2>&1 | tee "$LINUXAPT_WORK_DIR/configure_php.log"
+ check_build
+ fi
echo "Building PHP. Please wait"
make 2>&1 | tee "$LINUXAPT_WORK_DIR/make_php.log"
check_build
@@ -280,6 +290,7 @@
echo "export TC_VER=$TC_VER"
echo "export HTTPD_PORT=$HTTPD_PORT"
echo "export TOMCAT_PORT=$TOMCAT_PORT"
+ echo "export WITH_PHP_MBSTRING_SHARED=$USE_PHP_SHARED_MBSTRING"
} >> "$OEM_WORK_DIR/env_vars.sh"
cp -f "$OEM_WORK_DIR/env_vars.sh" "$OEM_WORK_DIR/env_vars.stage2.sh"
More information about the mapguide-commits
mailing list