From: <ai...@us...> - 2013-12-05 10:48:53
|
Revision: 12812 http://sourceforge.net/p/plplot/code/12812 Author: airwin Date: 2013-12-05 10:48:48 +0000 (Thu, 05 Dec 2013) Log Message: ----------- Commit the changes to move to the new "add_subdirectory" paradigm for epa_build. Tested by Alan W. Irwin <ai...@us...> on Linux using the epa_build -DBUILD_THE_BUILDTOOLS=ON cmake option and the build_all target (which built and installed cmake, pkg-config, swig, libpcre, tk(8.6), tcl(8.6), itk(4.0), iwidgets(4.1.0), itcl3(3.4), itk3(3.3), and iwidgets4.0(4.0.1) without issues in just 11.5 minutes. N.B. the more normal epa_build with -DBUILD_THE_BUILDTOOLS=OFF (which builds PLplot and its normal dependencies using the above build tools) has not been tested yet, and there are presumably a few minor issues still to straighten out for that case. Modified Paths: -------------- trunk/cmake/epa_build/CMakeLists.txt trunk/cmake/epa_build/cairo/CMakeLists.txt trunk/cmake/epa_build/cmake/CMakeLists.txt trunk/cmake/epa_build/docbook-xml/CMakeLists.txt trunk/cmake/epa_build/docbook-xsl/CMakeLists.txt trunk/cmake/epa_build/epa_CMakeLists.txt.in trunk/cmake/epa_build/fontconfig/CMakeLists.txt trunk/cmake/epa_build/glib/CMakeLists.txt trunk/cmake/epa_build/gobject-introspection/CMakeLists.txt trunk/cmake/epa_build/gperf/CMakeLists.txt trunk/cmake/epa_build/gtk-doc/CMakeLists.txt trunk/cmake/epa_build/harfbuzz/CMakeLists.txt trunk/cmake/epa_build/intltool/CMakeLists.txt trunk/cmake/epa_build/itcl3/CMakeLists.txt trunk/cmake/epa_build/itk/CMakeLists.txt trunk/cmake/epa_build/itk3/CMakeLists.txt trunk/cmake/epa_build/itstool/CMakeLists.txt trunk/cmake/epa_build/iwidgets/CMakeLists.txt trunk/cmake/epa_build/libagg/CMakeLists.txt trunk/cmake/epa_build/libffi/CMakeLists.txt trunk/cmake/epa_build/libharu/CMakeLists.txt trunk/cmake/epa_build/libpcre/CMakeLists.txt trunk/cmake/epa_build/libqhull/CMakeLists.txt trunk/cmake/epa_build/libxml2/CMakeLists.txt trunk/cmake/epa_build/libxslt/CMakeLists.txt trunk/cmake/epa_build/ndiff/CMakeLists.txt trunk/cmake/epa_build/pango/CMakeLists.txt trunk/cmake/epa_build/pixman/CMakeLists.txt trunk/cmake/epa_build/pkg-config/CMakeLists.txt trunk/cmake/epa_build/plplot/CMakeLists.txt trunk/cmake/epa_build/ragel/CMakeLists.txt trunk/cmake/epa_build/shapelib/CMakeLists.txt trunk/cmake/epa_build/subversion/CMakeLists.txt trunk/cmake/epa_build/swig/CMakeLists.txt trunk/cmake/epa_build/tcl/CMakeLists.txt trunk/cmake/epa_build/wxwidgets/CMakeLists.txt trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt trunk/cmake/epa_build/yelp-tools/CMakeLists.txt trunk/cmake/epa_build/yelp-xsl/CMakeLists.txt Added Paths: ----------- trunk/cmake/epa_build/iwidgets4.0/ trunk/cmake/epa_build/iwidgets4.0/CMakeLists.txt trunk/cmake/epa_build/plplot_lite/ trunk/cmake/epa_build/plplot_lite/CMakeLists.txt Modified: trunk/cmake/epa_build/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/CMakeLists.txt 2013-12-05 09:20:44 UTC (rev 12811) +++ trunk/cmake/epa_build/CMakeLists.txt 2013-12-05 10:48:48 UTC (rev 12812) @@ -351,21 +351,22 @@ endforeach(executable ${executables_LIST}) set(subdirectories_LIST - ##cmake - #pkg-config + cmake + pkg-config ##subversion - #swig + swig tk # itcl version 4 is integrated into tcl # itk version 4 is not integrated into tk (or tcl). - #itk + itk + # iwidgets (version 4.1.0) + iwidgets # itcl version 3 is an independent project - #itcl3 + itcl3 # itk version 3 is an independent project - #itk3 - # iwidgets subdirectory contains build configurations for both - # iwidgets (version 4.1) and iwidgets4.0 (version 4.0). - #iwidgets + itk3 + # iwidgets (version 4.0.1) + iwidgets4.0 ) else(BUILD_THE_BUILDTOOLS) # List of all configurations. Order doesn't matter because multiple @@ -373,6 +374,7 @@ set(subdirectories_LIST ndiff #plplot + #plplot_lite #wxwidgets #pango ) @@ -384,11 +386,17 @@ message(STATUS "DEBUG: subdirectories_LIST = ${subdirectories_LIST}") -# Use while loop because each add_subdirectory command can generate others +# Using a while loop seems obvious here +# because each add_subdirectory command can generate others # so that several elements of the subdirectories list could be knocked -# off per loop iteration. +# off per loop iteration. However, that is not a good idea in +# practice because it turns out that fatal CMake errors don't stop the +# loop (which I presume is a bug) so it just continues indefinitely. Ugh! +# So use foreach RANGE loop instead with maximum number of loop +# interations equal to LENGTH_subdirectories_LIST and break out of it +# early if necessary if the subdirectories_LIST has become exhausted. list(LENGTH subdirectories_LIST LENGTH_subdirectories_LIST) -while(LENGTH_subdirectories_LIST GREATER 0) +foreach(idummy RANGE ${LENGTH_subdirectories_LIST}) list(GET subdirectories_LIST 0 subdirectory) # This uses EPA_started_subdirectories_LIST internally to check for # circular dependencies, and updates EPA_finished_subdirectories_LIST @@ -399,7 +407,10 @@ message(STATUS "DEBUG: visited ${subdirectory}") message(STATUS "DEBUG: subdirectories_LIST = ${subdirectories_LIST}") list(LENGTH subdirectories_LIST LENGTH_subdirectories_LIST) -endwhile(LENGTH_subdirectories_LIST GREATER 0) + if(LENGTH_subdirectories_LIST EQUAL 0) + break() + endif(LENGTH_subdirectories_LIST EQUAL 0) +endforeach(idummy RANGE ${LENGTH_subdirectories_LIST}) add_custom_target(build_all) get_property(build_targets_LIST GLOBAL PROPERTY EPA_build_targets_LIST) Modified: trunk/cmake/epa_build/cairo/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/cairo/CMakeLists.txt 2013-12-05 09:20:44 UTC (rev 12811) +++ trunk/cmake/epa_build/cairo/CMakeLists.txt 2013-12-05 10:48:48 UTC (rev 12812) @@ -1,4 +1,7 @@ # cairo/CMakeLists.txt + +# Configure the build of cairo. + # 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 @@ -6,10 +9,6 @@ # 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. -# The CMake logic in this file should be exercised by the -# add_subdirectory command that is exercised in the top-level -# CMakeLists.txt file to configure the build of cairo. - # Copyright (C) 2013 Alan W. Irwin # This file is free software; you can redistribute it and/or @@ -26,12 +25,6 @@ # License along with this file; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# The top-level CMakeLists.txt file that adds this subdirectory should -# have run "include(ExternalProject)" and set the EPA_BASE variable (and -# corresponding directory property) as well as various EPA variables -# used below that configure how the External_Project functions -# operate. - set(PACKAGE cairo) # List of dependencies (most of which are build tools) which should be @@ -39,66 +32,44 @@ set(ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft ${extra_ignored_dependencies_list}) set(dependencies_LIST fontconfig;gtk-doc;pixman;pkg-config) -# Remove dependencies that should be ignored. -if(dependencies_LIST) - list(REMOVE_ITEM dependencies_LIST ${ignored_dependencies_LIST}) -endif(dependencies_LIST) -# Add this subdirectory to the list of subdirectories that have -# already been processed by the top-level CMakeLists.txt logic. -list(APPEND EPA_processed_subdirectories_LIST ${PACKAGE}) +# 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(dependencies_targets) -foreach(build_configuration ${dependencies_LIST}) - if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - # Add to the list of subdirectories that must be processed by the - # top-level CMakeLists.txt logic. - list(APPEND EPA_needed_subdirectories_LIST ${build_configuration}) - list(APPEND dependencies_targets build_${build_configuration}) - else(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - message(STATUS "Warning: A build_configuration for ${build_configuration} does not exist so it is assumed this dependency of ${PACKAGE} has been installed on your platform by means other than epa_build.") - endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) -endforeach(build_configuration ${dependences_LIST}) - -list(APPEND EPA_build_target_LIST build_${PACKAGE}) - -# Propagate list changes to parent scope. -set(EPA_build_target_LIST ${EPA_build_target_LIST} PARENT_SCOPE) -set(EPA_processed_subdirectories_LIST ${EPA_processed_subdirectories_LIST} PARENT_SCOPE) -set(EPA_needed_subdirectories_LIST ${EPA_needed_subdirectories_LIST} PARENT_SCOPE) - -# Data that is related to downloads. -set(URL http://cairographics.org/releases/cairo-1.12.14.tar.xz) -set(DOWNLOAD_HASH_TYPE SHA256) -set(DOWNLOAD_HASH 96d0d1e3f9b74d2ca3469ff187c5e5f25649b1ad35cf06f4f3a83847dff4ac13) - -# Data that is related to the PATH that must be used. if(MSYS_PLATFORM) - determine_msys_path(EPA_PATH "${EPA_PATH}") - # Must have all elements of env command in MSYS platform form - determine_msys_path(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + set(CFLAGS "$ENV{CFLAGS}") else(MSYS_PLATFORM) - set(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + set(CFLAGS "$ENV{CFLAGS}") endif(MSYS_PLATFORM) -#message(STATUS "modified EPA_PATH for ${PACKAGE} = ${EPA_PATH}") -set(SET_CXXFLAGS "CXXFLAGS=$ENV{CXXFLAGS}") +set(CXXFLAGS "$ENV{CXXFLAGS}") # Drop -fvisibility=hidden since that option does not work for a # number of software packages that are configured automatically using # this template. -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CFLAGS "${SET_CFLAGS}") -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CXXFLAGS "${SET_CXXFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CFLAGS "${CFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CXXFLAGS "${CXXFLAGS}") +# Data that is related to downloads. +set(URL http://cairographics.org/releases/cairo-1.12.14.tar.xz) +set(DOWNLOAD_HASH_TYPE SHA256) +set(DOWNLOAD_HASH 96d0d1e3f9b74d2ca3469ff187c5e5f25649b1ad35cf06f4f3a83847dff4ac13) + ExternalProject_Add( build_${PACKAGE} DEPENDS ${dependencies_targets} URL ${URL} URL_HASH ${DOWNLOAD_HASH_TYPE}=${DOWNLOAD_HASH} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${SET_CFLAGS} ${SET_CXXFLAGS} ${source_PATH}/${EPA_CONFIGURE_COMMAND} --enable-xlib - BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${BP_PARALLEL_MAKE_COMMAND} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} "CFLAGS=${CFLAGS}" "CXXFLAGS=${CXXFLAGS}" ${source_PATH}/${EPA_CONFIGURE_COMMAND} --enable-xlib + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_MAKE_COMMAND} BUILD_IN_SOURCE OFF - INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${BP_PARALLEL_MAKE_COMMAND} install + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_MAKE_COMMAND} install ) Modified: trunk/cmake/epa_build/cmake/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/cmake/CMakeLists.txt 2013-12-05 09:20:44 UTC (rev 12811) +++ trunk/cmake/epa_build/cmake/CMakeLists.txt 2013-12-05 10:48:48 UTC (rev 12812) @@ -1,7 +1,7 @@ # cmake/CMakeLists.txt -# This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build of cmake. +# Configure the build of cmake. + # Copyright (C) 2013 Alan W. Irwin # This file is free software; you can redistribute it and/or @@ -18,47 +18,59 @@ # License along with this file; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# The top-level CMakeLists.txt file that includes this file should -# have run "include(ExternalProject)" and set EPA_BASE variable (and -# corresponding directory property) as well as various EPA variables -# used below that configure how the External_Project functions -# operate. +# An external curl library (see --system-curl option below) is +# required to build cmake because the cmake internal version of curl +# is quite lame (no openssl capability, for example). Also, we +# haven't yet implemented a curl epa_build configuration because that +# is going to be somewhat difficult due to the large number of +# dependencies. See +# http://www.linuxfromscratch.org/blfs/view/svn/basicnet/curl.html for +# a list of those dependencies. There is some hope because +# some of those are optional so I may tackle the curl epa_build configuration +# sooner rather than later. +# For now we are okay on Linux because we can just use the system curl +# library for the cmake build, but on Windows it is unlikely curl is +# installed so we will be unable to build a powerful cmake (until a +# curl epa_build configuration is available). Note, if the Windows +# build of cmake fails, then either install curl (if that is possible) +# or use the workaround of downloading a binary download from kitware +# that apparently does use a powerful Windows version of curl. + set(PACKAGE cmake) -# Protect against configuring a build twice in one CMake call -if(configured) - return() -endif(configured) -set(configured ON) +# List of dependencies (most of which are build tools) which should be +# ignored. +set(ignored_dependencies_LIST curl ${extra_ignored_dependencies_list}) +set(dependencies_LIST curl) + +# 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}") + # Data that is related to downloads. -set(EPA_CMAKE_DIR v2.8) -set(EPA_CMAKE_VERSION 2.8.11.1) -set(URL http://www.cmake.org/files/${EPA_CMAKE_DIR}/cmake-${EPA_CMAKE_VERSION}.tar.gz) -set(URL_MD5 df5324a3b203373a9e0a04b924281a43) +set(DIR v2.8) +set(VERSION 2.8.12.1) +set(URL http://www.cmake.org/files/${DIR}/cmake-${VERSION}.tar.gz) +set(DOWNLOAD_HASH_TYPE MD5) +set(DOWNLOAD_HASH 9d38cd4e2c94c3cea97d0e2924814acc) -# Data that is related to the PATH that must be used. -if(MSYS_PLATFORM) - set(EPA_PATH_NODLL "${EPA_PATH}") - set(EPA_PATH "${EPA_BASE}/Build/build_${PACKAGE}/dll;${EPA_PATH_NODLL}") - determine_msys_path(EPA_PATH "${EPA_PATH}") - determine_msys_path(${PACKAGE}_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") -else(MSYS_PLATFORM) - set(${PACKAGE}_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") -endif(MSYS_PLATFORM) -#message(STATUS "modified EPA_PATH for ${PACKAGE} = ${EPA_PATH}") - ExternalProject_Add( build_${PACKAGE} URL ${URL} - URL_MD5 ${URL_MD5} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} CFLAGS=-O3 CXXFLAGS=-O3 ${SH_EXECUTABLE} ${EPA_BASE}/Source/build_${PACKAGE}/bootstrap --prefix=${${PACKAGE}_INSTALL_PREFIX} --parallel=8 + URL_HASH ${DOWNLOAD_HASH_TYPE}=${DOWNLOAD_HASH} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} "CFLAGS=${CFLAGS}" "CXXFLAGS=${CXXFLAGS}" ${SH_EXECUTABLE} ${EPA_BASE}/Source/build_${PACKAGE}/bootstrap --prefix=${EPA_CMAKE_INSTALL_PREFIX} --parallel=8 --verbose --system-curl --no-qt-gui BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_BUILD_COMMAND} INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_BUILD_COMMAND} install ) - -list(APPEND build_target_LIST build_${PACKAGE}) -# Restore EPA_PATH to original state. -set(EPA_PATH "${EPA_ORIGINAL_NATIVE_PATH}") -#message(STATUS "${PACKAGE} restored original EPA_PATH = ${EPA_PATH}") Modified: trunk/cmake/epa_build/docbook-xml/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/docbook-xml/CMakeLists.txt 2013-12-05 09:20:44 UTC (rev 12811) +++ trunk/cmake/epa_build/docbook-xml/CMakeLists.txt 2013-12-05 10:48:48 UTC (rev 12812) @@ -1,7 +1,7 @@ # docbook-xml/CMakeLists.txt -# This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build of docbook-xml. +# Configure the build of docbook-xml. + # Copyright (C) 2013 Alan W. Irwin # This file is free software; you can redistribute it and/or @@ -18,65 +18,36 @@ # License along with this file; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# The top-level CMakeLists.txt file that includes this file should -# have run "include(ExternalProject)" and set EPA_BASE variable (and -# corresponding directory property) as well as various EPA variables -# used below that configure how the External_Project functions -# operate. -# Protect against configuring a build twice in one CMake call -if(docbook-xml_configured) - return() -endif(docbook-xml_configured) -set(docbook-xml_configured ON) +set(PACKAGE docbook-xml) # List of dependencies (most of which are build tools) which should be # ignored. -set(EPA_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft ${extra_ignored_dependencies_list}) +set(ignored_dependencies_LIST ${extra_ignored_dependencies_list}) -set(docbook-xml_dependencies_LIST libxml2) -# Remove dependencies that should be ignored. -if(docbook-xml_dependencies_LIST) - list(REMOVE_ITEM docbook-xml_dependencies_LIST ${EPA_ignored_dependencies_LIST}) -endif(docbook-xml_dependencies_LIST) +set(dependencies_LIST libxml2) -set(docbook-xml_dependencies_targets) -foreach(build_configuration ${docbook-xml_dependencies_LIST}) - if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - include(${build_configuration}/CMakeLists.txt) - list(APPEND docbook-xml_dependencies_targets build_${build_configuration}) - else(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - message(STATUS "Warning: A build_configuration for ${build_configuration} does not exist so it is assumed this dependency of docbook-xml has been installed another way.") - endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) -endforeach(build_configuration ${docbook-xml_dependences_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 + ) -# This can be safely done only after above includes. -set(PACKAGE docbook-xml) - # Data that is related to downloads. set(URL http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip) -set(${PACKAGE}_DOWNLOAD_HASH_TYPE MD5) -set(${PACKAGE}_DOWNLOAD_HASH 03083e288e87a7e829e437358da7ef9e) +set(DOWNLOAD_HASH_TYPE MD5) +set(DOWNLOAD_HASH 03083e288e87a7e829e437358da7ef9e) -# Data that is related to the PATH that must be used. -if(MSYS_PLATFORM) - #set(EPA_PATH_NODLL "${EPA_PATH}") - #set(EPA_PATH "${EPA_BASE}/Build/build_${PACKAGE}/dll;${EPA_PATH_NODLL}") - determine_msys_path(EPA_PATH "${EPA_PATH}") - # Must have all elements of env command in MSYS platform form - determine_msys_path(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(${PACKAGE}_SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") -else(MSYS_PLATFORM) - set(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(${PACKAGE}_SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") -endif(MSYS_PLATFORM) -#message(STATUS "modified EPA_PATH for ${PACKAGE} = ${EPA_PATH}") - ExternalProject_Add( build_${PACKAGE} - DEPENDS ${${PACKAGE}_dependencies_targets} + DEPENDS ${dependencies_targets} URL ${URL} - URL_HASH ${${PACKAGE}_DOWNLOAD_HASH_TYPE}=${${PACKAGE}_DOWNLOAD_HASH} + URL_HASH ${DOWNLOAD_HASH_TYPE}=${DOWNLOAD_HASH} CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_CMAKE_COMMAND} ${EPA_BASE}/Source/build_${PACKAGE} BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_BUILD_COMMAND} BUILD_IN_SOURCE OFF @@ -95,8 +66,3 @@ ${CMAKE_SOURCE_DIR}/${PACKAGE}/${PACKAGE}_CMakeLists.txt APPEND ) - -list(APPEND build_target_LIST build_${PACKAGE}) -# Restore EPA_PATH to original state. -set(EPA_PATH "${EPA_ORIGINAL_NATIVE_PATH}") -#message(STATUS "${PACKAGE} restored original EPA_PATH = ${EPA_PATH}") Modified: trunk/cmake/epa_build/docbook-xsl/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/docbook-xsl/CMakeLists.txt 2013-12-05 09:20:44 UTC (rev 12811) +++ trunk/cmake/epa_build/docbook-xsl/CMakeLists.txt 2013-12-05 10:48:48 UTC (rev 12812) @@ -1,7 +1,7 @@ # docbook-xsl/CMakeLists.txt -# This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build of docbook-xsl. +# Configure the build of docbook-xsl. + # Copyright (C) 2013 Alan W. Irwin # This file is free software; you can redistribute it and/or @@ -18,65 +18,35 @@ # License along with this file; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# The top-level CMakeLists.txt file that includes this file should -# have run "include(ExternalProject)" and set EPA_BASE variable (and -# corresponding directory property) as well as various EPA variables -# used below that configure how the External_Project functions -# operate. +set(PACKAGE docbook-xsl) -# Protect against configuring a build twice in one CMake call -if(docbook-xsl_configured) - return() -endif(docbook-xsl_configured) -set(docbook-xsl_configured ON) - # List of dependencies (most of which are build tools) which should be # ignored. -set(EPA_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft ${extra_ignored_dependencies_list}) +set(ignored_dependencies_LIST ${extra_ignored_dependencies_list}) -set(docbook-xsl_dependencies_LIST libxml2) -# Remove dependencies that should be ignored. -if(docbook-xsl_dependencies_LIST) - list(REMOVE_ITEM docbook-xsl_dependencies_LIST ${EPA_ignored_dependencies_LIST}) -endif(docbook-xsl_dependencies_LIST) +set(dependencies_LIST libxml2) -set(docbook-xsl_dependencies_targets) -foreach(build_configuration ${docbook-xsl_dependencies_LIST}) - if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - include(${build_configuration}/CMakeLists.txt) - list(APPEND docbook-xsl_dependencies_targets build_${build_configuration}) - else(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - message(STATUS "Warning: A build_configuration for ${build_configuration} does not exist so it is assumed this dependency of docbook-xsl has been installed another way.") - endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) -endforeach(build_configuration ${docbook-xsl_dependences_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 + ) -# This can be safely done only after above includes. -set(PACKAGE docbook-xsl) - # Data that is related to downloads. -set(URL http://downloads.sourceforge.net/docbook/docbook-xsl-1.78.1.tar.bz2) -set(${PACKAGE}_DOWNLOAD_HASH_TYPE MD5) -set(${PACKAGE}_DOWNLOAD_HASH 6dd0f89131cc35bf4f2ed105a1c17771) +set(URL http://downloads.sourceforge.net/docbook/docbook-xsl-1.78.1.tar.bz2) +set(DOWNLOAD_HASH_TYPE MD5) +set(DOWNLOAD_HASH 6dd0f89131cc35bf4f2ed105a1c17771) -# Data that is related to the PATH that must be used. -if(MSYS_PLATFORM) - #set(EPA_PATH_NODLL "${EPA_PATH}") - #set(EPA_PATH "${EPA_BASE}/Build/build_${PACKAGE}/dll;${EPA_PATH_NODLL}") - determine_msys_path(EPA_PATH "${EPA_PATH}") - # Must have all elements of env command in MSYS platform form - determine_msys_path(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(${PACKAGE}_SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") -else(MSYS_PLATFORM) - set(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(${PACKAGE}_SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") -endif(MSYS_PLATFORM) -#message(STATUS "modified EPA_PATH for ${PACKAGE} = ${EPA_PATH}") - ExternalProject_Add( build_${PACKAGE} - DEPENDS ${${PACKAGE}_dependencies_targets} + DEPENDS ${dependencies_targets} URL ${URL} - URL_HASH ${${PACKAGE}_DOWNLOAD_HASH_TYPE}=${${PACKAGE}_DOWNLOAD_HASH} + URL_HASH ${DOWNLOAD_HASH_TYPE}=${DOWNLOAD_HASH} CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_CMAKE_COMMAND} ${EPA_BASE}/Source/build_${PACKAGE} BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_BUILD_COMMAND} BUILD_IN_SOURCE OFF @@ -95,8 +65,3 @@ ${CMAKE_SOURCE_DIR}/${PACKAGE}/${PACKAGE}_CMakeLists.txt APPEND ) - -list(APPEND build_target_LIST build_${PACKAGE}) -# Restore EPA_PATH to original state. -set(EPA_PATH "${EPA_ORIGINAL_NATIVE_PATH}") -#message(STATUS "${PACKAGE} restored original EPA_PATH = ${EPA_PATH}") Modified: trunk/cmake/epa_build/epa_CMakeLists.txt.in =================================================================== --- trunk/cmake/epa_build/epa_CMakeLists.txt.in 2013-12-05 09:20:44 UTC (rev 12811) +++ trunk/cmake/epa_build/epa_CMakeLists.txt.in 2013-12-05 10:48:48 UTC (rev 12812) @@ -1,4 +1,7 @@ # @package@/CMakeLists.txt + +# Configure the build of @package@. + # 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 @@ -6,10 +9,6 @@ # 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. -# The CMake logic in this file should be exercised by the -# add_subdirectory command that is exercised in the top-level -# CMakeLists.txt file to configure the build of @package@. - # Copyright (C) 2013 Alan W. Irwin # This file is free software; you can redistribute it and/or @@ -26,12 +25,6 @@ # License along with this file; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# The top-level CMakeLists.txt file that adds this subdirectory should -# have run "include(ExternalProject)" and set the EPA_BASE variable (and -# corresponding directory property) as well as various EPA variables -# used below that configure how the External_Project functions -# operate. - set(PACKAGE @package@) # List of dependencies (most of which are build tools) which should be @@ -39,65 +32,43 @@ set(ignored_dependencies_LIST @ignored_dependencies_LIST@ ${extra_ignored_dependencies_list}) set(dependencies_LIST @dependencies@) -# Remove dependencies that should be ignored. -if(dependencies_LIST) - list(REMOVE_ITEM dependencies_LIST ${ignored_dependencies_LIST}) -endif(dependencies_LIST) -# Add this subdirectory to the list of subdirectories that have -# already been processed by the top-level CMakeLists.txt logic. -list(APPEND EPA_processed_subdirectories_LIST ${PACKAGE}) +# 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(dependencies_targets) -foreach(build_configuration ${dependencies_LIST}) - if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - # Add to the list of subdirectories that must be processed by the - # top-level CMakeLists.txt logic. - list(APPEND EPA_needed_subdirectories_LIST ${build_configuration}) - list(APPEND dependencies_targets build_${build_configuration}) - else(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - message(STATUS "Warning: A build_configuration for ${build_configuration} does not exist so it is assumed this dependency of ${PACKAGE} has been installed on your platform by means other than epa_build.") - endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) -endforeach(build_configuration ${dependences_LIST}) - -list(APPEND EPA_build_target_LIST build_${PACKAGE}) - -# Propagate list changes to parent scope. -set(EPA_build_target_LIST ${EPA_build_target_LIST} PARENT_SCOPE) -set(EPA_processed_subdirectories_LIST ${EPA_processed_subdirectories_LIST} PARENT_SCOPE) -set(EPA_needed_subdirectories_LIST ${EPA_needed_subdirectories_LIST} PARENT_SCOPE) - -# Data that is related to downloads. -set(URL @download_href@) -set(DOWNLOAD_HASH_TYPE @download_hash_type@) -set(DOWNLOAD_HASH @download_hash@) - -# Data that is related to the PATH that must be used. if(MSYS_PLATFORM) - determine_msys_path(EPA_PATH "${EPA_PATH}") - # Must have all elements of env command in MSYS platform form - determine_msys_path(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=@MSYS_EXTRA_CFLAGS@$ENV{CFLAGS}") + set(CFLAGS "@MSYS_EXTRA_CFLAGS@$ENV{CFLAGS}") else(MSYS_PLATFORM) - set(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=@UNIX_EXTRA_CFLAGS@$ENV{CFLAGS}") + set(CFLAGS "@UNIX_EXTRA_CFLAGS@$ENV{CFLAGS}") endif(MSYS_PLATFORM) -#message(STATUS "modified EPA_PATH for ${PACKAGE} = ${EPA_PATH}") -set(SET_CXXFLAGS "CXXFLAGS=$ENV{CXXFLAGS}") +set(CXXFLAGS "$ENV{CXXFLAGS}") # Drop -fvisibility=hidden since that option does not work for a # number of software packages that are configured automatically using # this template. -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CFLAGS "${SET_CFLAGS}") -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CXXFLAGS "${SET_CXXFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CFLAGS "${CFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CXXFLAGS "${CXXFLAGS}") +# Data that is related to downloads. +set(URL @download_href@) +set(DOWNLOAD_HASH_TYPE @download_hash_type@) +set(DOWNLOAD_HASH @download_hash@) + ExternalProject_Add( build_${PACKAGE} DEPENDS ${dependencies_targets} URL ${URL} URL_HASH ${DOWNLOAD_HASH_TYPE}=${DOWNLOAD_HASH} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${SET_CFLAGS} ${SET_CXXFLAGS} ${source_PATH}/${EPA_CONFIGURE_COMMAND} @config_arguments@ + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} "CFLAGS=${CFLAGS}" "CXXFLAGS=${CXXFLAGS}" ${source_PATH}/${EPA_CONFIGURE_COMMAND} @config_arguments@ BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${@BUILD_COMMAND@} @make_arguments@ BUILD_IN_SOURCE @BUILD_IN_SOURCE@ INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${@BUILD_COMMAND@} @make_arguments@ install Modified: trunk/cmake/epa_build/fontconfig/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/fontconfig/CMakeLists.txt 2013-12-05 09:20:44 UTC (rev 12811) +++ trunk/cmake/epa_build/fontconfig/CMakeLists.txt 2013-12-05 10:48:48 UTC (rev 12812) @@ -1,4 +1,7 @@ # fontconfig/CMakeLists.txt + +# Configure the build of fontconfig. + # 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 @@ -6,10 +9,6 @@ # 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. -# The CMake logic in this file should be exercised by the -# add_subdirectory command that is exercised in the top-level -# CMakeLists.txt file to configure the build of fontconfig. - # Copyright (C) 2013 Alan W. Irwin # This file is free software; you can redistribute it and/or @@ -26,12 +25,6 @@ # License along with this file; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# The top-level CMakeLists.txt file that adds this subdirectory should -# have run "include(ExternalProject)" and set the EPA_BASE variable (and -# corresponding directory property) as well as various EPA variables -# used below that configure how the External_Project functions -# operate. - set(PACKAGE fontconfig) # List of dependencies (most of which are build tools) which should be @@ -39,66 +32,44 @@ set(ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft ${extra_ignored_dependencies_list}) set(dependencies_LIST gperf) -# Remove dependencies that should be ignored. -if(dependencies_LIST) - list(REMOVE_ITEM dependencies_LIST ${ignored_dependencies_LIST}) -endif(dependencies_LIST) -# Add this subdirectory to the list of subdirectories that have -# already been processed by the top-level CMakeLists.txt logic. -list(APPEND EPA_processed_subdirectories_LIST ${PACKAGE}) +# 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(dependencies_targets) -foreach(build_configuration ${dependencies_LIST}) - if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - # Add to the list of subdirectories that must be processed by the - # top-level CMakeLists.txt logic. - list(APPEND EPA_needed_subdirectories_LIST ${build_configuration}) - list(APPEND dependencies_targets build_${build_configuration}) - else(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - message(STATUS "Warning: A build_configuration for ${build_configuration} does not exist so it is assumed this dependency of ${PACKAGE} has been installed on your platform by means other than epa_build.") - endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) -endforeach(build_configuration ${dependences_LIST}) - -list(APPEND EPA_build_target_LIST build_${PACKAGE}) - -# Propagate list changes to parent scope. -set(EPA_build_target_LIST ${EPA_build_target_LIST} PARENT_SCOPE) -set(EPA_processed_subdirectories_LIST ${EPA_processed_subdirectories_LIST} PARENT_SCOPE) -set(EPA_needed_subdirectories_LIST ${EPA_needed_subdirectories_LIST} PARENT_SCOPE) - -# Data that is related to downloads. -set(URL http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.10.93.tar.bz2) -set(DOWNLOAD_HASH_TYPE SHA256) -set(DOWNLOAD_HASH ea901f278848829ed9937d76fb0ce63ad362d7d5b9e75aa6a6b78bfef42e529c) - -# Data that is related to the PATH that must be used. if(MSYS_PLATFORM) - determine_msys_path(EPA_PATH "${EPA_PATH}") - # Must have all elements of env command in MSYS platform form - determine_msys_path(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + set(CFLAGS "$ENV{CFLAGS}") else(MSYS_PLATFORM) - set(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + set(CFLAGS "$ENV{CFLAGS}") endif(MSYS_PLATFORM) -#message(STATUS "modified EPA_PATH for ${PACKAGE} = ${EPA_PATH}") -set(SET_CXXFLAGS "CXXFLAGS=$ENV{CXXFLAGS}") +set(CXXFLAGS "$ENV{CXXFLAGS}") # Drop -fvisibility=hidden since that option does not work for a # number of software packages that are configured automatically using # this template. -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CFLAGS "${SET_CFLAGS}") -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CXXFLAGS "${SET_CXXFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CFLAGS "${CFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CXXFLAGS "${CXXFLAGS}") +# Data that is related to downloads. +set(URL http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.10.93.tar.bz2) +set(DOWNLOAD_HASH_TYPE SHA256) +set(DOWNLOAD_HASH ea901f278848829ed9937d76fb0ce63ad362d7d5b9e75aa6a6b78bfef42e529c) + ExternalProject_Add( build_${PACKAGE} DEPENDS ${dependencies_targets} URL ${URL} URL_HASH ${DOWNLOAD_HASH_TYPE}=${DOWNLOAD_HASH} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${SET_CFLAGS} ${SET_CXXFLAGS} ${source_PATH}/${EPA_CONFIGURE_COMMAND} --disable-docs - BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${BP_PARALLEL_MAKE_COMMAND} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} "CFLAGS=${CFLAGS}" "CXXFLAGS=${CXXFLAGS}" ${source_PATH}/${EPA_CONFIGURE_COMMAND} --disable-docs + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_MAKE_COMMAND} BUILD_IN_SOURCE OFF - INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${BP_PARALLEL_MAKE_COMMAND} install + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_MAKE_COMMAND} install ) Modified: trunk/cmake/epa_build/glib/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/glib/CMakeLists.txt 2013-12-05 09:20:44 UTC (rev 12811) +++ trunk/cmake/epa_build/glib/CMakeLists.txt 2013-12-05 10:48:48 UTC (rev 12812) @@ -1,4 +1,7 @@ # glib/CMakeLists.txt + +# Configure the build of glib. + # 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 @@ -6,10 +9,6 @@ # 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. -# The CMake logic in this file should be exercised by the -# add_subdirectory command that is exercised in the top-level -# CMakeLists.txt file to configure the build of glib. - # Copyright (C) 2013 Alan W. Irwin # This file is free software; you can redistribute it and/or @@ -26,12 +25,6 @@ # License along with this file; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# The top-level CMakeLists.txt file that adds this subdirectory should -# have run "include(ExternalProject)" and set the EPA_BASE variable (and -# corresponding directory property) as well as various EPA variables -# used below that configure how the External_Project functions -# operate. - set(PACKAGE glib) # List of dependencies (most of which are build tools) which should be @@ -39,66 +32,44 @@ set(ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft ${extra_ignored_dependencies_list}) set(dependencies_LIST gtk-doc;libffi) -# Remove dependencies that should be ignored. -if(dependencies_LIST) - list(REMOVE_ITEM dependencies_LIST ${ignored_dependencies_LIST}) -endif(dependencies_LIST) -# Add this subdirectory to the list of subdirectories that have -# already been processed by the top-level CMakeLists.txt logic. -list(APPEND EPA_processed_subdirectories_LIST ${PACKAGE}) +# 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(dependencies_targets) -foreach(build_configuration ${dependencies_LIST}) - if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - # Add to the list of subdirectories that must be processed by the - # top-level CMakeLists.txt logic. - list(APPEND EPA_needed_subdirectories_LIST ${build_configuration}) - list(APPEND dependencies_targets build_${build_configuration}) - else(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - message(STATUS "Warning: A build_configuration for ${build_configuration} does not exist so it is assumed this dependency of ${PACKAGE} has been installed on your platform by means other than epa_build.") - endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) -endforeach(build_configuration ${dependences_LIST}) - -list(APPEND EPA_build_target_LIST build_${PACKAGE}) - -# Propagate list changes to parent scope. -set(EPA_build_target_LIST ${EPA_build_target_LIST} PARENT_SCOPE) -set(EPA_processed_subdirectories_LIST ${EPA_processed_subdirectories_LIST} PARENT_SCOPE) -set(EPA_needed_subdirectories_LIST ${EPA_needed_subdirectories_LIST} PARENT_SCOPE) - -# Data that is related to downloads. -set(URL http://download.gnome.org/sources/glib/2.37/glib-2.37.4.tar.xz) -set(DOWNLOAD_HASH_TYPE SHA256) -set(DOWNLOAD_HASH 7e76a32e6ea0ced118aa64f87e46cdf5c3e90527f1f0eb93eabe42a03cebd1e7) - -# Data that is related to the PATH that must be used. if(MSYS_PLATFORM) - determine_msys_path(EPA_PATH "${EPA_PATH}") - # Must have all elements of env command in MSYS platform form - determine_msys_path(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=-march=native $ENV{CFLAGS}") + set(CFLAGS "-march=native $ENV{CFLAGS}") else(MSYS_PLATFORM) - set(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + set(CFLAGS "$ENV{CFLAGS}") endif(MSYS_PLATFORM) -#message(STATUS "modified EPA_PATH for ${PACKAGE} = ${EPA_PATH}") -set(SET_CXXFLAGS "CXXFLAGS=$ENV{CXXFLAGS}") +set(CXXFLAGS "$ENV{CXXFLAGS}") # Drop -fvisibility=hidden since that option does not work for a # number of software packages that are configured automatically using # this template. -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CFLAGS "${SET_CFLAGS}") -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CXXFLAGS "${SET_CXXFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CFLAGS "${CFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CXXFLAGS "${CXXFLAGS}") +# Data that is related to downloads. +set(URL http://download.gnome.org/sources/glib/2.37/glib-2.37.4.tar.xz) +set(DOWNLOAD_HASH_TYPE SHA256) +set(DOWNLOAD_HASH 7e76a32e6ea0ced118aa64f87e46cdf5c3e90527f1f0eb93eabe42a03cebd1e7) + ExternalProject_Add( build_${PACKAGE} DEPENDS ${dependencies_targets} URL ${URL} URL_HASH ${DOWNLOAD_HASH_TYPE}=${DOWNLOAD_HASH} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${SET_CFLAGS} ${SET_CXXFLAGS} ${source_PATH}/${EPA_CONFIGURE_COMMAND} --enable-installed-tests - BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${BP_PARALLEL_MAKE_COMMAND} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} "CFLAGS=${CFLAGS}" "CXXFLAGS=${CXXFLAGS}" ${source_PATH}/${EPA_CONFIGURE_COMMAND} --enable-installed-tests + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_MAKE_COMMAND} BUILD_IN_SOURCE OFF - INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${BP_PARALLEL_MAKE_COMMAND} install + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_MAKE_COMMAND} install ) Modified: trunk/cmake/epa_build/gobject-introspection/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/gobject-introspection/CMakeLists.txt 2013-12-05 09:20:44 UTC (rev 12811) +++ trunk/cmake/epa_build/gobject-introspection/CMakeLists.txt 2013-12-05 10:48:48 UTC (rev 12812) @@ -1,4 +1,7 @@ # gobject-introspection/CMakeLists.txt + +# Configure the build of gobject-introspection. + # 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 @@ -6,10 +9,6 @@ # 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. -# The CMake logic in this file should be exercised by the -# add_subdirectory command that is exercised in the top-level -# CMakeLists.txt file to configure the build of gobject-introspection. - # Copyright (C) 2013 Alan W. Irwin # This file is free software; you can redistribute it and/or @@ -26,12 +25,6 @@ # License along with this file; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# The top-level CMakeLists.txt file that adds this subdirectory should -# have run "include(ExternalProject)" and set the EPA_BASE variable (and -# corresponding directory property) as well as various EPA variables -# used below that configure how the External_Project functions -# operate. - set(PACKAGE gobject-introspection) # List of dependencies (most of which are build tools) which should be @@ -39,66 +32,44 @@ set(ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft ${extra_ignored_dependencies_list}) set(dependencies_LIST bison;cairo;flex;glib;python2-devel) -# Remove dependencies that should be ignored. -if(dependencies_LIST) - list(REMOVE_ITEM dependencies_LIST ${ignored_dependencies_LIST}) -endif(dependencies_LIST) -# Add this subdirectory to the list of subdirectories that have -# already been processed by the top-level CMakeLists.txt logic. -list(APPEND EPA_processed_subdirectories_LIST ${PACKAGE}) +# 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(dependencies_targets) -foreach(build_configuration ${dependencies_LIST}) - if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - # Add to the list of subdirectories that must be processed by the - # top-level CMakeLists.txt logic. - list(APPEND EPA_needed_subdirectories_LIST ${build_configuration}) - list(APPEND dependencies_targets build_${build_configuration}) - else(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - message(STATUS "Warning: A build_configuration for ${build_configuration} does not exist so it is assumed this dependency of ${PACKAGE} has been installed on your platform by means other than epa_build.") - endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) -endforeach(build_configuration ${dependences_LIST}) - -list(APPEND EPA_build_target_LIST build_${PACKAGE}) - -# Propagate list changes to parent scope. -set(EPA_build_target_LIST ${EPA_build_target_LIST} PARENT_SCOPE) -set(EPA_processed_subdirectories_LIST ${EPA_processed_subdirectories_LIST} PARENT_SCOPE) -set(EPA_needed_subdirectories_LIST ${EPA_needed_subdirectories_LIST} PARENT_SCOPE) - -# Data that is related to downloads. -set(URL http://download.gnome.org/sources/gobject-introspection/1.37/gobject-introspection-1.37.4.tar.xz) -set(DOWNLOAD_HASH_TYPE SHA256) -set(DOWNLOAD_HASH 431dae811626d18f1f02ff3842f291cc21b3c5e4a47b24d52d46e25e93036591) - -# Data that is related to the PATH that must be used. if(MSYS_PLATFORM) - determine_msys_path(EPA_PATH "${EPA_PATH}") - # Must have all elements of env command in MSYS platform form - determine_msys_path(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + set(CFLAGS "$ENV{CFLAGS}") else(MSYS_PLATFORM) - set(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + set(CFLAGS "$ENV{CFLAGS}") endif(MSYS_PLATFORM) -#message(STATUS "modified EPA_PATH for ${PACKAGE} = ${EPA_PATH}") -set(SET_CXXFLAGS "CXXFLAGS=$ENV{CXXFLAGS}") +set(CXXFLAGS "$ENV{CXXFLAGS}") # Drop -fvisibility=hidden since that option does not work for a # number of software packages that are configured automatically using # this template. -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CFLAGS "${SET_CFLAGS}") -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CXXFLAGS "${SET_CXXFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CFLAGS "${CFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CXXFLAGS "${CXXFLAGS}") +# Data that is related to downloads. +set(URL http://download.gnome.org/sources/gobject-introspection/1.37/gobject-introspection-1.37.4.tar.xz) +set(DOWNLOAD_HASH_TYPE SHA256) +set(DOWNLOAD_HASH 431dae811626d18f1f02ff3842f291cc21b3c5e4a47b24d52d46e25e93036591) + ExternalProject_Add( build_${PACKAGE} DEPENDS ${dependencies_targets} URL ${URL} URL_HASH ${DOWNLOAD_HASH_TYPE}=${DOWNLOAD_HASH} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${SET_CFLAGS} ${SET_CXXFLAGS} ${source_PATH}/${EPA_CONFIGURE_COMMAND} - BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${BP_PARALLEL_MAKE_COMMAND} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} "CFLAGS=${CFLAGS}" "CXXFLAGS=${CXXFLAGS}" ${source_PATH}/${EPA_CONFIGURE_COMMAND} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_MAKE_COMMAND} BUILD_IN_SOURCE OFF - INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${BP_PARALLEL_MAKE_COMMAND} install + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_MAKE_COMMAND} install ) Modified: trunk/cmake/epa_build/gperf/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/gperf/CMakeLists.txt 2013-12-05 09:20:44 UTC (rev 12811) +++ trunk/cmake/epa_build/gperf/CMakeLists.txt 2013-12-05 10:48:48 UTC (rev 12812) @@ -1,4 +1,7 @@ # gperf/CMakeLists.txt + +# Configure the build of gperf. + # 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 @@ -6,10 +9,6 @@ # 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. -# The CMake logic in this file should be exercised by the -# add_subdirectory command that is exercised in the top-level -# CMakeLists.txt file to configure the build of gperf. - # Copyright (C) 2013 Alan W. Irwin # This file is free software; you can redistribute it and/or @@ -26,12 +25,6 @@ # License along with this file; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# The top-level CMakeLists.txt file that adds this subdirectory should -# have run "include(ExternalProject)" and set the EPA_BASE variable (and -# corresponding directory property) as well as various EPA variables -# used below that configure how the External_Project functions -# operate. - set(PACKAGE gperf) # List of dependencies (most of which are build tools) which should be @@ -39,66 +32,44 @@ set(ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft ${extra_ignored_dependencies_list}) set(dependencies_LIST ) -# Remove dependencies that should be ignored. -if(dependencies_LIST) - list(REMOVE_ITEM dependencies_LIST ${ignored_dependencies_LIST}) -endif(dependencies_LIST) -# Add this subdirectory to the list of subdirectories that have -# already been processed by the top-level CMakeLists.txt logic. -list(APPEND EPA_processed_subdirectories_LIST ${PACKAGE}) +# 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(dependencies_targets) -foreach(build_configuration ${dependencies_LIST}) - if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - # Add to the list of subdirectories that must be processed by the - # top-level CMakeLists.txt logic. - list(APPEND EPA_needed_subdirectories_LIST ${build_configuration}) - list(APPEND dependencies_targets build_${build_configuration}) - else(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - message(STATUS "Warning: A build_configuration for ${build_configuration} does not exist so it is assumed this dependency of ${PACKAGE} has been installed on your platform by means other than epa_build.") - endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) -endforeach(build_configuration ${dependences_LIST}) - -list(APPEND EPA_build_target_LIST build_${PACKAGE}) - -# Propagate list changes to parent scope. -set(EPA_build_target_LIST ${EPA_build_target_LIST} PARENT_SCOPE) -set(EPA_processed_subdirectories_LIST ${EPA_processed_subdirectories_LIST} PARENT_SCOPE) -set(EPA_needed_subdirectories_LIST ${EPA_needed_subdirectories_LIST} PARENT_SCOPE) - -# Data that is related to downloads. -set(URL http://ftp.gnu.org/gnu/gperf/gperf-3.0.4.tar.gz) -set(DOWNLOAD_HASH_TYPE SHA256) -set(DOWNLOAD_HASH 767112a204407e62dbc3106647cf839ed544f3cf5d0f0523aaa2508623aad63e) - -# Data that is related to the PATH that must be used. if(MSYS_PLATFORM) - determine_msys_path(EPA_PATH "${EPA_PATH}") - # Must have all elements of env command in MSYS platform form - determine_msys_path(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + set(CFLAGS "$ENV{CFLAGS}") else(MSYS_PLATFORM) - set(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + set(CFLAGS "$ENV{CFLAGS}") endif(MSYS_PLATFORM) -#message(STATUS "modified EPA_PATH for ${PACKAGE} = ${EPA_PATH}") -set(SET_CXXFLAGS "CXXFLAGS=$ENV{CXXFLAGS}") +set(CXXFLAGS "$ENV{CXXFLAGS}") # Drop -fvisibility=hidden since that option does not work for a # number of software packages that are configured automatically using # this template. -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CFLAGS "${SET_CFLAGS}") -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CXXFLAGS "${SET_CXXFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CFLAGS "${CFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CXXFLAGS "${CXXFLAGS}") +# Data that is related to downloads. +set(URL http://ftp.gnu.org/gnu/gperf/gperf-3.0.4.tar.gz) +set(DOWNLOAD_HASH_TYPE SHA256) +set(DOWNLOAD_HASH 767112a204407e62dbc3106647cf839ed544f3cf5d0f0523aaa2508623aad63e) + ExternalProject_Add( build_${PACKAGE} DEPENDS ${dependencies_targets} URL ${URL} URL_HASH ${DOWNLOAD_HASH_TYPE}=${DOWNLOAD_HASH} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${SET_CFLAGS} ${SET_CXXFLAGS} ${source_PATH}/${EPA_CONFIGURE_COMMAND} - BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${BP_PARALLEL_MAKE_COMMAND} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} "CFLAGS=${CFLAGS}" "CXXFLAGS=${CXXFLAGS}" ${source_PATH}/${EPA_CONFIGURE_COMMAND} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_MAKE_COMMAND} BUILD_IN_SOURCE OFF - INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${BP_PARALLEL_MAKE_COMMAND} install + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARALLEL_MAKE_COMMAND} install ) Modified: trunk/cmake/epa_build/gtk-doc/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/gtk-doc/CMakeLists.txt 2013-12-05 09:20:44 UTC (rev 12811) +++ trunk/cmake/epa_build/gtk-doc/CMakeLists.txt 2013-12-05 10:48:48 UTC (rev 12812) @@ -1,4 +1,7 @@ # gtk-doc/CMakeLists.txt + +# Configure the build of gtk-doc. + # 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 @@ -6,10 +9,6 @@ # 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. -# The CMake logic in this file should be exercised by the -# add_subdirectory command that is exercised in the top-level -# CMakeLists.txt file to configure the build of gtk-doc. - # Copyright (C) 2013 Alan W. Irwin # This file is free software; you can redistribute it and/or @@ -26,12 +25,6 @@ # License along with this file; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# The top-level CMakeLists.txt file that adds this subdirectory should -# have run "include(ExternalProject)" and set the EPA_BASE variable (and -# corresponding directory property) as well as various EPA variables -# used below that configure how the External_Project functions -# operate. - set(PACKAGE gtk-doc) # List of dependencies (most of which are build tools) which should be @@ -39,66 +32,44 @@ set(ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft ${extra_ignored_dependencies_list}) set(dependencies_LIST docbook-xml;docbook-xsl;libxslt;yelp-tools) -# Remove dependencies that should be ignored. -if(dependencies_LIST) - list(REMOVE_ITEM dependencies_LIST ${ignored_dependencies_LIST}) -endif(dependencies_LIST) -# Add this subdirectory to the list of subdirectories that have -# already been processed by the top-level CMakeLists.txt logic. -list(APPEND EPA_processed_subdirectories_LIST ${PACKAGE}) +# 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(dependencies_targets) -foreach(build_configuration ${dependencies_LIST}) - if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - # Add to the list of subdirectories that must be processed by the - # top-level CMakeLists.txt logic. - list(APPEND EPA_needed_subdirectories_LIST ${build_configuration}) - list(APPEND dependencies_targets build_${build_configuration}) - else(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) - message(STATUS "Warning: A build_configuration for ${build_configuration} does not exist so it is assumed this dependency of ${PACKAGE} has been installed on your platform by means other than epa_build.") - endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/CMakeLists.txt) -endforeach(build_configuration ${dependences_LIST}) - -list(APPEND EPA_build_target_LIST build_${PACKAGE}) - -# Propagate list changes to parent scope. -set(EPA_build_target_LIST ${EPA_build_target_LIST} PARENT_SCOPE) -set(EPA_processed_subdirectories_LIST ${EPA_processed_subdirectories_LIST} PARENT_SCOPE) -set(EPA_needed_subdirectories_LIST ${EPA_needed_subdirectories_LIST} PARENT_SCOPE) - -# Data that is related to downloads. -set(URL http://download.gnome.org/sources/gtk-doc/1.19/gtk-doc-1.19.tar.xz) -set(DOWNLOAD_HASH_TYPE SHA256) -set(DOWNLOAD_HASH 27df247fa828433a9390368e2088cc22f954f2ce1f255ddbd12ab6e027b12e68) - -# Data that is related to the PATH that must be used. if(MSYS_PLATFORM) - determine_msys_path(EPA_PATH "${EPA_PATH}") - # Must have all elements of env command in MSYS platform form - determine_msys_path(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + set(CFLAGS "$ENV{CFLAGS}") else(MSYS_PLATFORM) - set(source_PATH "${EPA_BASE}/Source/build_${PACKAGE}") - set(SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") + set(CFLAGS "$ENV{CFLAGS}") endif(MSYS_PLATFORM) -#message(STATUS "modified EPA_PATH for ${PACKAGE} = ${EPA_PATH}") -set(SET_CXXFLAGS "CXXFLAGS=$ENV{CXXFLAGS}") +set(CXXFLAGS "$ENV{CXXFLAGS}") # Drop -fvisibility=hidden since that option does not work for a # number of software packages that are configured automatically using # this template. -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CFLAGS "${SET_CFLAGS}") -string(REGEX REPLACE "-fvisibility=hidden" "" SET_CXXFLAGS "${SET_CXXFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CFLAGS "${CFLAGS}") +string(REGEX REPLACE "-fvisibility=hidden" "" CXXFLAGS "${CXXFLAGS}") +# Data that is related to downloads. +set(URL http://download.gnome.org/sources/gtk-doc/1.19/gtk-doc-1.19.tar.xz) +set(DOWNLOAD_HASH_TYPE SHA256) +set(DOWNLOAD_HASH 27df247fa828433a9390368e2088cc22f954f2ce1f255ddbd12ab6e027b12e68) + ExternalProject_Add( build_${PACKAGE} DEPENDS ${dependencies_targets} URL ${URL} URL_HASH ${DOWNLOAD_HASH_TYPE}=${DOWNLOAD_HASH} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${SET_CFLAGS} ${SET_CXXFLAGS} ${source_PATH}/${EPA_CONFIGURE_COMMAND} --with-xml-catalog=${CMAKE_INSTALL_PREFIX}/etc/xml/catalog - BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${BP_PARALLEL_MAKE_COMMAND} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} "CFLAGS=${CFLAGS}" "CXXFLAGS=${CXXFLAGS}" ${source_PATH}/${EPA_CONFIGURE_COMMAND} --with-xml-catalog=${CMAKE_INSTALL_PREFIX}/etc/xml/catalog + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${EPA_PATH} ${EPA_PARA... [truncated message content] |