From: <ai...@us...> - 2013-07-31 20:31:17
|
Revision: 12459 http://sourceforge.net/p/plplot/code/12459 Author: airwin Date: 2013-07-31 20:31:09 +0000 (Wed, 31 Jul 2013) Log Message: ----------- Add ragel build configuration. This is the last required build configuration (other than obvious build tools and libXft) that the jhbuild configuration data indicates is required for pango and all its dependencies. So in theory the build of pango should also work on MSYS, but undoubtedly there are other dependencies that the jhbuild configuration files currently fail to identify. Tested by Alan W. Irwin <ai...@us...> by running the update_added_packages.sh script to automatically generate/regenerate all added build_configurations (which now includes ragel) and afterward running the build_harfbuzz target (which indirectly runs the build_ragel target) on Linux. Modified Paths: -------------- trunk/cmake/build_projects/gtk_packages_add.xml trunk/cmake/build_projects/update_added_packages.sh Added Paths: ----------- trunk/cmake/build_projects/ragel/ trunk/cmake/build_projects/ragel/bp.cmake Modified: trunk/cmake/build_projects/gtk_packages_add.xml =================================================================== --- trunk/cmake/build_projects/gtk_packages_add.xml 2013-07-31 19:37:14 UTC (rev 12458) +++ trunk/cmake/build_projects/gtk_packages_add.xml 2013-07-31 20:31:09 UTC (rev 12459) @@ -30,4 +30,7 @@ <dep package="libxml2"/> </dependencies> </autotools> + <autotools id="ragel"> + <branch hash="sha256:dd7f7d22f3a58147379bda61334d341c2caa0caf9f71897e3e4ec05c8f398764" module="ragel/ragel-6.8.tar.gz" repo="http://www.complang.org/" size="1211146" version="6.8"/> + </autotools> </moduleset> Added: trunk/cmake/build_projects/ragel/bp.cmake =================================================================== --- trunk/cmake/build_projects/ragel/bp.cmake (rev 0) +++ trunk/cmake/build_projects/ragel/bp.cmake 2013-07-31 20:31:09 UTC (rev 12459) @@ -0,0 +1,89 @@ +# ragel/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of ragel. + +# 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 + +# The top-level CMakeLists.txt file that includes this file should +# have run "include(ExternalProject)" and set EP_BASE variable (and +# corresponding directory property) as well as various BP variables +# used below that configure how the External_Project functions +# operate. + +# Protect against configuring a build twice in one CMake call +if(ragel_configured) + return() +endif(ragel_configured) +set(ragel_configured ON) + +# List of dependencies (most of which are build tools) which should be +# ignored. +set(BP_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft) + +set(ragel_dependencies_LIST ) +# Remove dependencies that should be ignored. +if(ragel_dependencies_LIST) + list(REMOVE_ITEM ragel_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(ragel_dependencies_LIST) + +set(ragel_dependencies_targets) +foreach(build_configuration ${ragel_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND ragel_dependencies_targets build_${build_configuration}) + else(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + message(STATUS "Warning: A build_configuration for ${build_configuration} does not exist so it is assumed this dependency of ragel has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${ragel_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE ragel) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://www.complang.org/ragel/ragel-6.8.tar.gz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH dd7f7d22f3a58147379bda61334d341c2caa0caf9f71897e3e4ec05c8f398764) + +# Data that is related to the PATH that must be used. +if(MSYS_PLATFORM) + #set(BP_PATH_NODLL "${BP_PATH}") + #set(BP_PATH "${EP_BASE}/Build/build_${BP_PACKAGE}/dll;${BP_PATH_NODLL}") + determine_msys_path(BP_PATH "${BP_PATH}") + # Must have all elements of env command in MSYS platform form + determine_msys_path(source_PATH "${EP_BASE}/Source/build_${BP_PACKAGE}") + set(${BP_PACKAGE}_SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") +else(MSYS_PLATFORM) + set(source_PATH "${EP_BASE}/Source/build_${BP_PACKAGE}") + set(${BP_PACKAGE}_SET_CFLAGS "CFLAGS=$ENV{CFLAGS}") +endif(MSYS_PLATFORM) +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + +ExternalProject_Add( + build_${BP_PACKAGE} + DEPENDS ${${BP_PACKAGE}_dependencies_targets} + URL ${${BP_PACKAGE}_URL} + URL_HASH ${${BP_PACKAGE}_DOWNLOAD_HASH_TYPE}=${${BP_PACKAGE}_DOWNLOAD_HASH} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${${BP_PACKAGE}_SET_CFLAGS} ${source_PATH}/${BP_CONFIGURE_COMMAND} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} + BUILD_IN_SOURCE OFF + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} install + ) + +list(APPEND build_target_LIST build_${BP_PACKAGE}) +# Restore BP_PATH to original state. +set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") +#message(STATUS "${BP_PACKAGE} restored original BP_PATH = ${BP_PATH}") Modified: trunk/cmake/build_projects/update_added_packages.sh =================================================================== --- trunk/cmake/build_projects/update_added_packages.sh 2013-07-31 19:37:14 UTC (rev 12458) +++ trunk/cmake/build_projects/update_added_packages.sh 2013-07-31 20:31:09 UTC (rev 12459) @@ -5,7 +5,7 @@ rm -f add_packages.data touch add_packages.data # Ignore libxml2 since that is sucked in by the libxslt dependency. -PACKAGE_LIST="libffi intltool pixman gperf libxslt" +PACKAGE_LIST="libffi intltool pixman gperf libxslt ragel" for PACKAGE in $PACKAGE_LIST; do ./gtk_transform.py $PACKAGE 1 <gtk_packages_add.xml 1>> add_packages.data done This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |