[mapguide-commits] r9421 - in trunk/MgDev: . Oem cmake cmake/tools
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Mon Dec 10 06:54:00 PST 2018
Author: jng
Date: 2018-12-10 06:54:00 -0800 (Mon, 10 Dec 2018)
New Revision: 9421
Added:
trunk/MgDev/cmake/tools/
trunk/MgDev/cmake/tools/getdistro.sh
Modified:
trunk/MgDev/CMakeLists.txt
trunk/MgDev/Oem/CMakeLists.txt
trunk/MgDev/cmake_build.sh
Log:
#2786: Fix up CMake build to better support packaging via CPack
Modified: trunk/MgDev/CMakeLists.txt
===================================================================
--- trunk/MgDev/CMakeLists.txt 2018-12-08 07:45:34 UTC (rev 9420)
+++ trunk/MgDev/CMakeLists.txt 2018-12-10 14:54:00 UTC (rev 9421)
@@ -41,9 +41,6 @@
message (STATUS "MG_CPU is ${MG_CPU}")
endif ((NOT MG_CPU EQUAL 32) AND (NOT MG_CPU EQUAL 64))
-# Make CPack available to easy generate binary packages
-include(CPack)
-
include(CheckFunctionExists)
include(CheckIncludeFile)
include(CheckCXXSourceCompiles)
@@ -59,6 +56,47 @@
set(MG_VERSION "${MG_VERSION_MAJOR}.${MG_VERSION_MINOR}.${MG_VERSION_RELEASE}")
set(MG_VERSION_FULL "${MG_VERSION}.${MG_VERSION_REV}")
+# Set CPack vars
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MapGuide Open Source")
+set(CPACK_PACKAGE_VENDOR "OSGeo")
+set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/CMake_README.txt")
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
+set(CPACK_PACKAGE_VERSION_MAJOR "${MG_VERSION_MAJOR}")
+set(CPACK_PACKAGE_VERSION_MINOR "${MG_VERSION_MINOR}")
+set(CPACK_PACKAGE_VERSION_PATCH "${MG_VERSION_RELEASE}")
+set(CPACK_PACKAGE_VERSION "${MG_VERSION_FULL}")
+set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0)
+
+# Collect distro name for so we know how to name these packages
+# NOTE: This uses lsb_release to detect the name, so this tool must already be installed first
+execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cmake/tools/getdistro.sh OUTPUT_VARIABLE DISTRO)
+message(STATUS "Detected Distro: ${DISTRO}")
+if(MG_CPU EQUAL 64)
+ set(CPACK_SYSTEM_NAME "${DISTRO}-amd64")
+else(MG_CPU EQUAL 64)
+ set(CPACK_SYSTEM_NAME "${DISTRO}-i386")
+endif(MG_CPU EQUAL 64)
+message(STATUS "CPack system name: ${CPACK_SYSTEM_NAME}")
+
+# Default to plain tarballs for packaging
+if (NOT CPACK_GENERATOR)
+ set(CPACK_GENERATOR "TGZ")
+endif (NOT CPACK_GENERATOR)
+message(STATUS "Using CPack generator: ${CPACK_GENERATOR}")
+
+# If making tarballs, force monolithic packaging
+if (CPACK_GENERATOR MATCHES "TGZ")
+ set(CPACK_MONOLITHIC_INSTALL 1)
+else (CPACK_GENERATOR MATCHES "TGZ")
+ set(CPACK_MONOLITHIC_INSTALL 0)
+endif (CPACK_GENERATOR MATCHES "TGZ")
+message(STATUS "CPack monolithic install: ${CPACK_MONOLITHIC_INSTALL}")
+
+# For monolithic packages,
+if (CPACK_MONOLITHIC_INSTALL)
+ set (CPACK_PACKAGE_FILE_NAME "mapguideopensource-${MG_VERSION_FULL}-${CPACK_SYSTEM_NAME}")
+endif (CPACK_MONOLITHIC_INSTALL)
+
set(MG_HTTPD_PORT 8008)
set(MG_TOMCAT_PORT 8009)
@@ -88,16 +126,26 @@
set(MG_COMPONENT_WEB "web")
# Override install directory to match what the automake build does (/usr/local, rather than /usr/local/lib)
-set(MG_INSTALL_PREFIX "/usr/local/mapguideopensource-${MG_VERSION}")
-set(MG_INSTALL_WEB_PREFIX "${MG_INSTALL_PREFIX}/webserverextensions")
+if (NOT MG_INSTALL_PREFIX)
+ set(MG_INSTALL_PREFIX "/usr/local/mapguideopensource-${MG_VERSION}")
+endif (NOT MG_INSTALL_PREFIX)
+#set(MG_INSTALL_WEB_PREFIX "${MG_INSTALL_PREFIX}/webserverextensions")
+#set(MG_WWWROOT "${MG_INSTALL_WEB_PREFIX}/www")
+#set(MG_INSTALL_SERVER_PREFIX "${MG_INSTALL_PREFIX}/server")
+#set(MG_SERVER_BIN_DIR "${MG_INSTALL_SERVER_PREFIX}/bin")
+#set(MG_INSTALL_COORDSYS_PREFIX "${MG_INSTALL_PREFIX}/share/gis/coordsys")
+set(MG_INSTALL_WEB_PREFIX "webserverextensions")
set(MG_WWWROOT "${MG_INSTALL_WEB_PREFIX}/www")
-set(MG_INSTALL_SERVER_PREFIX "${MG_INSTALL_PREFIX}/server")
+set(MG_INSTALL_SERVER_PREFIX "server")
set(MG_SERVER_BIN_DIR "${MG_INSTALL_SERVER_PREFIX}/bin")
-set(MG_INSTALL_COORDSYS_PREFIX "${MG_INSTALL_PREFIX}/share/gis/coordsys")
+set(MG_INSTALL_COORDSYS_PREFIX "share/gis/coordsys")
set(CMAKE_INSTALL_PREFIX "${MG_INSTALL_PREFIX}")
set(MG_VERSION_SUFFIX "-${MG_VERSION}")
+# Make CPack available to easy generate binary packages
+include(CPack)
+
macro(set_install_subdir relbase)
# Global definitions ( used by all sources )
# Check if is a 64 bits install and use user defined LIB_SUFFIX
@@ -118,7 +166,8 @@
endmacro(make_install workdir)
macro(install_empty_directory dirname root)
- install(CODE "file(MAKE_DIRECTORY ${root}/${dirname})")
+ file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${dirname}")
+ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dirname} DESTINATION ${root} COMPONENT ${MG_COMPONENT})
endmacro(install_empty_directory dirname root)
if(UNIX)
@@ -212,4 +261,4 @@
add_subdirectory(Desktop)
else (WITH_DESKTOP)
message(STATUS "Skipping optional mg-desktop support")
-endif (WITH_DESKTOP)
+endif (WITH_DESKTOP)
\ No newline at end of file
Modified: trunk/MgDev/Oem/CMakeLists.txt
===================================================================
--- trunk/MgDev/Oem/CMakeLists.txt 2018-12-08 07:45:34 UTC (rev 9420)
+++ trunk/MgDev/Oem/CMakeLists.txt 2018-12-10 14:54:00 UTC (rev 9421)
@@ -4,6 +4,8 @@
set(FUSION_WORK_DIR ${CMAKE_CURRENT_BINARY_DIR}/fusion)
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E chdir ${FUSION_WORK_DIR} ant deploy -Ddeploy.home=${MG_WWWROOT}/fusion)")
if (UNIX)
+ # Make the tcpdf cache dir
+ install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${MG_WWWROOT}/fusion/lib/tcpdf/cache)")
# httpd's default config is to use user/group daemon/daemon, so make it own the tcpdf cache directory in order for QuickPlot to work
install(CODE "execute_process(COMMAND chown daemon:daemon ${MG_WWWROOT}/fusion/lib/tcpdf/cache)")
endif (UNIX)
Added: trunk/MgDev/cmake/tools/getdistro.sh
===================================================================
--- trunk/MgDev/cmake/tools/getdistro.sh (rev 0)
+++ trunk/MgDev/cmake/tools/getdistro.sh 2018-12-10 14:54:00 UTC (rev 9421)
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# getdistro.sh
+#
+# Uses lsb_release to get a suitable distro string for CPack
+OS=$(lsb_release -si)
+VER=$(lsb_release -sr | cut -d. -f1)
+echo -n "${OS}${VER}"
\ No newline at end of file
Property changes on: trunk/MgDev/cmake/tools/getdistro.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/MgDev/cmake_build.sh
===================================================================
--- trunk/MgDev/cmake_build.sh 2018-12-08 07:45:34 UTC (rev 9420)
+++ trunk/MgDev/cmake_build.sh 2018-12-10 14:54:00 UTC (rev 9421)
@@ -91,12 +91,12 @@
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_CPU="$BUILD_CPU" -DWITH_JAVA=TRUE -DUSE_LD_GOLD="$USE_LD_GOLD" -DINTERNAL_XERCES=$INTERNAL_XERCES -DSANITIZE_ADDRESS=$USE_ASAN -DPHP_VER="$PHP_VER" -DHTTPD_VER="$HTTPD_VER" -DCMAKE_BUILD_TYPE="$BUILD_CONFIG" -DMG_OEM_WORK_DIR="$OEM_WORK_DIR"
+ cmake -G Ninja "$SOURCE_DIR" -DMG_INSTALL_PREFIX="$MG_INST_PREFIX" -DMG_CPU="$BUILD_CPU" -DWITH_JAVA=TRUE -DUSE_LD_GOLD="$USE_LD_GOLD" -DINTERNAL_XERCES=$INTERNAL_XERCES -DSANITIZE_ADDRESS=$USE_ASAN -DPHP_VER="$PHP_VER" -DHTTPD_VER="$HTTPD_VER" -DCMAKE_BUILD_TYPE="$BUILD_CONFIG" -DMG_OEM_WORK_DIR="$OEM_WORK_DIR"
check_build
ninja
check_build
else
- cmake "$SOURCE_DIR" -DMG_CPU="$BUILD_CPU" -DWITH_JAVA=TRUE -DUSE_LD_GOLD="$USE_LD_GOLD" -DINTERNAL_XERCES=$INTERNAL_XERCES -DSANITIZE_ADDRESS=$USE_ASAN -DPHP_VER="$PHP_VER" -DHTTPD_VER="$HTTPD_VER" -DCMAKE_BUILD_TYPE="$BUILD_CONFIG" -DMG_OEM_WORK_DIR="$OEM_WORK_DIR"
+ cmake "$SOURCE_DIR" -DMG_INSTALL_PREFIX="$MG_INST_PREFIX" -DMG_CPU="$BUILD_CPU" -DWITH_JAVA=TRUE -DUSE_LD_GOLD="$USE_LD_GOLD" -DINTERNAL_XERCES=$INTERNAL_XERCES -DSANITIZE_ADDRESS=$USE_ASAN -DPHP_VER="$PHP_VER" -DHTTPD_VER="$HTTPD_VER" -DCMAKE_BUILD_TYPE="$BUILD_CONFIG" -DMG_OEM_WORK_DIR="$OEM_WORK_DIR"
check_build
make
check_build
More information about the mapguide-commits
mailing list