From: <ai...@us...> - 2013-12-11 08:37:46
|
Revision: 12847 http://sourceforge.net/p/plplot/code/12847 Author: airwin Date: 2013-12-11 08:37:43 +0000 (Wed, 11 Dec 2013) Log Message: ----------- Add a qt4_lite epa_build configuration. Tested by Alan W. Irwin <ai...@us...> on Linux for epa_build with the build_epa_lite target which took ~15 minutes to complete on my ordinary PC. Since that build I have done extensive comprehensive testing of PLplot for the qt case using these qt4_lite install results, and no issues were found at all. Modified Paths: -------------- trunk/cmake/epa_build/CMakeLists.txt trunk/cmake/epa_build/plplot/CMakeLists.txt Added Paths: ----------- trunk/cmake/epa_build/qt4_lite/ trunk/cmake/epa_build/qt4_lite/CMakeLists.txt Modified: trunk/cmake/epa_build/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/CMakeLists.txt 2013-12-11 07:49:35 UTC (rev 12846) +++ trunk/cmake/epa_build/CMakeLists.txt 2013-12-11 08:37:43 UTC (rev 12847) @@ -397,6 +397,7 @@ plplot_lite wxwidgets pango + qt4_lite ) endif(BUILD_THE_BUILDTOOLS) Modified: trunk/cmake/epa_build/plplot/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/plplot/CMakeLists.txt 2013-12-11 07:49:35 UTC (rev 12846) +++ trunk/cmake/epa_build/plplot/CMakeLists.txt 2013-12-11 08:37:43 UTC (rev 12847) @@ -31,6 +31,7 @@ shapelib wxwidgets pango + qt4_lite ) # Do boilerplate tasks that must be done for each different project Added: trunk/cmake/epa_build/qt4_lite/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/qt4_lite/CMakeLists.txt (rev 0) +++ trunk/cmake/epa_build/qt4_lite/CMakeLists.txt 2013-12-11 08:37:43 UTC (rev 12847) @@ -0,0 +1,207 @@ +# qt4_lite/CMakeLists.txt + +# Configure the build of qt4_lite. + +# N.B. this file is generated so if you edit it you will lose all your +# changes the next time it is generated (typically by running +# either/both the update_added_packages.sh or update_pango_packages.sh +# scripts). If those scripts do not provide good results, then +# consider changing their source files (e.g., by editing the files +# used in those scripts) or add a patch to be run by those scripts. + +# Copyright (C) 2013 Alan W. Irwin + +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. + +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with this file; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +# Many of the details of this epa_build configuration were derived from +# <http://www.linuxfromscratch.org/blfs/view/svn/x/qt4.html>. + +set(PACKAGE qt4_lite) + +# List of dependencies (most of which are build tools) which should be +# ignored. +set(ignored_dependencies_LIST ${extra_ignored_dependencies_list}) + +# The assumption here is that for Windows platforms Qt4 is self-contained +# and therefore does not rely on external libraries (at least if you configure +# the in-house version of those). For Linux platforms the dependencies will +# just have to be resolved by system versions rather than building a lot +# of additional packages. +set(dependencies_LIST) + +# Do boilerplate tasks that must be done for each different project +# that is configured as part of epa_build. +epa_boilerplate( + ignored_dependencies_LIST + PACKAGE + dependencies_LIST + dependencies_targets + EPA_PATH + source_PATH + ) + +set(CFLAGS "$ENV{CFLAGS}") +set(CXXFLAGS "$ENV{CXXFLAGS}") + +# Drop -fvisibility=hidden since that option may not work for Qt4. +# (May test this later if I get everything to work.) +string(REGEX REPLACE "-fvisibility=hidden" "" CFLAGS "${CFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CXXFLAGS "${CXXFLAGS}") + +# Data that is related to downloads. +set(URL http://download.qt-project.org/official_releases/qt/4.8/4.8.5/qt-everywhere-opensource-src-4.8.5.tar.gz) +# Temporary to save download bandwidth/time while debugging this. +set(URL /home/software/build_qt4/qt-everywhere-opensource-src-4.8.5.tar.gz) +set(DOWNLOAD_HASH_TYPE MD5) +set(DOWNLOAD_HASH 1864987bdbb2f58f8ae8b350dfdbe133) + +# Many of these are recommended by BLFS, but I have tried to use +# a consistent install prefix and I have also turned off as +# much as possible for this "lite" version. +set(config_arguments + + # Installation options: + -sysconfdir ${EPA_CMAKE_INSTALL_PREFIX}/etc/xdg + + # Configure options: + -release + -confirm-license + -opensource + # Need to be consistent with system versions of PyQt4/QtGui.so which need + # a libQtGui.so library which contains QWidget::accessibleName() const + # and QWidget::accessibleDescription() const. + -accessibility + + # Try to get rid of everything to do with sql by eliminating all possible + # drivers. + -no-sql-db2 + -no-sql-ibase + -no-sql-mysql + -no-sql-oci + -no-sql-odbc + -no-sql-psql + -no-sql-sqlite + -no-sql-sqlite2 + -no-sql-sqlite_symbian + -no-sql-symsql + -no-sql-tds + + -no-qt3support + -no-xmlpatterns + -no-multimedia + -no-audio-backend + -no-phonon + -no-phonon-backend + + # Need svg + -svg + + -no-webkit + -no-javascript-jit + -no-script + -no-scripttools + -no-declarative + -no-declarative-debug + # Third party libraries (drop if possible but if needed by PLplot, use + # in-house Qt4 versions of these to reduce dependencies): + -qt-zlib + -no-gif + -qt-libtiff + -qt-libpng + -no-libmng + -qt-libjpeg + -no-openssl + # Additional options: + + # Drop all components other than libs + -nomake tools + -nomake examples + -nomake demos + -nomake docs + -nomake translations + + -optimized-qmake + + # Need gui which happens by default (there is no -gui option) + # if you do not specify -no-gui + + -no-nis + -no-cups + -no-iconv + -no-dbus + + # Qt/X11 only: (leave everything default) + ) + +# Note QTDIR= below. Setting that environment variable is recommended by method 2 of BLFS. + +ExternalProject_Add( + build_qt4_lite + DEPENDS ${dependencies_targets} + URL ${URL} + URL_HASH ${DOWNLOAD_HASH_TYPE}=${DOWNLOAD_HASH} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} QTDIR=${EPA_CMAKE_INSTALL_PREFIX} "CFLAGS=${CFLAGS}" "CXXFLAGS=${CXXFLAGS}" ${source_PATH}/${EPA_CONFIGURE_COMMAND} ${config_arguments} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} QTDIR=${EPA_CMAKE_INSTALL_PREFIX} ${EPA_PARALLEL_MAKE_COMMAND} + BUILD_IN_SOURCE 0 + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} QTDIR=${EPA_CMAKE_INSTALL_PREFIX} ${EPA_PARALLEL_MAKE_COMMAND} install + #STEP_TARGETS update configure build install test + ) + +add_custom_command( + OUTPUT + ${EPA_BASE}/Stamp/build_${PACKAGE}/build_${PACKAGE}-update + COMMAND ${CMAKE_COMMAND} -E echo "make two code fixups recommended by BLFS." + COMMAND ${SED_EXECUTABLE} -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" ${EPA_BASE}/Source/build_${PACKAGE}/config.tests/unix/libmng/libmng.cpp + COMMAND ${SED_EXECUTABLE} -i "/CONFIG -/ a\\isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../.." ${EPA_BASE}/Source/build_${PACKAGE}/src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro + APPEND + ) + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/install_png.sh +"install -v -Dm644 ${EPA_BASE}/Source/build_${PACKAGE}/src/gui/dialogs/images/qtlogo-64.png ${EPA_CMAKE_INSTALL_PREFIX}/usr/share/pixmaps/qt4logo.png +install -v -Dm644 ${EPA_BASE}/Source/build_${PACKAGE}/tools/assistant/tools/assistant/images/assistant-128.png ${EPA_CMAKE_INSTALL_PREFIX}/usr/share/pixmaps/assistant-qt4.png +install -v -Dm644 ${EPA_BASE}/Source/build_${PACKAGE}/tools/designer/src/designer/images/designer.png ${EPA_CMAKE_INSTALL_PREFIX}/usr/share/pixmaps/designer-qt4.png +install -v -Dm644 ${EPA_BASE}/Source/build_${PACKAGE}/tools/linguist/linguist/images/icons/linguist-128-32.png ${EPA_CMAKE_INSTALL_PREFIX}/usr/share/pixmaps/linguist-qt4.png +install -v -Dm644 ${EPA_BASE}/Source/build_${PACKAGE}/tools/qdbus/qdbusviewer/images/qdbusviewer-128.png ${EPA_CMAKE_INSTALL_PREFIX}/usr/share/pixmaps/qdbusviewer-qt4.png +" + ) + +add_custom_command( + OUTPUT + ${EPA_BASE}/Stamp/build_${PACKAGE}/build_${PACKAGE}-install + COMMAND ${CMAKE_COMMAND} -E echo "install some addition png files recommended by BLFS." + COMMAND ${BASH_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/install_png.sh + APPEND + ) + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/install_fixups.sh +"for file in `basename -a -s .prl ${EPA_CMAKE_INSTALL_PREFIX}/lib/lib*.prl`; do + sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\\1/' ${EPA_CMAKE_INSTALL_PREFIX}/lib/\${file}.prl + perl -pi -e \"s, -L\$PWD/?\\S+,,g\" ${EPA_CMAKE_INSTALL_PREFIX}/lib/pkgconfig/\${file##lib}.pc +done + +unset file +" + ) + +add_custom_command( + OUTPUT + ${EPA_BASE}/Stamp/build_${PACKAGE}/build_${PACKAGE}-install + COMMAND ${CMAKE_COMMAND} -E echo "install fixups recommended by BLFS." + COMMAND ${BASH_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/install_fixups.sh + APPEND + ) + +# N.B. I have explicitly ignored all post-install Qt4 configuration recommended +# by BLFS because I don't think that will be needed by PLplot. Property changes on: trunk/cmake/epa_build/qt4_lite/CMakeLists.txt ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |