From: <ai...@us...> - 2013-07-31 19:32:50
|
Revision: 12456 http://sourceforge.net/p/plplot/code/12456 Author: airwin Date: 2013-07-31 19:32:46 +0000 (Wed, 31 Jul 2013) Log Message: ----------- Add (automatically generated) build configurations for libxslt and libxml2. Tested by: Alan W. Irwin <ai...@us...> using the build_libxslt target on Linux. Modified Paths: -------------- trunk/cmake/build_projects/gtk_packages_add.xml Added Paths: ----------- trunk/cmake/build_projects/libxml2/ trunk/cmake/build_projects/libxml2/bp.cmake trunk/cmake/build_projects/libxslt/ trunk/cmake/build_projects/libxslt/bp.cmake Modified: trunk/cmake/build_projects/gtk_packages_add.xml =================================================================== --- trunk/cmake/build_projects/gtk_packages_add.xml 2013-07-31 19:29:47 UTC (rev 12455) +++ trunk/cmake/build_projects/gtk_packages_add.xml 2013-07-31 19:32:46 UTC (rev 12456) @@ -1,4 +1,9 @@ <?xml version="1.0" ?> +<!-- +Most of these data derived from http://www.linuxfromscratch.org, a +wonderful site that provides fundamental build information for a lot +of different free software packages. +--> <moduleset> <autotools id="libffi"> <branch hash="sha256:1dddde1400c3bcb7749d398071af88c3e4754058d2d4c0b3696c2f82dc5cf11c" module="libffi/libffi-3.0.13.tar.gz" repo="ftp://sourceware.org/pub/" size="845747" version="3.0.13"/> @@ -10,7 +15,19 @@ <pkg-config/> <branch hash="sha256:1d812f9f60215099355f5c13c6f06d7db1135c99f34ff03535b71b64435125fd" module="releases/pixman-0.30.0.tar.gz" repo="http://cairographics.org/" size="801692" version="0.30.0"/> </autotools> - <autotools id="gperf"> + <autotools id="gperf"> <branch hash="sha256:767112a204407e62dbc3106647cf839ed544f3cf5d0f0523aaa2508623aad63e" module="gnu/gperf/gperf-3.0.4.tar.gz" repo="http://ftp.gnu.org/" size="983500" version="3.0.4"/> </autotools> +<!-- without these python shenanigans the python components of libxml2 are +installed with the system prefix rather than desired special prefix +--> + <autotools id="libxml2" makeargs="PYTHON_SITE_PACKAGES=${BP_CMAKE_INSTALL_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"> + <branch hash="md5:9c0cfef285d5c4a5c80d00904ddab380" module="sources/libxml2-2.9.1.tar.gz" repo="http://xmlsoft.org/" size="983500" version="2.9.1"/> + </autotools> + <autotools id="libxslt"> + <branch hash="md5:9667bf6f9310b957254fdcf6596600b7" module="sources/libxslt-1.1.28.tar.gz" repo="http://xmlsoft.org/" size="983500" version="1.1.28"/> + <dependencies> + <dep package="libxml2"/> + </dependencies> + </autotools> </moduleset> Added: trunk/cmake/build_projects/libxml2/bp.cmake =================================================================== --- trunk/cmake/build_projects/libxml2/bp.cmake (rev 0) +++ trunk/cmake/build_projects/libxml2/bp.cmake 2013-07-31 19:32:46 UTC (rev 12456) @@ -0,0 +1,89 @@ +# libxml2/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of libxml2. + +# 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(libxml2_configured) + return() +endif(libxml2_configured) +set(libxml2_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(libxml2_dependencies_LIST ) +# Remove dependencies that should be ignored. +if(libxml2_dependencies_LIST) + list(REMOVE_ITEM libxml2_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(libxml2_dependencies_LIST) + +set(libxml2_dependencies_targets) +foreach(build_configuration ${libxml2_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND libxml2_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 libxml2 has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${libxml2_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE libxml2) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://xmlsoft.org/sources/libxml2-2.9.1.tar.gz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE MD5) +set(${BP_PACKAGE}_DOWNLOAD_HASH 9c0cfef285d5c4a5c80d00904ddab380) + +# 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} PYTHON_SITE_PACKAGES=${BP_CMAKE_INSTALL_PREFIX}/lib/python${PYTHON_VERSION}/site-packages + BUILD_IN_SOURCE OFF + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} PYTHON_SITE_PACKAGES=${BP_CMAKE_INSTALL_PREFIX}/lib/python${PYTHON_VERSION}/site-packages 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}") Added: trunk/cmake/build_projects/libxslt/bp.cmake =================================================================== --- trunk/cmake/build_projects/libxslt/bp.cmake (rev 0) +++ trunk/cmake/build_projects/libxslt/bp.cmake 2013-07-31 19:32:46 UTC (rev 12456) @@ -0,0 +1,89 @@ +# libxslt/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of libxslt. + +# 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(libxslt_configured) + return() +endif(libxslt_configured) +set(libxslt_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(libxslt_dependencies_LIST libxml2) +# Remove dependencies that should be ignored. +if(libxslt_dependencies_LIST) + list(REMOVE_ITEM libxslt_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(libxslt_dependencies_LIST) + +set(libxslt_dependencies_targets) +foreach(build_configuration ${libxslt_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND libxslt_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 libxslt has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${libxslt_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE libxslt) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://xmlsoft.org/sources/libxslt-1.1.28.tar.gz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE MD5) +set(${BP_PACKAGE}_DOWNLOAD_HASH 9667bf6f9310b957254fdcf6596600b7) + +# 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}") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |