[mapguide-commits] r9424 - in trunk/MgDev: . Common Common/Foundation Common/MdfParser Common/PlatformBase Common/Stylization Desktop Oem/DWFTK/develop/global/src Oem/DWFTK/develop/global/src/dwfcore Server Server/src/Common/Manager Server/src/UnitTesting Web cmake/modules
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Sun Dec 16 06:44:32 PST 2018
Author: jng
Date: 2018-12-16 06:44:32 -0800 (Sun, 16 Dec 2018)
New Revision: 9424
Added:
trunk/MgDev/cmake/modules/FindMapGuideThirdparty.cmake
Modified:
trunk/MgDev/CMakeLists.txt
trunk/MgDev/Common/CMakeLists.txt
trunk/MgDev/Common/Foundation/CMakeLists.txt
trunk/MgDev/Common/MdfParser/CMakeLists.txt
trunk/MgDev/Common/PlatformBase/CMakeLists.txt
trunk/MgDev/Common/Stylization/CMakeLists.txt
trunk/MgDev/Desktop/CMakeLists.txt
trunk/MgDev/Oem/DWFTK/develop/global/src/CMakeLists.txt
trunk/MgDev/Oem/DWFTK/develop/global/src/dwfcore/CMakeLists.txt
trunk/MgDev/Server/CMakeLists.txt
trunk/MgDev/Server/src/Common/Manager/CMakeLists.txt
trunk/MgDev/Server/src/UnitTesting/CMakeLists.txt
trunk/MgDev/Web/CMakeLists.txt
trunk/MgDev/cmake_bootstrap.sh
trunk/MgDev/cmake_build.sh
Log:
#2785: Update cmake_bootstrap.sh to support building the full Oem source tree. Fix up various CMakeLists.txt to support a fully built internal Oem source tree
Modified: trunk/MgDev/CMakeLists.txt
===================================================================
--- trunk/MgDev/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -41,6 +41,18 @@
message (STATUS "MG_CPU is ${MG_CPU}")
endif ((NOT MG_CPU EQUAL 32) AND (NOT MG_CPU EQUAL 64))
+#message(STATUS "INTERNAL_ACE = ${INTERNAL_ACE}")
+#message(STATUS "INTERNAL_CPPUNIT = ${INTERNAL_CPPUNIT}")
+#message(STATUS "INTERNAL_ZLIB = ${INTERNAL_ZLIB}")
+#message(STATUS "INTERNAL_LIBPNG = ${INTERNAL_LIBPNG}")
+#message(STATUS "INTERNAL_JPEG = ${INTERNAL_JPEG}")
+#message(STATUS "INTERNAL_FREETYPE = ${INTERNAL_FREETYPE}")
+#message(STATUS "INTERNAL_GD = ${INTERNAL_GD}")
+#message(STATUS "INTERNAL_JSON = ${INTERNAL_JSON}")
+#message(STATUS "INTERNAL_GEOS = ${INTERNAL_GEOS}")
+#message(STATUS "INTERNAL_XERCES = ${INTERNAL_XERCES}")
+#message(STATUS "WITH_JAVA = ${WITH_JAVA}")
+
include(CheckFunctionExists)
include(CheckIncludeFile)
include(CheckCXXSourceCompiles)
@@ -207,27 +219,7 @@
endif ()
find_package(Sanitizers)
-find_package(GEOS REQUIRED)
-find_package(ACE REQUIRED)
-if (NOT INTERNAL_XERCES)
- find_package(XercesC REQUIRED)
-else (NOT INTERNAL_XERCES)
- message(STATUS "Using internal xerces-c")
-endif (NOT INTERNAL_XERCES)
-find_package(GD REQUIRED)
-find_package(Freetype REQUIRED)
-find_package(JPEG REQUIRED)
-find_package(PNG REQUIRED)
-find_package(FDO REQUIRED)
-find_package(CppUnit REQUIRED)
-find_package(TCLAP REQUIRED)
-find_package(LinuxApt REQUIRED)
-find_package(DbXmlInternal REQUIRED)
-if (INTERNAL_XERCES)
- # This will be the same
- set(XERCESC_INCLUDE_DIR "${DBXML_INCLUDE_DIR}")
-endif (INTERNAL_XERCES)
-find_package(Ant REQUIRED)
+find_package(MapGuideThirdparty REQUIRED)
# Set internal tool paths
set(IMAKE_TOOL ${CMAKE_CURRENT_BINARY_DIR}/BuildTools/WebTools/IMake/IMake)
Modified: trunk/MgDev/Common/CMakeLists.txt
===================================================================
--- trunk/MgDev/Common/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Common/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -3,7 +3,10 @@
set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed -Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}")
endif( CMAKE_COMPILER_IS_GNUCXX )
-add_definitions( -DACE_HAS_THREAD_SAFE_ACCEPT )
+# On ubuntu at least, the system installed ACE does not define this (required by us)
+if (NOT INTERNAL_ACE)
+ add_definitions( -DACE_HAS_THREAD_SAFE_ACCEPT )
+endif (NOT INTERNAL_ACE)
set(MG_COMPONENT ${MG_COMPONENT_COMMON})
set_install_subdir("")
Modified: trunk/MgDev/Common/Foundation/CMakeLists.txt
===================================================================
--- trunk/MgDev/Common/Foundation/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Common/Foundation/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -1,6 +1,7 @@
project(foundation)
include_directories(${ACE_INCLUDE_DIR}
+ ${XERCESC_INCLUDE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/Data
${CMAKE_CURRENT_SOURCE_DIR}/Exception
Modified: trunk/MgDev/Common/MdfParser/CMakeLists.txt
===================================================================
--- trunk/MgDev/Common/MdfParser/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Common/MdfParser/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -1,6 +1,8 @@
project(mdfparser)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../MdfModel)
+include_directories(
+ ${CMAKE_CURRENT_SOURCE_DIR}/../MdfModel
+ ${XERCESC_INCLUDE_DIR})
set (MgMdfParser_SRCS
Common/IOColor.cpp
Modified: trunk/MgDev/Common/PlatformBase/CMakeLists.txt
===================================================================
--- trunk/MgDev/Common/PlatformBase/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Common/PlatformBase/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -1,6 +1,7 @@
project(platformbase)
include_directories(${ACE_INCLUDE_DIR}
+ ${XERCESC_INCLUDE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../CoordinateSystem
${CMAKE_CURRENT_SOURCE_DIR}/../Security
Modified: trunk/MgDev/Common/Stylization/CMakeLists.txt
===================================================================
--- trunk/MgDev/Common/Stylization/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Common/Stylization/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -1,6 +1,7 @@
project(stylization)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
+ ${ACE_INCLUDE_DIR}
${FDO_INCLUDE_DIR}
${FDO_INCLUDE_DIR}/ExpressionEngine
${CMAKE_CURRENT_SOURCE_DIR}/../MdfModel
Modified: trunk/MgDev/Desktop/CMakeLists.txt
===================================================================
--- trunk/MgDev/Desktop/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Desktop/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -1,4 +1,7 @@
-add_definitions( -DACE_HAS_THREAD_SAFE_ACCEPT )
+# On ubuntu at least, the system installed ACE does not define this (required by us)
+if (NOT INTERNAL_ACE)
+ add_definitions( -DACE_HAS_THREAD_SAFE_ACCEPT )
+endif (NOT INTERNAL_ACE)
# NOTE: Not applied for server tier projects except for mgserver main executable
if( CMAKE_COMPILER_IS_GNUCXX )
Modified: trunk/MgDev/Oem/DWFTK/develop/global/src/CMakeLists.txt
===================================================================
--- trunk/MgDev/Oem/DWFTK/develop/global/src/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Oem/DWFTK/develop/global/src/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -4,12 +4,18 @@
find_library(pthread REQUIRED)
find_library(uuid REQUIRED)
-if (NOT uuid-NOTFOUND)
- #add_definitions(-DHAVE_LIBUUID)
+check_cxx_source_compiles(
+ "#include <uuid/uuid.h>
+ int main() {
+ uuid_t _tUUID;
+ }"
+ HAS_UUID)
+if (HAS_UUID AND NOT uuid-NOTFOUND)
set (HAVE_LIBUUID 1)
-else (NOT uuid-NOTFOUND)
- message(STATUS "Could not find libuuid")
-endif (NOT uuid-NOTFOUND)
+ message(STATUS "libuuid found")
+else (HAS_UUID AND NOT uuid-NOTFOUND)
+ message(WARNING "Could not find libuuid and/or its uuid.h header")
+endif (HAS_UUID AND NOT uuid-NOTFOUND)
check_include_file(bits/stl_algobase.h HAVE_ALGOBASE_H)
check_include_file(asm/atomic.h HAVE_ATOMIC_H)
@@ -16,10 +22,6 @@
check_include_file(alsa/iatomic.h HAVE_IATOMIC_H)
check_include_file(netinet/ether.h HAVE_NETINET_ETHER_H)
-#if (HAVE_NETINET_ETHER_H)
-# add_definitions(-DHAVE_NETINET_ETHER_H)
-#endif (HAVE_NETINET_ETHER_H)
-
if (HAVE_ATOMIC_H)
check_cxx_source_compiles(
"#include <asm/atomic.h>
@@ -53,7 +55,6 @@
}"
CAN_COMPILE_WITH_IATOMIC_H)
if (CAN_COMPILE_WITH_IATOMIC_H)
- #add_definitions(-D_DWFCORE_USE_ALSA_IATOMIC_H)
set (_DWFCORE_USE_ALSA_IATOMIC_H 1)
else (CAN_COMPILE_WITH_IATOMIC_H)
message(WARNING "Found alsa/atomic.h but could not compile with it")
@@ -64,12 +65,6 @@
check_function_exists(min HAVE_MIN)
check_function_exists(memmove HAVE_MEMMOVE)
-#if (HAVE_MEMMOVE)
-# add_definitions(-DHAVE_MEMMOVE)
-#else (HAVE_MEMMOVE)
-# message(ERROR "Could not find required function memmove")
-#endif (HAVE_MEMMOVE)
-
if (NOT HAVE_MEMMOVE)
message(ERROR "Could not find required function memmove")
endif (NOT HAVE_MEMMOVE)
Modified: trunk/MgDev/Oem/DWFTK/develop/global/src/dwfcore/CMakeLists.txt
===================================================================
--- trunk/MgDev/Oem/DWFTK/develop/global/src/dwfcore/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Oem/DWFTK/develop/global/src/dwfcore/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -107,7 +107,7 @@
add_library(dwfcore-${DWFCORE_VERSION} SHARED ${dwfcore_SRCS})
-if (NOT uuid-NOTFOUND)
+if (HAS_UUID AND NOT uuid-NOTFOUND)
target_link_libraries(dwfcore-${DWFCORE_VERSION}
-Wl,-Bsymbolic
dl
@@ -114,12 +114,12 @@
pthread
uuid
)
-else (NOT uuid-NOTFOUND)
+else (HAS_UUID AND NOT uuid-NOTFOUND)
target_link_libraries(dwfcore-${DWFCORE_VERSION}
-Wl,-Bsymbolic
dl
pthread
)
-endif (NOT uuid-NOTFOUND)
+endif (HAS_UUID AND NOT uuid-NOTFOUND)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
\ No newline at end of file
Modified: trunk/MgDev/Server/CMakeLists.txt
===================================================================
--- trunk/MgDev/Server/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Server/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -1,4 +1,7 @@
-add_definitions( -DACE_HAS_THREAD_SAFE_ACCEPT )
+# On ubuntu at least, the system installed ACE does not define this (required by us)
+if (NOT INTERNAL_ACE)
+ add_definitions( -DACE_HAS_THREAD_SAFE_ACCEPT )
+endif (NOT INTERNAL_ACE)
set(MG_COMPONENT ${MG_COMPONENT_SERVER})
set_install_subdir("server/")
Modified: trunk/MgDev/Server/src/Common/Manager/CMakeLists.txt
===================================================================
--- trunk/MgDev/Server/src/Common/Manager/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Server/src/Common/Manager/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -1,5 +1,6 @@
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
${ACE_INCLUDE_DIR}
+ ${XERCESC_INCLUDE_DIR}
${FDO_INCLUDE_DIR}
${MG_AUTO_GENERATED_HEADER_DIR}
${MG_COMMON_DIR}/MdfModel
Modified: trunk/MgDev/Server/src/UnitTesting/CMakeLists.txt
===================================================================
--- trunk/MgDev/Server/src/UnitTesting/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Server/src/UnitTesting/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -1,5 +1,6 @@
include_directories(${ACE_INCLUDE_DIR}
${CPPUNIT_INCLUDE_DIR}
+ ${XERCESC_INCLUDE_DIR}
${MG_COMMON_DIR}/Foundation
${MG_COMMON_DIR}/Geometry
${MG_COMMON_DIR}/PlatformBase
Modified: trunk/MgDev/Web/CMakeLists.txt
===================================================================
--- trunk/MgDev/Web/CMakeLists.txt 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/Web/CMakeLists.txt 2018-12-16 14:44:32 UTC (rev 9424)
@@ -1,4 +1,7 @@
-add_definitions( -DACE_HAS_THREAD_SAFE_ACCEPT )
+# On ubuntu at least, the system installed ACE does not define this (required by us)
+if (NOT INTERNAL_ACE)
+ add_definitions( -DACE_HAS_THREAD_SAFE_ACCEPT )
+endif (NOT INTERNAL_ACE)
# NOTE: Not applied for server tier projects except for mgserver main executable
if( CMAKE_COMPILER_IS_GNUCXX )
Added: trunk/MgDev/cmake/modules/FindMapGuideThirdparty.cmake
===================================================================
--- trunk/MgDev/cmake/modules/FindMapGuideThirdparty.cmake (rev 0)
+++ trunk/MgDev/cmake/modules/FindMapGuideThirdparty.cmake 2018-12-16 14:44:32 UTC (rev 9424)
@@ -0,0 +1,212 @@
+# This file is strictly to check and enable system or internal Thirdparty
+# libraries
+
+include(FindPackageHandleStandardArgs)
+
+if (ALL_THIRDPARTY)
+ set(INTERNAL_ACE true)
+ set(INTERNAL_CPPUNIT true)
+ set(INTERNAL_ZLIB true)
+ set(INTERNAL_LIBPNG true)
+ set(INTERNAL_JPEG true)
+ set(INTERNAL_FREETYPE true)
+ set(INTERNAL_GD true)
+ set(INTERNAL_JSON true)
+ set(INTERNAL_GEOS true)
+ set(INTERNAL_XERCES true)
+endif (ALL_THIRDPARTY)
+
+if (INTERNAL_ACE)
+ message(STATUS "Using internal ACE")
+ #find_package(ACE REQUIRED
+ # PATHS ${MG_OEM_WORK_DIR}/ACE/ACE_wrappers
+ # ${MG_OEM_WORK_DIR}/ACE/ACE_wrappers/lib)
+ find_path(ACE_INCLUDE_DIR
+ NAMES "ace/Init_ACE.h"
+ PATHS ${MG_OEM_WORK_DIR}/ACE/ACE_wrappers)
+ find_library(ACE_LIBRARY
+ NAMES ACE
+ PATHS ${MG_OEM_WORK_DIR}/ACE/ACE_wrappers/lib)
+ message(STATUS "ACE Include Dir: ${ACE_INCLUDE_DIR}")
+ message(STATUS "ACE Library: ${ACE_LIBRARY}")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(ACE DEFAULT_MSG ACE_LIBRARY ACE_INCLUDE_DIR)
+ mark_as_advanced(ACE_INCLUDE_DIR ACE_LIBRARY)
+else (INTERNAL_ACE)
+ message(STATUS "Using system-provided ACE")
+ find_package(ACE REQUIRED)
+endif (INTERNAL_ACE)
+
+if (INTERNAL_GEOS)
+ message(STATUS "Using internal GEOS")
+ #find_package(GEOS REQUIRED
+ # PATHS ${MG_OEM_WORK_DIR}/geos/include
+ # ${MG_OEM_WORK_DIR}/geos/src/.libs)
+ find_path(GEOS_INCLUDE_DIR
+ NAMES "geos/version.h"
+ "geos/geom.h"
+ "geos/util.h"
+ "geos/io.h"
+ "geos/unload.h"
+ PATHS ${MG_OEM_WORK_DIR}/geos/include)
+ find_library(GEOS_LIBRARY
+ NAMES geos
+ PATHS ${MG_OEM_WORK_DIR}/geos/src/.libs)
+ message(STATUS "GEOS Include Dir: ${GEOS_INCLUDE_DIR}")
+ message(STATUS "GEOS Library: ${GEOS_LIBRARY}")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GEOS DEFAULT_MSG GEOS_LIBRARY GEOS_INCLUDE_DIR)
+ mark_as_advanced(GEOS_INCLUDE_DIR GEOS_LIBRARY)
+else (INTERNAL_GEOS)
+ find_package(GEOS REQUIRED)
+endif (INTERNAL_GEOS)
+
+if (INTERNAL_XERCES)
+ message(STATUS "Using internal xerces-c")
+ #find_package(XercesC REQUIRED
+ # PATHS ${MG_OEM_WORK_DIR}/dbxml/xerces-c-src/src
+ # ${MG_OEM_WORK_DIR}/dbxml/xerces-c-src/src/.libs)
+ find_path(XERCESC_INCLUDE_DIR
+ NAMES "xercesc/dom/DOM.hpp"
+ PATHS ${MG_OEM_WORK_DIR}/dbxml/xerces-c-src/src)
+ find_library(XERCESC_LIBRARIES
+ NAMES xerces-c
+ PATHS ${MG_OEM_WORK_DIR}/dbxml/xerces-c-src/src/.libs)
+ message(STATUS "xerces-c Include Dir: ${XERCESC_INCLUDE_DIR}")
+ message(STATUS "xerces-c Library: ${XERCESC_LIBRARIES}")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(xerces-c DEFAULT_MSG XERCESC_LIBRARIES XERCESC_INCLUDE_DIR)
+ mark_as_advanced(XERCESC_INCLUDE_DIR XERCESC_LIBRARIES)
+else (INTERNAL_XERCES)
+ find_package(XercesC REQUIRED)
+endif (INTERNAL_XERCES)
+
+if (INTERNAL_GD)
+ message(STATUS "Using internal GD")
+ #find_package(GD REQUIRED
+ # PATHS ${MG_OEM_WORK_DIR}/gd/gd
+ # ${MG_OEM_WORK_DIR}/gd/gd/.libs)
+ find_path(GD_INCLUDE_DIR
+ NAMES "gd.h"
+ PATHS ${MG_OEM_WORK_DIR}/gd/gd)
+ find_library(GD_LIBRARY
+ NAMES gd
+ PATHS ${MG_OEM_WORK_DIR}/gd/gd/.libs)
+ message(STATUS "GD Include Dir: ${GD_INCLUDE_DIR}")
+ message(STATUS "GD Library: ${GD_LIBRARY}")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GD DEFAULT_MSG GD_LIBRARY GD_INCLUDE_DIR)
+ mark_as_advanced(GD_INCLUDE_DIR GD_LIBRARY)
+else (INTERNAL_GD)
+ find_package(GD REQUIRED)
+endif (INTERNAL_GD)
+
+if (INTERNAL_FREETYPE)
+ message(STATUS "Using internal FreeType")
+ #find_package(Freetype REQUIRED
+ # PATHS ${MG_OEM_WORK_DIR}/gd/freetype
+ # ${MG_OEM_WORK_DIR}/gd/freetype/.libs)
+ find_path(FREETYPE_INCLUDE_DIRS
+ NAMES "ft2build.h"
+ PATHS ${MG_OEM_WORK_DIR}/gd/freetype/include)
+ find_library(FREETYPE_LIBRARY
+ NAMES freetype
+ PATHS ${MG_OEM_WORK_DIR}/gd/freetype/objs/.libs)
+ message(STATUS "FreeType Include Dir: ${FREETYPE_INCLUDE_DIRS}")
+ message(STATUS "FreeType Library: ${FREETYPE_LIBRARY}")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(FreeType DEFAULT_MSG FREETYPE_LIBRARY FREETYPE_INCLUDE_DIRS)
+ mark_as_advanced(FREETYPE_INCLUDE_DIRS FREETYPE_LIBRARY)
+else (INTERNAL_FREETYPE)
+ find_package(Freetype REQUIRED)
+endif (INTERNAL_FREETYPE)
+
+if (INTERNAL_JPEG)
+ message(STATUS "Using internal libjpeg")
+ #find_package(JPEG REQUIRED
+ # PATHS ${MG_OEM_WORK_DIR}/gd/jpeg
+ # ${MG_OEM_WORK_DIR}/gd/jpeg/.libs)
+ find_path(JPEG_INCLUDE_DIR
+ NAMES "jpeglib.h"
+ PATHS ${MG_OEM_WORK_DIR}/gd/jpeg)
+ find_library(JPEG_LIBRARY
+ NAMES jpeg
+ PATHS ${MG_OEM_WORK_DIR}/gd/jpeg/.libs)
+ message(STATUS "libjpeg Include Dir: ${JPEG_INCLUDE_DIR}")
+ message(STATUS "libjpeg Library: ${JPEG_LIBRARY}")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(jpeg DEFAULT_MSG JPEG_LIBRARY JPEG_INCLUDE_DIR)
+ mark_as_advanced(JPEG_INCLUDE_DIR JPEG_LIBRARY)
+else (INTERNAL_JPEG)
+ find_package(JPEG REQUIRED)
+endif (INTERNAL_JPEG)
+
+if (INTERNAL_PNG)
+ message(STATUS "Using internal libpng")
+ #find_package(PNG REQUIRED
+ # PATHS ${MG_OEM_WORK_DIR}/gd/png
+ # ${MG_OEM_WORK_DIR}/gd/png/.libs)
+ find_path(PNG_INCLUDE_DIRS
+ NAMES "png.h"
+ PATHS ${MG_OEM_WORK_DIR}/gd/lpng)
+ find_library(PNG_LIBRARY
+ NAMES png
+ PATHS ${MG_OEM_WORK_DIR}/gd/lpng/.libs)
+ message(STATUS "libpng Include Dir: ${PNG_INCLUDE_DIRS}")
+ message(STATUS "libpng Library: ${PNG_LIBRARY}")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(libpng DEFAULT_MSG PNG_LIBRARY PNG_INCLUDE_DIRS)
+ mark_as_advanced(PNG_INCLUDE_DIRS PNG_LIBRARY)
+else (INTERNAL_PNG)
+ find_package(PNG REQUIRED)
+endif (INTERNAL_PNG)
+
+if (INTERNAL_CPPUNIT)
+ message(STATUS "Using internal cppunit")
+ #find_package(CppUnit REQUIRED
+ # PATHS ${MG_OEM_WORK_DIR}/cppunit
+ # ${MG_OEM_WORK_DIR}/cppunit/.libs)
+ find_path(CPPUNIT_INCLUDE_DIR
+ NAMES "cppunit/CompilerOutputter.h"
+ PATHS ${MG_OEM_WORK_DIR}/CppUnit/include)
+ find_library(CPPUNIT_LIBRARIES
+ NAMES cppunit
+ PATHS ${MG_OEM_WORK_DIR}/CppUnit/src/cppunit/.libs)
+ message(STATUS "cppunit Include Dir: ${CPPUNIT_INCLUDE_DIR}")
+ message(STATUS "cppunit Library: ${CPPUNIT_LIBRARIES}")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(cppunit DEFAULT_MSG CPPUNIT_LIBRARIES CPPUNIT_INCLUDE_DIR)
+ mark_as_advanced(CPPUNIT_INCLUDE_DIR CPPUNIT_LIBRARIES)
+else (INTERNAL_CPPUNIT)
+ find_package(CppUnit REQUIRED)
+endif (INTERNAL_CPPUNIT)
+
+if (INTERNAL_JSON)
+ message(STATUS "Using internal jsoncpp")
+ find_path(JsonCpp_INCLUDE_DIR
+ NAMES "json/json.h"
+ PATHS ${MG_OEM_WORK_DIR}/jsoncpp/include)
+ find_library(JsonCpp_LIBRARY
+ NAMES lib_json
+ PATHS ${MG_OEM_WORK_DIR}/jsoncpp/lib)
+ message(STATUS "jsoncpp Include Dir: ${JsonCpp_INCLUDE_DIR}")
+ message(STATUS "jsoncpp Library: ${JsonCpp_LIBRARY}")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(jsoncpp DEFAULT_MSG JsonCpp_LIBRARY JsonCpp_INCLUDE_DIR)
+ mark_as_advanced(JsonCpp_INCLUDE_DIR JsonCpp_LIBRARY)
+else (INTERNAL_JSON)
+ find_package(JsonCpp REQUIRED)
+endif (INTERNAL_JSON)
+
+if (INTERNAL_ZLIB)
+ message(STATUS "Using internal zlib")
+ find_path(ZLIB_INCLUDE_DIR
+ NAMES "zlib.h"
+ PATHS ${MG_OEM_WORK_DIR}/gd/zlib)
+ find_library(ZLIB_LIBRARY
+ NAMES z
+ PATHS ${MG_OEM_WORK_DIR}/gd/zlib)
+ message(STATUS "zlib Include Dir: ${ZLIB_INCLUDE_DIR}")
+ message(STATUS "zlib Library: ${ZLIB_LIBRARY}")
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(zlib DEFAULT_MSG ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
+ mark_as_advanced(ZLIB_INCLUDE_DIR ZLIB_LIBRARY)
+else (INTERNAL_ZLIB)
+ find_package(ZLIB REQUIRED)
+endif (INTERNAL_ZLIB)
+
+find_package(FDO REQUIRED)
+find_package(TCLAP REQUIRED)
+find_package(LinuxApt REQUIRED)
+find_package(DbXmlInternal REQUIRED)
+find_package(Ant REQUIRED)
\ No newline at end of file
Modified: trunk/MgDev/cmake_bootstrap.sh
===================================================================
--- trunk/MgDev/cmake_bootstrap.sh 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/cmake_bootstrap.sh 2018-12-16 14:44:32 UTC (rev 9424)
@@ -1,5 +1,9 @@
#!/bin/sh
+# TODO: The MapGuie build system is not aware of FDO (beyond the built FDO binaries), so there is nothing here
+# that knows that FDO's build system has an internally built copy of openssl/curl that can be passed on to PHP
+# here.
+
MG_INST_PREFIX=/usr/local/mapguideopensource-3.3.0
OEM_WORK_DIR=~/mapguide_oem_build
INTERNAL_ACE=0
@@ -256,14 +260,33 @@
make && make install
check_build
fi
+
+# Before we build GD, set some vars for PHP that we can reuse here too
+PHP_JPEG_DIR=/usr/lib
+PHP_PNG_DIR=/usr/lib
+PHP_FREETYPE_DIR=/usr/lib
+PHP_ZLIB_DIR=/usr/lib
+if [ "$INTERNAL_JPEG" = "1" ]; then
+ PHP_JPEG_DIR="$OEM_WORK_DIR/install/libjpeg"
+fi
+if [ "$INTERNAL_LIBPNG" = "1" ]; then
+ PHP_PNG_DIR="$OEM_WORK_DIR/install/libpng/usr/local"
+fi
+if [ "$INTERNAL_FREETYPE" = "1" ]; then
+ PHP_FREETYPE_DIR="$OEM_WORK_DIR/install/freetype"
+fi
+if [ "$INTERNAL_ZLIB" = "1" ]; then
+ PHP_ZLIB_DIR="$OEM_WORK_DIR/install/zlib"
+fi
+
if [ "$INTERNAL_GD" = "1" ]; then
echo "Building GD (internal)"
cp -Rf "${SOURCE_DIR}/Oem/gd/gd" "${OEM_WORK_DIR}/gd/gd"
cd "${OEM_WORK_DIR}/gd/gd" || exit
if [ $BUILD_CPU -eq 64 ]; then
- sh ./configure --enable-static --disable-shared --without-fontconfig --enable-silent-rules --with-pic --prefix="${OEM_INSTALL_STAGE}/gd"
+ sh ./configure --enable-static --disable-shared --without-fontconfig --enable-silent-rules --with-jpeg="${PHP_JPEG_DIR}" --with-png="${PHP_PNG_DIR}" --with-freetype="${PHP_FREETYPE_DIR}" --with-pic --prefix="${OEM_INSTALL_STAGE}/gd"
else
- sh ./configure --enable-static --disable-shared --without-fontconfig --enable-silent-rules --prefix="${OEM_INSTALL_STAGE}/gd"
+ sh ./configure --enable-static --disable-shared --without-fontconfig --enable-silent-rules --with-jpeg="${PHP_JPEG_DIR}" --with-png="${PHP_PNG_DIR}" --with-freetype="${PHP_FREETYPE_DIR}" --prefix="${OEM_INSTALL_STAGE}/gd"
fi
make && make install
check_build
@@ -276,7 +299,36 @@
scons platform=linux-gcc
check_build
fi
+if [ "$INTERNAL_GEOS" = "1" ]; then
+ echo "Building GEOS (internal)"
+ cp -Rf "${SOURCE_DIR}/Oem/geos" "${OEM_WORK_DIR}/geos"
+ cd "${OEM_WORK_DIR}/geos" || exit
+ # NOTE: We could build with CMake, but it isn't the "blessed" build system for the version we
+ # have internally (3.4.2), so we're sticking with autotools
+ #cmake "${SOURCE_DIR}/Oem/geos" .
+ # For this version of GEOS, don't run the aclocal/libtoolize/automake/autoconf quartet as we normally do, as it
+ # may produce an unusable configure script. Just run autoreconf to regenerate the configure script from configure.in
+ autoreconf
+
+ # Fix for error:
+ # virtual void geos::geom::GeometryComponentFilter::filter_ro(const geos::geom::Geometry*): Assertion `0' failed
+ #
+ # Based on this GEOS ticket: https://trac.osgeo.org/geos/ticket/469
+ # The fix to to set the appropriate CFLAGS/CPPFLAGS/CXXFLAGS/LDFLAGS/FFLAGS before calling the configure script
+ #
+ # If we upgrade our internal copy of GEOS in the future, this should be reviewed
+ chmod +x configure
+ if [ $BUILD_CPU -eq 64 ]; then
+ CFLAGS="-m64" CPPFLAGS="-m64" CXXFLAGS="-m64" LDFLAGS="-m64" FFLAGS="-m64" LDFLAGS="-L/usr/lib64" ./configure --with-pic --enable-silent-rules --prefix="${INSTALLDIR}"
+ else
+ CFLAGS="-m32" CPPFLAGS="-m32" CXXFLAGS="-m32" LDFLAGS="-m32" FFLAGS="-m32" LDFLAGS="-L/usr/lib" ./configure --enable-silent-rules --prefix="${INSTALLDIR}"
+ fi
+ make
+ # The check build is disabled as the build will fail with automake version < 2.59
+ check_build
+fi
+
echo "Checking if we need to build DBXML"
# Basically perform the same checks as FindDbXml.cmake
HAS_DBXML_HEADERS=0
@@ -394,22 +446,6 @@
tar -jxf php-${PHP_VER}.tar.bz2 -C "${LA_WORKDIR}"
echo "Configuring PHP"
- PHP_JPEG_DIR=/usr/lib
- PHP_PNG_DIR=/usr/lib
- PHP_FREETYPE_DIR=/usr/lib
- PHP_ZLIB_DIR=/usr/lib
- if [ "$INTERNAL_JPEG" = "1" ]; then
- PHP_JPEG_DIR="$OEM_WORK_DIR/install/libjpeg"
- fi
- if [ "$INTERNAL_LIBPNG" = "1" ]; then
- PHP_PNG_DIR="$OEM_WORK_DIR/install/libpng/usr/local"
- fi
- if [ "$INTERNAL_FREETYPE" = "1" ]; then
- PHP_FREETYPE_DIR="$OEM_WORK_DIR/install/freetype"
- fi
- if [ "$INTERNAL_ZLIB" = "1" ]; then
- PHP_ZLIB_DIR="$OEM_WORK_DIR/install/zlib"
- fi
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
@@ -442,6 +478,43 @@
make install 2>&1 | tee "$OEM_WORK_DIR/make_install_tc.log"
check_build
+OUT_INTERNAL_ACE=FALSE
+if [ "$INTERNAL_ACE" = "1" ]; then
+ OUT_INTERNAL_ACE=TRUE
+fi
+OUT_INTERNAL_CPPUNIT=FALSE
+if [ "$INTERNAL_CPPUNIT" = "1" ]; then
+ OUT_INTERNAL_CPPUNIT=TRUE
+fi
+OUT_INTERNAL_ZLIB=FALSE
+if [ "$INTERNAL_ZLIB" = "1" ]; then
+ OUT_INTERNAL_ZLIB=TRUE
+fi
+OUT_INTERNAL_LIBPNG=FALSE
+if [ "$INTERNAL_LIBPNG" = "1" ]; then
+ OUT_INTERNAL_LIBPNG=TRUE
+fi
+OUT_INTERNAL_JPEG=FALSE
+if [ "$INTERNAL_JPEG" = "1" ]; then
+ OUT_INTERNAL_JPEG=TRUE
+fi
+OUT_INTERNAL_FREETYPE=FALSE
+if [ "$INTERNAL_FREETYPE" = "1" ]; then
+ OUT_INTERNAL_FREETYPE=TRUE
+fi
+OUT_INTERNAL_GD=FALSE
+if [ "$INTERNAL_GD" = "1" ]; then
+ OUT_INTERNAL_GD=TRUE
+fi
+OUT_INTERNAL_JSON=FALSE
+if [ "$INTERNAL_JSON" = "1" ]; then
+ OUT_INTERNAL_JSON=TRUE
+fi
+OUT_INTERNAL_GEOS=FALSE
+if [ "$INTERNAL_GEOS" = "1" ]; then
+ OUT_INTERNAL_GEOS=TRUE
+fi
+
# dump vars to setup script
{
echo "#!/bin/sh"
@@ -454,15 +527,15 @@
echo "export HTTPD_PORT=$HTTPD_PORT"
echo "export TOMCAT_PORT=$TOMCAT_PORT"
echo "export HAVE_SYSTEM_XERCES=$HAVE_SYSTEM_XERCES"
- echo "export INTERNAL_ACE=$INTERNAL_ACE"
- echo "export INTERNAL_CPPUNIT=$INTERNAL_CPPUNIT"
- echo "export INTERNAL_ZLIB=$INTERNAL_ZLIB"
- echo "export INTERNAL_LIBPNG=$INTERNAL_LIBPNG"
- echo "export INTERNAL_JPEG=$INTERNAL_JPEG"
- echo "export INTERNAL_FREETYPE=$INTERNAL_FREETYPE"
- echo "export INTERNAL_GD=$INTERNAL_GD"
- echo "export INTERNAL_JSON=$INTERNAL_JSON"
- echo "export INTERNAL_GEOS=$INTERNAL_GEOS"
+ echo "export INTERNAL_ACE=$OUT_INTERNAL_ACE"
+ echo "export INTERNAL_CPPUNIT=$OUT_INTERNAL_CPPUNIT"
+ echo "export INTERNAL_ZLIB=$OUT_INTERNAL_ZLIB"
+ echo "export INTERNAL_LIBPNG=$OUT_INTERNAL_LIBPNG"
+ echo "export INTERNAL_JPEG=$OUT_INTERNAL_JPEG"
+ echo "export INTERNAL_FREETYPE=$OUT_INTERNAL_FREETYPE"
+ echo "export INTERNAL_GD=$OUT_INTERNAL_GD"
+ echo "export INTERNAL_JSON=$OUT_INTERNAL_JSON"
+ echo "export INTERNAL_GEOS=$OUT_INTERNAL_GEOS"
} > "$OEM_WORK_DIR/env_vars.sh"
chmod +x "$OEM_WORK_DIR/env_vars.sh"
Modified: trunk/MgDev/cmake_build.sh
===================================================================
--- trunk/MgDev/cmake_build.sh 2018-12-14 15:31:15 UTC (rev 9423)
+++ trunk/MgDev/cmake_build.sh 2018-12-16 14:44:32 UTC (rev 9424)
@@ -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_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"
+ cmake -G Ninja "$SOURCE_DIR" -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 -DINTERNAL_XERCES=$INTERNAL_XERCES -DINTERNAL_ACE=$INTERNAL_ACE -DINTERNAL_CPPUNIT=$INTERNAL_CPPUNIT -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
check_build
ninja
check_build
else
- 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"
+ cmake "$SOURCE_DIR" -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 -DINTERNAL_XERCES=$INTERNAL_XERCES -DINTERNAL_ACE=$INTERNAL_ACE -DINTERNAL_CPPUNIT=$INTERNAL_CPPUNIT -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
check_build
make
check_build
More information about the mapguide-commits
mailing list