From: <ai...@us...> - 2013-06-02 08:48:45
|
Revision: 12351 http://sourceforge.net/p/plplot/code/12351 Author: airwin Date: 2013-06-02 08:48:42 +0000 (Sun, 02 Jun 2013) Log Message: ----------- Initial version of "build projects" project which configures a build of shapelib with no issues on either Linux or MinGW/MSYS/Wine and which also includes an initial version of the build configuration for ndiff which needs to be updated to be consistent with the style used for shapelib. These files currently configured to refer to local tarballs or zip files on my system to avoid exessive downloads while debugging these configurations, but these should be changed to the download versions as soon as these configurations mature a bit to the point where others will want to use them. Added Paths: ----------- trunk/cmake/build_projects/CMakeLists.txt trunk/cmake/build_projects/ndiff/ep.cmake trunk/cmake/build_projects/shapelib/ep.cmake Added: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt (rev 0) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-06-02 08:48:42 UTC (rev 12351) @@ -0,0 +1,74 @@ +# Top-level CMakeLists.txt file for a project that simply builds +# and installs external projects using epa.cmake include fragments +# representing the build and test instructions for several different projects. + +# 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 + +project(build_projects NONE) + +message(STATUS "CMake version = ${CMAKE_VERSION}") +message(STATUS "CMAKE_SYSTEM = ${CMAKE_SYSTEM}") +message(STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}") + +cmake_minimum_required(VERSION 2.8.10.2 FATAL_ERROR) + +# Use modified version of ExternalProject where cmake -E touch has +# been replaced with the touch command (to work around cmake bug 14020) +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}) +include(ExternalProject) + +set(EP_BASE ${CMAKE_BINARY_DIR}/build_projects) +message(STATUS "EP_BASE = ${EP_BASE}") +set_directory_properties(PROPERTIES EP_BASE ${EP_BASE}) + +# Set build_projects variables to control builds in general + +if(NOT ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" AND NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles") + message(FATAL_ERROR "This project only works with either the \"Unix Makefiles\" or \"MSYS Makefiles\" generators") +endif(NOT ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" AND NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles") + +# The non-parallel versions are for build systems that +# apparently have race conditions for parallel builds. +set(BP_PARALLEL_BUILD_COMMAND make -j4) +set(BP_NON_PARALLEL_MAKE_COMMAND make) +set(BP_PARALLEL_CTEST_COMMAND ctest -j4) +set(BP_NON_PARALLEL_CTEST_COMMAND ctest) +set(BP_ORIGINAL_NATIVE_PATH "$ENV{PATH}") +set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") + +if(MSYS) + # Useful function to convert Windows list of semicolon-delimited + # paths to the equivalent list of MSYS paths (exactly like the + # colon-delimited Unix list of paths except the driver letters are + # specified as the initial one-character component of each of the + # paths). to MSYS path (like Unix path but with the drive letters + # as single character initial component of the path). For example, + # this function will will transform the Windows list of paths, + # "z:\whatever_z;c:\whatever_c" to /z/whatever_z:/c/whatever_c. + function(determine_msys_path MSYS_PATH NATIVE_PATH) + #message(STATUS "NATIVE_PATH = ${NATIVE_PATH}") + string(REGEX REPLACE "^\([a-zA-z]\):" "/\\1" PATH "${NATIVE_PATH}") + string(REGEX REPLACE ";\([a-zA-z]\):" ";/\\1" PATH "${PATH}") + string(REGEX REPLACE ";" ":" PATH "${PATH}") + file(TO_CMAKE_PATH "${PATH}" PATH) + #message(STATUS "MSYS_PATH = ${PATH}") + set(${MSYS_PATH} ${PATH} PARENT_SCOPE) + endfunction(determine_msys_path) +endif(MSYS) + +include(shapelib/ep.cmake) +include(ndiff/ep.cmake) Property changes on: trunk/cmake/build_projects/CMakeLists.txt ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: trunk/cmake/build_projects/ndiff/ep.cmake =================================================================== --- trunk/cmake/build_projects/ndiff/ep.cmake (rev 0) +++ trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-02 08:48:42 UTC (rev 12351) @@ -0,0 +1,68 @@ +# ndiff/ep.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build and test of ndiff. + +# 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. + +set(ndiff_URL ftp://ftp.math.utah.edu/pub/misc/ndiff-2.00.tar.gz) +# TEMPORARY local version for debugging +set(ndiff_URL /home/software/ndiff/ndiff-2.00.tar.gz) + +# The MD5 value below is correct for the gpg --verified version +# Use URL_MD5 because ExternalProject_Add doesn't deal with gpg --version. +# In any case, gpg is not available for the MSYS case. +set(ndiff_URL_MD5 885548b4dc26e72c5455bebb5ba6c16d) + +ExternalProject_Add( + build_ndiff + URL ${ndiff_URL} + URL_MD5 ${ndiff_URL_MD5} + CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${EP_BASE}/Install/build_ndiff + BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} + TEST_BEFORE_INSTALL ON + TEST_COMMAND ${BP_PARALLEL_CTEST_COMMAND} + INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install + STEP_TARGETS download update_build_system configure build install test + ) + +# Use custom command approach to generate real file dependencies +# rather than time stamps alone. +add_custom_command( + OUTPUT + ${EP_BASE}/Source/build_ndiff/CMakeLists.txt + ${EP_BASE}/Source/build_ndiff/config.h.cmake + COMMAND cp -f ${CMAKE_SOURCE_DIR}/ndiff/CMakeLists.txt ${CMAKE_SOURCE_DIR}/ndiff/config.h.cmake ${EP_BASE}/Source/build_ndiff + COMMENT "Updating of ndiff build system" + DEPENDS + ${CMAKE_SOURCE_DIR}/ndiff/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/ndiff/config.h.cmake + ) +ExternalProject_Add_Step(build_ndiff update_build_system + COMMENT "Updated ndiff build system" + DEPENDEES download + DEPENDERS configure + DEPENDS + ${EP_BASE}/Source/build_ndiff/CMakeLists.txt + ${EP_BASE}/Source/build_ndiff/config.h.cmake + ALWAYS OFF + ) Added: trunk/cmake/build_projects/shapelib/ep.cmake =================================================================== --- trunk/cmake/build_projects/shapelib/ep.cmake (rev 0) +++ trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-02 08:48:42 UTC (rev 12351) @@ -0,0 +1,108 @@ +# shapelib/ep.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build and test of shapelib. + +# 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. + +if(MSYS) + set(BP_PATH_NODLL "${BP_PATH}") + set(BP_PATH "${EP_BASE}/Build/build_shapelib/dll;${BP_PATH_NODLL}") + determine_msys_path(BP_PATH "${BP_PATH}") +endif(MSYS) +#message(STATUS "modified BP_PATH for shapelib = ${BP_PATH}") + +set(shapelib_URL http://download.osgeo.org/shapelib/shapelib-1.3.0.tar.gz) +# TEMPORARY local version for debugging +set(shapelib_URL /home/software/shapelib/shapelib-1.3.0.tar.gz) + +set(shapelib_URL_MD5 2ff7d0b21d4b7506b452524492795f77) + +set(shape_eg_data_URL http://dl.maptools.org/dl/shapelib/shape_eg_data.zip) +# TEMPORARY local version for debugging +set(shape_eg_data_URL file:///home/software/shapelib/eg_data/shape_eg_data.zip) + +set(shape_eg_data_URL_MD5 36208abd5d34c5c80101d8b214109f0d) + +# Must implement command as a list to get -G quotes propagated correctly. +set(BP_CONFIGURE_COMMAND + env + PATH=${BP_PATH} + cmake + "-G${CMAKE_GENERATOR}" + -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX} + -DEG_DATA:PATH=${EP_BASE}/Source/build_shapelib/eg_data + ${EP_BASE}/Source/build_shapelib + ) + +ExternalProject_Add( + build_shapelib + URL ${shapelib_URL} + URL_MD5 ${shapelib_URL_MD5} + CONFIGURE_COMMAND env PATH=${BP_PATH} cmake "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX} -DEG_DATA:PATH=${EP_BASE}/Source/build_shapelib/eg_data + ${EP_BASE}/Source/build_shapelib + BUILD_COMMAND env PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + TEST_BEFORE_INSTALL ON + TEST_COMMAND env PATH=${BP_PATH} ${BP_PARALLEL_CTEST_COMMAND} + INSTALL_COMMAND env PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install + STEP_TARGETS download update_build_system get_eg_data configure build install test + ) + +# Use custom command approach to allow more than one COMMAND and/or +# generate real file dependencies rather than time stamps alone. +add_custom_command( + OUTPUT + ${EP_BASE}/Source/build_shapelib/CMakeLists.txt + COMMAND cp -f ${CMAKE_SOURCE_DIR}/shapelib/CMakeLists.txt ${EP_BASE}/Source/build_shapelib + COMMENT "Updating of shapelib build system" + DEPENDS + ${CMAKE_SOURCE_DIR}/shapelib/CMakeLists.txt + ) +ExternalProject_Add_Step(build_shapelib update_build_system + COMMENT "Updated shapelib build system" + DEPENDEES download + DEPENDERS configure + DEPENDS + ${EP_BASE}/Source/build_shapelib/CMakeLists.txt + ALWAYS OFF + ) + +add_custom_command( + OUTPUT + ${EP_BASE}/Download/build_shapelib/shape_eg_data.zip + COMMAND ${CMAKE_COMMAND} -DURL:STRING=${shape_eg_data_URL} -DFILE:FILEPATH=${EP_BASE}/Download/build_shapelib/shape_eg_data.zip -DMD5:STRING=${shape_eg_data_URL_MD5} -P ${CMAKE_SOURCE_DIR}/download_check.cmake + COMMAND ${CMAKE_COMMAND} -E remove_directory ${EP_BASE}/Source/build_shapelib/eg_data + COMMAND unzip -q ${EP_BASE}/Download/build_shapelib/shape_eg_data.zip -d ${EP_BASE}/Source/build_shapelib/eg_data + COMMENT "getting eg_data for shapelib test" + ) +ExternalProject_Add_Step(build_shapelib get_eg_data + COMMENT "got eg_data for shapelib test" + DEPENDEES download + DEPENDERS configure + DEPENDS + ${EP_BASE}/Download/build_shapelib/shape_eg_data.zip + ALWAYS OFF + ) + +# Restore BP_PATH to original state. +set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") +#message(STATUS "shapelib restored original BP_PATH = ${BP_PATH}") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-06-03 14:27:08
|
Revision: 12354 http://sourceforge.net/p/plplot/code/12354 Author: airwin Date: 2013-06-03 14:27:05 +0000 (Mon, 03 Jun 2013) Log Message: ----------- Many small tweaks (most stylistic such as implementing an overall cmake command that propagates the install prefix and generator to all the different CMake-based project builds or establishing the general way to handle the PATH environment variable which is to modify then restore to the original form for each separate project). Tested by: Alan W. Irwin <ai...@us...>. Both shapelib and ndiff configure, build, test, and install cleanly for MinGW/MSYS/Wine. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt trunk/cmake/build_projects/ndiff/ep.cmake trunk/cmake/build_projects/shapelib/ep.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-06-02 20:07:07 UTC (rev 12353) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-06-03 14:27:05 UTC (rev 12354) @@ -41,6 +41,10 @@ message(FATAL_ERROR "This project only works with either the \"Unix Makefiles\" or \"MSYS Makefiles\" generators") endif(NOT ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" AND NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles") +# Propagate the overall CMake generator and install prefix to all CMake-based +# software project builds. +set(BP_CMAKE_COMMAND cmake "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}) + # The non-parallel versions are for build systems that # apparently have race conditions for parallel builds. set(BP_PARALLEL_BUILD_COMMAND make -j4) Modified: trunk/cmake/build_projects/ndiff/ep.cmake =================================================================== --- trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-02 20:07:07 UTC (rev 12353) +++ trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-03 14:27:05 UTC (rev 12354) @@ -24,6 +24,7 @@ # used below that configure how the External_Project functions # operate. +# Data that is related to downloads. set(ndiff_URL ftp://ftp.math.utah.edu/pub/misc/ndiff-2.00.tar.gz) # TEMPORARY local version for debugging set(ndiff_URL /home/software/ndiff/ndiff-2.00.tar.gz) @@ -33,11 +34,19 @@ # In any case, gpg is not available for the MSYS case. set(ndiff_URL_MD5 885548b4dc26e72c5455bebb5ba6c16d) +# Data that is related to the PATH that must be used. +if(MSYS) + #set(BP_PATH_NODLL "${BP_PATH}") + #set(BP_PATH "${EP_BASE}/Build/build_ndiff/dll;${BP_PATH_NODLL}") + determine_msys_path(BP_PATH "${BP_PATH}") +endif(MSYS) +#message(STATUS "modified BP_PATH for ndiff = ${BP_PATH}") + ExternalProject_Add( build_ndiff URL ${ndiff_URL} URL_MD5 ${ndiff_URL_MD5} - CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${EP_BASE}/Install/build_ndiff + CONFIGURE_COMMAND env PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_ndiff BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} TEST_BEFORE_INSTALL ON TEST_COMMAND ${BP_PARALLEL_CTEST_COMMAND} @@ -66,3 +75,7 @@ ${EP_BASE}/Source/build_ndiff/config.h.cmake ALWAYS OFF ) + +# Restore BP_PATH to original state. +set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") +#message(STATUS "shapelib restored original BP_PATH = ${BP_PATH}") Modified: trunk/cmake/build_projects/shapelib/ep.cmake =================================================================== --- trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-02 20:07:07 UTC (rev 12353) +++ trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-03 14:27:05 UTC (rev 12354) @@ -24,42 +24,30 @@ # used below that configure how the External_Project functions # operate. -if(MSYS) - set(BP_PATH_NODLL "${BP_PATH}") - set(BP_PATH "${EP_BASE}/Build/build_shapelib/dll;${BP_PATH_NODLL}") - determine_msys_path(BP_PATH "${BP_PATH}") -endif(MSYS) -#message(STATUS "modified BP_PATH for shapelib = ${BP_PATH}") - +# Data that is related to downloads. set(shapelib_URL http://download.osgeo.org/shapelib/shapelib-1.3.0.tar.gz) # TEMPORARY local version for debugging set(shapelib_URL /home/software/shapelib/shapelib-1.3.0.tar.gz) - set(shapelib_URL_MD5 2ff7d0b21d4b7506b452524492795f77) set(shape_eg_data_URL http://dl.maptools.org/dl/shapelib/shape_eg_data.zip) # TEMPORARY local version for debugging set(shape_eg_data_URL file:///home/software/shapelib/eg_data/shape_eg_data.zip) - set(shape_eg_data_URL_MD5 36208abd5d34c5c80101d8b214109f0d) -# Must implement command as a list to get -G quotes propagated correctly. -set(BP_CONFIGURE_COMMAND - env - PATH=${BP_PATH} - cmake - "-G${CMAKE_GENERATOR}" - -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX} - -DEG_DATA:PATH=${EP_BASE}/Source/build_shapelib/eg_data - ${EP_BASE}/Source/build_shapelib - ) +# Data that is related to the PATH that must be used. +if(MSYS) + set(BP_PATH_NODLL "${BP_PATH}") + set(BP_PATH "${EP_BASE}/Build/build_shapelib/dll;${BP_PATH_NODLL}") + determine_msys_path(BP_PATH "${BP_PATH}") +endif(MSYS) +#message(STATUS "modified BP_PATH for shapelib = ${BP_PATH}") ExternalProject_Add( build_shapelib URL ${shapelib_URL} URL_MD5 ${shapelib_URL_MD5} - CONFIGURE_COMMAND env PATH=${BP_PATH} cmake "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX} -DEG_DATA:PATH=${EP_BASE}/Source/build_shapelib/eg_data - ${EP_BASE}/Source/build_shapelib + CONFIGURE_COMMAND env PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DEG_DATA:PATH=${EP_BASE}/Source/build_shapelib/eg_data ${EP_BASE}/Source/build_shapelib BUILD_COMMAND env PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} TEST_BEFORE_INSTALL ON TEST_COMMAND env PATH=${BP_PATH} ${BP_PARALLEL_CTEST_COMMAND} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-06-03 16:18:27
|
Revision: 12357 http://sourceforge.net/p/plplot/code/12357 Author: airwin Date: 2013-06-03 16:18:24 +0000 (Mon, 03 Jun 2013) Log Message: ----------- Add ExternalProject build configuration of libqhull to "Build Projects" project. Tested by: Alan W. Irwin <ai...@us...> for both Linux and MinGW/MSYS/Wine platforms using build_libqhull, build_shapelib, and build_ndiff targets. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt Added Paths: ----------- trunk/cmake/build_projects/libqhull/ep.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-06-03 16:10:54 UTC (rev 12356) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-06-03 16:18:24 UTC (rev 12357) @@ -76,3 +76,4 @@ include(shapelib/ep.cmake) include(ndiff/ep.cmake) +include(libqhull/ep.cmake) Added: trunk/cmake/build_projects/libqhull/ep.cmake =================================================================== --- trunk/cmake/build_projects/libqhull/ep.cmake (rev 0) +++ trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-03 16:18:24 UTC (rev 12357) @@ -0,0 +1,86 @@ +# libqhull/ep.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build and test of libqhull. + +# 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. + +# Data that is related to downloads. +set(libqhull_URL http://www.qhull.org/download/qhull-2010.1-src.tgz) +# TEMPORARY local version for debugging +set(libqhull_URL /home/software/qhull/qhull-2010.1-src.tgz) + +set(libqhull_URL_MD5 4cda99e10a9a41365021db7eb1e79b91) + +# Data that is related to the PATH that must be used. +if(MSYS) + #set(BP_PATH_NODLL "${BP_PATH}") + #set(BP_PATH "${EP_BASE}/Build/build_libqhull/dll;${BP_PATH_NODLL}") + determine_msys_path(BP_PATH "${BP_PATH}") +endif(MSYS) +#message(STATUS "modified BP_PATH for libqhull = ${BP_PATH}") + +ExternalProject_Add( + build_libqhull + URL ${libqhull_URL} + URL_MD5 ${libqhull_URL_MD5} + CONFIGURE_COMMAND env PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_libqhull + BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} + INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install + STEP_TARGETS download update_build_system configure build install test + ) + +# Use custom command approach to generate real file dependencies +# rather than time stamps alone. +add_custom_command( + OUTPUT + ${EP_BASE}/Source/build_libqhull/CMakeLists.txt + ${EP_BASE}/Source/build_libqhull/src/CMakeLists.txt + ${EP_BASE}/Source/build_libqhull/src/libqhull.h + ${EP_BASE}/Source/build_libqhull/src/mem.h + ${EP_BASE}/Source/build_libqhull/src/unix.c + COMMAND cp -f ${CMAKE_SOURCE_DIR}/libqhull/CMakeLists.txt ${EP_BASE}/Source/build_libqhull + COMMAND cp -f ${CMAKE_SOURCE_DIR}/libqhull/src/CMakeLists.txt ${CMAKE_SOURCE_DIR}/libqhull/src/libqhull.h ${CMAKE_SOURCE_DIR}/libqhull/src/mem.h ${CMAKE_SOURCE_DIR}/libqhull/src/unix.c ${EP_BASE}/Source/build_libqhull/src + COMMENT "Updating of libqhull build system" + DEPENDS + ${CMAKE_SOURCE_DIR}/libqhull/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/libqhull/src/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/libqhull/src/libqhull.h + ${CMAKE_SOURCE_DIR}/libqhull/src/mem.h + ${CMAKE_SOURCE_DIR}/libqhull/src/unix.c + ) +ExternalProject_Add_Step(build_libqhull update_build_system + COMMENT "Updated libqhull build system" + DEPENDEES download + DEPENDERS configure + DEPENDS + ${EP_BASE}/Source/build_libqhull/CMakeLists.txt + ${EP_BASE}/Source/build_libqhull/src/CMakeLists.txt + ${EP_BASE}/Source/build_libqhull/src/libqhull.h + ${EP_BASE}/Source/build_libqhull/src/mem.h + ${EP_BASE}/Source/build_libqhull/src/unix.c + ALWAYS OFF + ) + +# Restore BP_PATH to original state. +set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") +#message(STATUS "shapelib restored original BP_PATH = ${BP_PATH}") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-06-04 21:51:34
|
Revision: 12362 http://sourceforge.net/p/plplot/code/12362 Author: airwin Date: 2013-06-04 21:51:31 +0000 (Tue, 04 Jun 2013) Log Message: ----------- Add ExternalProject build configuration of libharu to "Build Projects" project. Tested by: Alan W. Irwin <ai...@us...> for both Linux and MinGW/MSYS/Wine platforms using the build_libharu target. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt Added Paths: ----------- trunk/cmake/build_projects/libharu/ep.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-06-04 21:47:37 UTC (rev 12361) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-06-04 21:51:31 UTC (rev 12362) @@ -77,3 +77,4 @@ include(shapelib/ep.cmake) include(ndiff/ep.cmake) include(libqhull/ep.cmake) +include(libharu/ep.cmake) Added: trunk/cmake/build_projects/libharu/ep.cmake =================================================================== --- trunk/cmake/build_projects/libharu/ep.cmake (rev 0) +++ trunk/cmake/build_projects/libharu/ep.cmake 2013-06-04 21:51:31 UTC (rev 12362) @@ -0,0 +1,129 @@ +# libharu/ep.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build and test of libharu. + +# 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. + +# Data that is related to downloads. +set(libharu_URL http://libharu.org/files/libharu-2.1.0.tar.gz) +# TEMPORARY local version for debugging +set(libharu_URL /home/software/libharu/libharu-2.1.0.tar.gz) +set(libharu_URL_MD5 0623b8fb08ae1b28af08b2cdbd66b662) + +# Data that is related to the PATH that must be used. +if(MSYS) + #set(BP_PATH_NODLL "${BP_PATH}") + #set(BP_PATH "${EP_BASE}/Build/build_libharu/dll;${BP_PATH_NODLL}") + determine_msys_path(BP_PATH "${BP_PATH}") +endif(MSYS) +#message(STATUS "modified BP_PATH for libharu = ${BP_PATH}") + +ExternalProject_Add( + build_libharu + URL ${libharu_URL} + URL_MD5 ${libharu_URL_MD5} + # Note -DPOST_2.1.0=OFF is essential for the 2.1.0 version, but you + # should drop this option for anything after 2.1.0. Also note that + # -DLIBHARU_EXAMPLES=ON builds the demos, but does not test them. + CONFIGURE_COMMAND env PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DPOST_2.1.0=OFF -DLIBHARU_EXAMPLES=ON ${EP_BASE}/Source/build_libharu + # TEMPORARY + #BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} + BUILD_COMMAND ${BP_NON_PARALLEL_BUILD_COMMAND} + INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install + STEP_TARGETS download update_build_system configure build install test + ) + +# Use custom command approach to generate real file dependencies +# rather than time stamps alone. +add_custom_command( + OUTPUT + ${EP_BASE}/Source/build_libharu/CMakeLists.txt + ${EP_BASE}/Source/build_libharu/demo/CMakeLists.txt + ${EP_BASE}/Source/build_libharu/src/hpdf_page_operator.c + ${EP_BASE}/Source/build_libharu/src/CMakeLists.txt + ${EP_BASE}/Source/build_libharu/cmake/modules/haru.cmake + ${EP_BASE}/Source/build_libharu/cmake/modules/summary.cmake + ${EP_BASE}/Source/build_libharu/include/hpdf_consts.h + ${EP_BASE}/Source/build_libharu/include/hpdf_config.h.cmake + ${EP_BASE}/Source/build_libharu/include/hpdf.h + ${EP_BASE}/Source/build_libharu/include/CMakeLists.txt + # File that is patched. + ${EP_BASE}/Source/build_libharu/src/hpdf_streams.c + COMMAND mkdir -p ${EP_BASE}/Source/build_libharu/cmake/modules + COMMAND cp -f + ${CMAKE_SOURCE_DIR}/libharu/CMakeLists.txt + ${EP_BASE}/Source/build_libharu + COMMAND cp -f + ${CMAKE_SOURCE_DIR}/libharu/demo/CMakeLists.txt + ${EP_BASE}/Source/build_libharu/demo + COMMAND cp -f + ${CMAKE_SOURCE_DIR}/libharu/src/hpdf_page_operator.c + ${CMAKE_SOURCE_DIR}/libharu/src/CMakeLists.txt + ${EP_BASE}/Source/build_libharu/src + COMMAND cp -f + ${CMAKE_SOURCE_DIR}/libharu/cmake/modules/haru.cmake + ${CMAKE_SOURCE_DIR}/libharu/cmake/modules/summary.cmake + ${EP_BASE}/Source/build_libharu/cmake/modules + COMMAND cp -f + ${CMAKE_SOURCE_DIR}/libharu/include/hpdf_consts.h + ${CMAKE_SOURCE_DIR}/libharu/include/hpdf_config.h.cmake + ${CMAKE_SOURCE_DIR}/libharu/include/hpdf.h + ${CMAKE_SOURCE_DIR}/libharu/include/CMakeLists.txt + ${EP_BASE}/Source/build_libharu/include + COMMAND patch -d ${EP_BASE}/Source/build_libharu -p1 < ${CMAKE_SOURCE_DIR}/libharu/include_hpdf_config.h.patch + COMMENT "Updating of libharu build system" + DEPENDS + ${CMAKE_SOURCE_DIR}/libharu/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/libharu/demo/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/libharu/src/hpdf_page_operator.c + ${CMAKE_SOURCE_DIR}/libharu/src/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/libharu/cmake/modules/haru.cmake + ${CMAKE_SOURCE_DIR}/libharu/cmake/modules/summary.cmake + ${CMAKE_SOURCE_DIR}/libharu/include/hpdf_consts.h + ${CMAKE_SOURCE_DIR}/libharu/include/hpdf_config.h.cmake + ${CMAKE_SOURCE_DIR}/libharu/include/hpdf.h + ${CMAKE_SOURCE_DIR}/libharu/include/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/libharu/include_hpdf_config.h.patch + ) +ExternalProject_Add_Step(build_libharu update_build_system + COMMENT "Updated libharu build system" + DEPENDEES download + DEPENDERS configure + DEPENDS + ${EP_BASE}/Source/build_libharu/CMakeLists.txt + ${EP_BASE}/Source/build_libharu/demo/CMakeLists.txt + ${EP_BASE}/Source/build_libharu/src/hpdf_page_operator.c + ${EP_BASE}/Source/build_libharu/src/CMakeLists.txt + ${EP_BASE}/Source/build_libharu/cmake/modules/haru.cmake + ${EP_BASE}/Source/build_libharu/cmake/modules/summary.cmake + ${EP_BASE}/Source/build_libharu/include/hpdf_consts.h + ${EP_BASE}/Source/build_libharu/include/hpdf_config.h.cmake + ${EP_BASE}/Source/build_libharu/include/hpdf.h + ${EP_BASE}/Source/build_libharu/include/CMakeLists.txt + ${EP_BASE}/Source/build_libharu/src/hpdf_streams.c + ALWAYS OFF + ) + +# Restore BP_PATH to original state. +set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") +#message(STATUS "shapelib restored original BP_PATH = ${BP_PATH}") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-06-04 23:40:51
|
Revision: 12366 http://sourceforge.net/p/plplot/code/12366 Author: airwin Date: 2013-06-04 23:40:49 +0000 (Tue, 04 Jun 2013) Log Message: ----------- Add ExternalProject build configuration of libagg to "Build Projects" project. Tested by: Alan W. Irwin <ai...@us...> for both Linux and MinGW/MSYS/Wine platforms using the build_libagg target. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt Added Paths: ----------- trunk/cmake/build_projects/libagg/ep.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-06-04 23:37:22 UTC (rev 12365) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-06-04 23:40:49 UTC (rev 12366) @@ -78,3 +78,4 @@ include(ndiff/ep.cmake) include(libqhull/ep.cmake) include(libharu/ep.cmake) +include(libagg/ep.cmake) Added: trunk/cmake/build_projects/libagg/ep.cmake =================================================================== --- trunk/cmake/build_projects/libagg/ep.cmake (rev 0) +++ trunk/cmake/build_projects/libagg/ep.cmake 2013-06-04 23:40:49 UTC (rev 12366) @@ -0,0 +1,73 @@ +# libagg/ep.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build and test of libagg. + +# 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. + +# Data that is related to downloads. +set(libagg_URL http://www.antigrain.com/agg-2.5.tar.gz) +# TEMPORARY local version for debugging +set(libagg_URL /home/software/libagg/agg-2.5.tar.gz) +set(libagg_URL_MD5 0229a488bc47be10a2fee6cf0b2febd6) + +# Data that is related to the PATH that must be used. +if(MSYS) + #set(BP_PATH_NODLL "${BP_PATH}") + #set(BP_PATH "${EP_BASE}/Build/build_libagg/dll;${BP_PATH_NODLL}") + determine_msys_path(BP_PATH "${BP_PATH}") +endif(MSYS) +#message(STATUS "modified BP_PATH for libagg = ${BP_PATH}") + +ExternalProject_Add( + build_libagg + URL ${libagg_URL} + URL_MD5 ${libagg_URL_MD5} + CONFIGURE_COMMAND env PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_libagg + BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} + INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install + STEP_TARGETS download update_build_system configure build install + ) + +# Use custom command approach to generate real file dependencies +# rather than time stamps alone. +add_custom_command( + OUTPUT + ${EP_BASE}/Source/build_libagg/CMakeLists.txt + COMMAND cp -f ${CMAKE_SOURCE_DIR}/libagg/CMakeLists.txt + ${EP_BASE}/Source/build_libagg + COMMENT "Updating of libagg build system" + DEPENDS + ${CMAKE_SOURCE_DIR}/libagg/CMakeLists.txt + ) +ExternalProject_Add_Step(build_libagg update_build_system + COMMENT "Updated libagg build system" + DEPENDEES download + DEPENDERS configure + DEPENDS + ${EP_BASE}/Source/build_libagg/CMakeLists.txt + ALWAYS OFF + ) + +# Restore BP_PATH to original state. +set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") +#message(STATUS "libagg restored original BP_PATH = ${BP_PATH}") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-06-05 01:52:19
|
Revision: 12367 http://sourceforge.net/p/plplot/code/12367 Author: airwin Date: 2013-06-05 01:52:14 +0000 (Wed, 05 Jun 2013) Log Message: ----------- Replaced all temporary downloads with actual downloads since most of these build subprojects are thoroughly debugged. During the test of this change discovered that the download of the libqhull-2010.1 snapshot was actually a different snapshot (~4 months later) than the download I had collected before with this same filename. So I had to change the associated MD5sum accordingly. Furthermore, the latest "2010.1" version of libqhull continues to build without issues. Add faux PLplot build which for now just takes care of PLplot build dependencies for the "Build Projects" project without actually building PLplot Tested by: Alan W. Irwin <ai...@us...> for both Linux and MinGW/MSYS/Wine platforms using the build_plplot target. N.B. from the qhull notes, the gcc option -f-no-strict-aliasing must be used for qset.c for 2010.1 This only matters if you use -O2, -O3, or -Os. I haven't decided whether to bother with this or try to use the latest libqhull instead where this restriction has been removed. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt trunk/cmake/build_projects/libagg/ep.cmake trunk/cmake/build_projects/libharu/ep.cmake trunk/cmake/build_projects/libqhull/ep.cmake trunk/cmake/build_projects/ndiff/ep.cmake trunk/cmake/build_projects/shapelib/ep.cmake Added Paths: ----------- trunk/cmake/build_projects/plplot/ trunk/cmake/build_projects/plplot/ep.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-06-04 23:40:49 UTC (rev 12366) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-06-05 01:52:14 UTC (rev 12367) @@ -74,8 +74,13 @@ endfunction(determine_msys_path) endif(MSYS) -include(shapelib/ep.cmake) +# Now include the build configurations for certain targets and their +# dependencies. + +# Configure a build of ndiff. The ndiff application is not a a PLplot +# dependency, but still this fuzzy diff is quite useful for PLplot +# developers. include(ndiff/ep.cmake) -include(libqhull/ep.cmake) -include(libharu/ep.cmake) -include(libagg/ep.cmake) + +# Configure a build of PLplot and its dependencies. +include(plplot/ep.cmake) \ No newline at end of file Modified: trunk/cmake/build_projects/libagg/ep.cmake =================================================================== --- trunk/cmake/build_projects/libagg/ep.cmake 2013-06-04 23:40:49 UTC (rev 12366) +++ trunk/cmake/build_projects/libagg/ep.cmake 2013-06-05 01:52:14 UTC (rev 12367) @@ -26,8 +26,6 @@ # Data that is related to downloads. set(libagg_URL http://www.antigrain.com/agg-2.5.tar.gz) -# TEMPORARY local version for debugging -set(libagg_URL /home/software/libagg/agg-2.5.tar.gz) set(libagg_URL_MD5 0229a488bc47be10a2fee6cf0b2febd6) # Data that is related to the PATH that must be used. Modified: trunk/cmake/build_projects/libharu/ep.cmake =================================================================== --- trunk/cmake/build_projects/libharu/ep.cmake 2013-06-04 23:40:49 UTC (rev 12366) +++ trunk/cmake/build_projects/libharu/ep.cmake 2013-06-05 01:52:14 UTC (rev 12367) @@ -26,8 +26,6 @@ # Data that is related to downloads. set(libharu_URL http://libharu.org/files/libharu-2.1.0.tar.gz) -# TEMPORARY local version for debugging -set(libharu_URL /home/software/libharu/libharu-2.1.0.tar.gz) set(libharu_URL_MD5 0623b8fb08ae1b28af08b2cdbd66b662) # Data that is related to the PATH that must be used. @@ -46,9 +44,7 @@ # should drop this option for anything after 2.1.0. Also note that # -DLIBHARU_EXAMPLES=ON builds the demos, but does not test them. CONFIGURE_COMMAND env PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DPOST_2.1.0=OFF -DLIBHARU_EXAMPLES=ON ${EP_BASE}/Source/build_libharu - # TEMPORARY - #BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} - BUILD_COMMAND ${BP_NON_PARALLEL_BUILD_COMMAND} + BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install STEP_TARGETS download update_build_system configure build install test ) Modified: trunk/cmake/build_projects/libqhull/ep.cmake =================================================================== --- trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-04 23:40:49 UTC (rev 12366) +++ trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-05 01:52:14 UTC (rev 12367) @@ -26,11 +26,8 @@ # Data that is related to downloads. set(libqhull_URL http://www.qhull.org/download/qhull-2010.1-src.tgz) -# TEMPORARY local version for debugging -set(libqhull_URL /home/software/qhull/qhull-2010.1-src.tgz) +set(libqhull_URL_MD5 e64138470acdeb18f752a0bc2a11ceb4) -set(libqhull_URL_MD5 4cda99e10a9a41365021db7eb1e79b91) - # Data that is related to the PATH that must be used. if(MSYS) #set(BP_PATH_NODLL "${BP_PATH}") Modified: trunk/cmake/build_projects/ndiff/ep.cmake =================================================================== --- trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-04 23:40:49 UTC (rev 12366) +++ trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-05 01:52:14 UTC (rev 12367) @@ -26,8 +26,6 @@ # Data that is related to downloads. set(ndiff_URL ftp://ftp.math.utah.edu/pub/misc/ndiff-2.00.tar.gz) -# TEMPORARY local version for debugging -set(ndiff_URL /home/software/ndiff/ndiff-2.00.tar.gz) # The MD5 value below is correct for the gpg --verified version # Use URL_MD5 because ExternalProject_Add doesn't deal with gpg --version. Added: trunk/cmake/build_projects/plplot/ep.cmake =================================================================== --- trunk/cmake/build_projects/plplot/ep.cmake (rev 0) +++ trunk/cmake/build_projects/plplot/ep.cmake 2013-06-05 01:52:14 UTC (rev 12367) @@ -0,0 +1,20 @@ +# Configure build of PLplot dependencies. + +include(shapelib/ep.cmake) +include(libqhull/ep.cmake) +include(libharu/ep.cmake) +include(libagg/ep.cmake) + +# Build PLplot itself. +# (Not implemented yet, but create empty custom target with correct +# target dependencies as if that target were actually a PLplot build). +add_custom_target(build_plplot) +add_dependencies(build_plplot + build_shapelib + build_libqhull + build_libharu + build_libagg + ) + + + Modified: trunk/cmake/build_projects/shapelib/ep.cmake =================================================================== --- trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-04 23:40:49 UTC (rev 12366) +++ trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-05 01:52:14 UTC (rev 12367) @@ -26,13 +26,9 @@ # Data that is related to downloads. set(shapelib_URL http://download.osgeo.org/shapelib/shapelib-1.3.0.tar.gz) -# TEMPORARY local version for debugging -set(shapelib_URL /home/software/shapelib/shapelib-1.3.0.tar.gz) set(shapelib_URL_MD5 2ff7d0b21d4b7506b452524492795f77) set(shape_eg_data_URL http://dl.maptools.org/dl/shapelib/shape_eg_data.zip) -# TEMPORARY local version for debugging -set(shape_eg_data_URL file:///home/software/shapelib/eg_data/shape_eg_data.zip) set(shape_eg_data_URL_MD5 36208abd5d34c5c80101d8b214109f0d) # Data that is related to the PATH that must be used. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-06-06 15:09:08
|
Revision: 12369 http://sourceforge.net/p/plplot/code/12369 Author: airwin Date: 2013-06-06 15:09:05 +0000 (Thu, 06 Jun 2013) Log Message: ----------- Preliminary work to make build_projects work with the "MinGW Makefiles" generator. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt trunk/cmake/build_projects/libagg/ep.cmake trunk/cmake/build_projects/libharu/ep.cmake trunk/cmake/build_projects/libqhull/ep.cmake trunk/cmake/build_projects/ndiff/ep.cmake trunk/cmake/build_projects/shapelib/ep.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-06-05 06:54:51 UTC (rev 12368) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-06-06 15:09:05 UTC (rev 12369) @@ -37,32 +37,72 @@ # Set build_projects variables to control builds in general -if(NOT ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" AND NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles") - message(FATAL_ERROR "This project only works with either the \"Unix Makefiles\" or \"MSYS Makefiles\" generators") -endif(NOT ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" AND NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles") - +# Test whether there is access to the MSYS platform on the PATH. Note +# this is a different question than whether you are using the "MSYS +# Makefiles" generator since some other generators (e.g., "MinGW +# Makefiles") can have MSYS on the path so long as sh.exe is renamed +# or removed from that PATH. Note, we search for the automatic +# installer app, mingw-get.exe and the bash.exe shell to check +# (approximately) whether we have access to the MSYS platform, and +# then we test that platform (very approximately) for completeness by +# making sure unzip (necessary for some build configurations to unpack +# their packages) is installed (using mingw-get). + +set(MSYS_PLATFORM) +find_program(MINGW_GET_EXECUTABLE mingw-get) +if(MINGW_GET_EXECUTABLE) + find_program(BASH_EXECUTABLE bash) + if(BASH_EXECUTABLE) + set(MSYS_PLATFORM ON) + endif(BASH_EXECUTABLE) +endif(MINGW_GET_EXECUTABLE) +message(STATUS "WIN32 = ${WIN32}") +message(STATUS "MINGW = ${MINGW}") +message(STATUS "MSYS = ${MSYS}") +message(STATUS "MSYS_PLATFORM = ${MSYS_PLATFORM}") +message(STATUS "CYGWIN = ${CYGWIN}") + +if(CYGWIN) + message(FATAL_ERROR "build_projects does not work correctly on the Cygwin platform. Use the MinGW compiler and MSYS platform instead.") +endif(CYGWIN) + +if(WIN32 AND NOT MSYS_PLATFORM) + message(FATAL_ERROR "build_projects does not work correctly on Windows without the MSYS platform. Install the MSYS platform (perhaps without sh.exe depending on CMake generator) on Windows.") +endif(WIN32 AND NOT MSYS_PLATFORM) + +find_program(UNZIP_EXECUTABLE unzip) +if(NOT UNZIP_EXECUTABLE) + if(MSYS_PLATFORM) + message(STATUS "unzip missing from your MSYS platform. Use mingw-get to install it.") + endif(MSYS_PLATFORM) + message(FATAL_ERROR "unzip must be on your PATH in order for build_projects to work correctly") +endif(NOT UNZIP_EXECUTABLE) + # Propagate the overall CMake generator and install prefix to all CMake-based # software project builds. set(BP_CMAKE_COMMAND cmake "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}) # The non-parallel versions are for build systems that # apparently have race conditions for parallel builds. -set(BP_PARALLEL_BUILD_COMMAND make -j4) -set(BP_NON_PARALLEL_MAKE_COMMAND make) +if(CMAKE_GENERATOR STREQUAL "MinGW Makefiles") + set(BP_BUILD_COMMAND mingw32-make) +else(CMAKE_GENERATOR STREQUAL "MinGW Makefiles") + set(BP_BUILD_COMMAND make) +endif(CMAKE_GENERATOR STREQUAL "MinGW Makefiles") +set(BP_PARALLEL_BUILD_COMMAND ${BP_BUILD_COMMAND} -j4) +set(BP_CTEST_COMMAND ctest) set(BP_PARALLEL_CTEST_COMMAND ctest -j4) -set(BP_NON_PARALLEL_CTEST_COMMAND ctest) + set(BP_ORIGINAL_NATIVE_PATH "$ENV{PATH}") set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") -if(MSYS) +if(MSYS_PLATFORM) # Useful function to convert Windows list of semicolon-delimited - # paths to the equivalent list of MSYS paths (exactly like the - # colon-delimited Unix list of paths except the driver letters are + # PATHs to the equivalent list of MSYS PATHs (exactly like the + # colon-delimited Unix list of PATHs except the driver letters are # specified as the initial one-character component of each of the - # paths). to MSYS path (like Unix path but with the drive letters - # as single character initial component of the path). For example, - # this function will will transform the Windows list of paths, - # "z:\whatever_z;c:\whatever_c" to /z/whatever_z:/c/whatever_c. + # PATHs). For example, this function will transform the Windows + # list of PATHs, "z:\path1;c:\path2" to "/z/path1:/c/path2". function(determine_msys_path MSYS_PATH NATIVE_PATH) #message(STATUS "NATIVE_PATH = ${NATIVE_PATH}") string(REGEX REPLACE "^\([a-zA-z]\):" "/\\1" PATH "${NATIVE_PATH}") @@ -72,7 +112,7 @@ #message(STATUS "MSYS_PATH = ${PATH}") set(${MSYS_PATH} ${PATH} PARENT_SCOPE) endfunction(determine_msys_path) -endif(MSYS) +endif(MSYS_PLATFORM) # Now include the build configurations for certain targets and their # dependencies. Modified: trunk/cmake/build_projects/libagg/ep.cmake =================================================================== --- trunk/cmake/build_projects/libagg/ep.cmake 2013-06-05 06:54:51 UTC (rev 12368) +++ trunk/cmake/build_projects/libagg/ep.cmake 2013-06-06 15:09:05 UTC (rev 12369) @@ -29,11 +29,11 @@ set(libagg_URL_MD5 0229a488bc47be10a2fee6cf0b2febd6) # Data that is related to the PATH that must be used. -if(MSYS) +if(MSYS_PLATFORM) #set(BP_PATH_NODLL "${BP_PATH}") #set(BP_PATH "${EP_BASE}/Build/build_libagg/dll;${BP_PATH_NODLL}") determine_msys_path(BP_PATH "${BP_PATH}") -endif(MSYS) +endif(MSYS_PLATFORM) #message(STATUS "modified BP_PATH for libagg = ${BP_PATH}") ExternalProject_Add( Modified: trunk/cmake/build_projects/libharu/ep.cmake =================================================================== --- trunk/cmake/build_projects/libharu/ep.cmake 2013-06-05 06:54:51 UTC (rev 12368) +++ trunk/cmake/build_projects/libharu/ep.cmake 2013-06-06 15:09:05 UTC (rev 12369) @@ -29,11 +29,11 @@ set(libharu_URL_MD5 0623b8fb08ae1b28af08b2cdbd66b662) # Data that is related to the PATH that must be used. -if(MSYS) +if(MSYS_PLATFORM) #set(BP_PATH_NODLL "${BP_PATH}") #set(BP_PATH "${EP_BASE}/Build/build_libharu/dll;${BP_PATH_NODLL}") determine_msys_path(BP_PATH "${BP_PATH}") -endif(MSYS) +endif(MSYS_PLATFORM) #message(STATUS "modified BP_PATH for libharu = ${BP_PATH}") ExternalProject_Add( Modified: trunk/cmake/build_projects/libqhull/ep.cmake =================================================================== --- trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-05 06:54:51 UTC (rev 12368) +++ trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-06 15:09:05 UTC (rev 12369) @@ -29,11 +29,11 @@ set(libqhull_URL_MD5 e64138470acdeb18f752a0bc2a11ceb4) # Data that is related to the PATH that must be used. -if(MSYS) +if(MSYS_PLATFORM) #set(BP_PATH_NODLL "${BP_PATH}") #set(BP_PATH "${EP_BASE}/Build/build_libqhull/dll;${BP_PATH_NODLL}") determine_msys_path(BP_PATH "${BP_PATH}") -endif(MSYS) +endif(MSYS_PLATFORM) #message(STATUS "modified BP_PATH for libqhull = ${BP_PATH}") ExternalProject_Add( Modified: trunk/cmake/build_projects/ndiff/ep.cmake =================================================================== --- trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-05 06:54:51 UTC (rev 12368) +++ trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-06 15:09:05 UTC (rev 12369) @@ -29,15 +29,15 @@ # The MD5 value below is correct for the gpg --verified version # Use URL_MD5 because ExternalProject_Add doesn't deal with gpg --version. -# In any case, gpg is not available for the MSYS case. +# In any case, gpg is not available for the MSYS_PLATFORM case. set(ndiff_URL_MD5 885548b4dc26e72c5455bebb5ba6c16d) # Data that is related to the PATH that must be used. -if(MSYS) +if(MSYS_PLATFORM) #set(BP_PATH_NODLL "${BP_PATH}") #set(BP_PATH "${EP_BASE}/Build/build_ndiff/dll;${BP_PATH_NODLL}") determine_msys_path(BP_PATH "${BP_PATH}") -endif(MSYS) +endif(MSYS_PLATFORM) #message(STATUS "modified BP_PATH for ndiff = ${BP_PATH}") ExternalProject_Add( Modified: trunk/cmake/build_projects/shapelib/ep.cmake =================================================================== --- trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-05 06:54:51 UTC (rev 12368) +++ trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-06 15:09:05 UTC (rev 12369) @@ -32,11 +32,11 @@ set(shape_eg_data_URL_MD5 36208abd5d34c5c80101d8b214109f0d) # Data that is related to the PATH that must be used. -if(MSYS) +if(MSYS_PLATFORM) set(BP_PATH_NODLL "${BP_PATH}") set(BP_PATH "${EP_BASE}/Build/build_shapelib/dll;${BP_PATH_NODLL}") determine_msys_path(BP_PATH "${BP_PATH}") -endif(MSYS) +endif(MSYS_PLATFORM) #message(STATUS "modified BP_PATH for shapelib = ${BP_PATH}") ExternalProject_Add( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-06-06 20:05:09
|
Revision: 12370 http://sourceforge.net/p/plplot/code/12370 Author: airwin Date: 2013-06-06 20:05:05 +0000 (Thu, 06 Jun 2013) Log Message: ----------- Make builds more platform independent. As a result of these changes, "MinGW Makefiles" now works as well as "MSYS Makefiles" for build_projects. Tested by: Alan W. Irwin <ai...@us...> for the "Unix Makefiles" default generator on Linux, and the "MinGW Makefiles" and "MSYS Makefiles" generators on the Wine version of Windows. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt trunk/cmake/build_projects/ExternalProject.cmake trunk/cmake/build_projects/libagg/ep.cmake trunk/cmake/build_projects/libharu/ep.cmake trunk/cmake/build_projects/libqhull/ep.cmake trunk/cmake/build_projects/ndiff/ep.cmake trunk/cmake/build_projects/plplot/ep.cmake trunk/cmake/build_projects/shapelib/ep.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-06-06 15:09:05 UTC (rev 12369) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-06-06 20:05:05 UTC (rev 12370) @@ -26,11 +26,6 @@ cmake_minimum_required(VERSION 2.8.10.2 FATAL_ERROR) -# Use modified version of ExternalProject where cmake -E touch has -# been replaced with the touch command (to work around cmake bug 14020) -set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}) -include(ExternalProject) - set(EP_BASE ${CMAKE_BINARY_DIR}/build_projects) message(STATUS "EP_BASE = ${EP_BASE}") set_directory_properties(PROPERTIES EP_BASE ${EP_BASE}) @@ -48,14 +43,13 @@ # making sure unzip (necessary for some build configurations to unpack # their packages) is installed (using mingw-get). -set(MSYS_PLATFORM) find_program(MINGW_GET_EXECUTABLE mingw-get) -if(MINGW_GET_EXECUTABLE) - find_program(BASH_EXECUTABLE bash) - if(BASH_EXECUTABLE) - set(MSYS_PLATFORM ON) - endif(BASH_EXECUTABLE) -endif(MINGW_GET_EXECUTABLE) +find_program(BASH_EXECUTABLE bash) +if(MINGW_GET_EXECUTABLE AND BASH_EXECUTABLE) + set(MSYS_PLATFORM ON) +else(MINGW_GET_EXECUTABLE AND BASH_EXECUTABLE) + set(MSYS_PLATFORM OFF) +endif(MINGW_GET_EXECUTABLE AND BASH_EXECUTABLE) message(STATUS "WIN32 = ${WIN32}") message(STATUS "MINGW = ${MINGW}") message(STATUS "MSYS = ${MSYS}") @@ -70,14 +64,41 @@ message(FATAL_ERROR "build_projects does not work correctly on Windows without the MSYS platform. Install the MSYS platform (perhaps without sh.exe depending on CMake generator) on Windows.") endif(WIN32 AND NOT MSYS_PLATFORM) -find_program(UNZIP_EXECUTABLE unzip) -if(NOT UNZIP_EXECUTABLE) - if(MSYS_PLATFORM) - message(STATUS "unzip missing from your MSYS platform. Use mingw-get to install it.") - endif(MSYS_PLATFORM) - message(FATAL_ERROR "unzip must be on your PATH in order for build_projects to work correctly") -endif(NOT UNZIP_EXECUTABLE) +# List of executables required by build_projects CMake logic. +set(executables_LIST + # ExternalProject + touch + # Unpacking + unzip + # Updating + mkdir + cp + patch + # General + env + # Not specifically required by build_projects (yet), but some + # individual project configurations will not work unless this is + # available so might as well check it here. + bash + ) +foreach(executable ${executables_LIST}) + string(TOUPPER ${executable} EXECUTABLE) + find_program(${EXECUTABLE}_EXECUTABLE ${executable}) + if(NOT ${EXECUTABLE}_EXECUTABLE) + if(MSYS_PLATFORM) + message(STATUS "${executable} missing from your MSYS platform. Use mingw-get to install it.") + endif(MSYS_PLATFORM) + message(FATAL_ERROR "${executable} must be on your PATH in order for build_projects to work correctly") + endif(NOT ${EXECUTABLE}_EXECUTABLE) +endforeach(executable ${executables_LIST}) + +# Use modified version of ExternalProject where cmake -E touch has +# been replaced with the TOUCH_EXECUTABLE command (to work around +# cmake bug 14020) +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}) +include(ExternalProject) + # Propagate the overall CMake generator and install prefix to all CMake-based # software project builds. set(BP_CMAKE_COMMAND cmake "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}) Modified: trunk/cmake/build_projects/ExternalProject.cmake =================================================================== --- trunk/cmake/build_projects/ExternalProject.cmake 2013-06-06 15:09:05 UTC (rev 12369) +++ trunk/cmake/build_projects/ExternalProject.cmake 2013-06-06 20:05:05 UTC (rev 12370) @@ -1020,7 +1020,7 @@ set_property(SOURCE ${stamp_file} PROPERTY SYMBOLIC 1) set(touch) else() - set(touch touch ${stamp_file}) + set(touch ${TOUCH_EXECUTABLE} ${stamp_file}) endif() # Wrap with log script? @@ -1676,8 +1676,8 @@ OUTPUT ${complete_outputs} COMMENT "Completed '${name}'" COMMAND ${CMAKE_COMMAND} -E make_directory ${cmf_dir}${cfgdir} - COMMAND touch ${complete_stamp_file} - COMMAND touch ${done_stamp_file} + COMMAND ${TOUCH_EXECUTABLE} ${complete_stamp_file} + COMMAND ${TOUCH_EXECUTABLE} ${done_stamp_file} DEPENDS ${install_stamp_file} VERBATIM ) Modified: trunk/cmake/build_projects/libagg/ep.cmake =================================================================== --- trunk/cmake/build_projects/libagg/ep.cmake 2013-06-06 15:09:05 UTC (rev 12369) +++ trunk/cmake/build_projects/libagg/ep.cmake 2013-06-06 20:05:05 UTC (rev 12370) @@ -40,7 +40,7 @@ build_libagg URL ${libagg_URL} URL_MD5 ${libagg_URL_MD5} - CONFIGURE_COMMAND env PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_libagg + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_libagg BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install STEP_TARGETS download update_build_system configure build install @@ -51,8 +51,9 @@ add_custom_command( OUTPUT ${EP_BASE}/Source/build_libagg/CMakeLists.txt - COMMAND cp -f ${CMAKE_SOURCE_DIR}/libagg/CMakeLists.txt - ${EP_BASE}/Source/build_libagg + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/libagg/CMakeLists.txt + ${EP_BASE}/Source/build_libagg/CMakeLists.txt COMMENT "Updating of libagg build system" DEPENDS ${CMAKE_SOURCE_DIR}/libagg/CMakeLists.txt Modified: trunk/cmake/build_projects/libharu/ep.cmake =================================================================== --- trunk/cmake/build_projects/libharu/ep.cmake 2013-06-06 15:09:05 UTC (rev 12369) +++ trunk/cmake/build_projects/libharu/ep.cmake 2013-06-06 20:05:05 UTC (rev 12370) @@ -43,7 +43,7 @@ # Note -DPOST_2.1.0=OFF is essential for the 2.1.0 version, but you # should drop this option for anything after 2.1.0. Also note that # -DLIBHARU_EXAMPLES=ON builds the demos, but does not test them. - CONFIGURE_COMMAND env PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DPOST_2.1.0=OFF -DLIBHARU_EXAMPLES=ON ${EP_BASE}/Source/build_libharu + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DPOST_2.1.0=OFF -DLIBHARU_EXAMPLES=ON ${EP_BASE}/Source/build_libharu BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install STEP_TARGETS download update_build_system configure build install test @@ -65,28 +65,38 @@ ${EP_BASE}/Source/build_libharu/include/CMakeLists.txt # File that is patched. ${EP_BASE}/Source/build_libharu/src/hpdf_streams.c - COMMAND mkdir -p ${EP_BASE}/Source/build_libharu/cmake/modules - COMMAND cp -f + COMMAND ${CMAKE_COMMAND} -E make_directory ${EP_BASE}/Source/build_libharu/cmake/modules + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/libharu/CMakeLists.txt - ${EP_BASE}/Source/build_libharu - COMMAND cp -f + ${EP_BASE}/Source/build_libharu/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/libharu/demo/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/demo - COMMAND cp -f + ${EP_BASE}/Source/build_libharu/demo/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/libharu/src/hpdf_page_operator.c + ${EP_BASE}/Source/build_libharu/src/hpdf_page_operator.c + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/libharu/src/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/src - COMMAND cp -f + ${EP_BASE}/Source/build_libharu/src/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/libharu/cmake/modules/haru.cmake + ${EP_BASE}/Source/build_libharu/cmake/modules/haru.cmake + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/libharu/cmake/modules/summary.cmake - ${EP_BASE}/Source/build_libharu/cmake/modules - COMMAND cp -f + ${EP_BASE}/Source/build_libharu/cmake/modules/summary.cmake + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/libharu/include/hpdf_consts.h + ${EP_BASE}/Source/build_libharu/include/hpdf_consts.h + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/libharu/include/hpdf_config.h.cmake + ${EP_BASE}/Source/build_libharu/include/hpdf_config.h.cmake + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/libharu/include/hpdf.h + ${EP_BASE}/Source/build_libharu/include/hpdf.h + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/libharu/include/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/include - COMMAND patch -d ${EP_BASE}/Source/build_libharu -p1 < ${CMAKE_SOURCE_DIR}/libharu/include_hpdf_config.h.patch + ${EP_BASE}/Source/build_libharu/include/CMakeLists.txt + COMMAND ${PATCH_EXECUTABLE} -d ${EP_BASE}/Source/build_libharu -p1 < ${CMAKE_SOURCE_DIR}/libharu/include_hpdf_config.h.patch COMMENT "Updating of libharu build system" DEPENDS ${CMAKE_SOURCE_DIR}/libharu/CMakeLists.txt Modified: trunk/cmake/build_projects/libqhull/ep.cmake =================================================================== --- trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-06 15:09:05 UTC (rev 12369) +++ trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-06 20:05:05 UTC (rev 12370) @@ -40,7 +40,7 @@ build_libqhull URL ${libqhull_URL} URL_MD5 ${libqhull_URL_MD5} - CONFIGURE_COMMAND env PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_libqhull + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_libqhull BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install STEP_TARGETS download update_build_system configure build install test @@ -55,8 +55,21 @@ ${EP_BASE}/Source/build_libqhull/src/libqhull.h ${EP_BASE}/Source/build_libqhull/src/mem.h ${EP_BASE}/Source/build_libqhull/src/unix.c - COMMAND cp -f ${CMAKE_SOURCE_DIR}/libqhull/CMakeLists.txt ${EP_BASE}/Source/build_libqhull - COMMAND cp -f ${CMAKE_SOURCE_DIR}/libqhull/src/CMakeLists.txt ${CMAKE_SOURCE_DIR}/libqhull/src/libqhull.h ${CMAKE_SOURCE_DIR}/libqhull/src/mem.h ${CMAKE_SOURCE_DIR}/libqhull/src/unix.c ${EP_BASE}/Source/build_libqhull/src + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/libqhull/CMakeLists.txt + ${EP_BASE}/Source/build_libqhull/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/libqhull/src/CMakeLists.txt + ${EP_BASE}/Source/build_libqhull/src/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/libqhull/src/libqhull.h + ${EP_BASE}/Source/build_libqhull/src/libqhull.h + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/libqhull/src/mem.h + ${EP_BASE}/Source/build_libqhull/src/mem.h + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/libqhull/src/unix.c + ${EP_BASE}/Source/build_libqhull/src/unix.c COMMENT "Updating of libqhull build system" DEPENDS ${CMAKE_SOURCE_DIR}/libqhull/CMakeLists.txt Modified: trunk/cmake/build_projects/ndiff/ep.cmake =================================================================== --- trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-06 15:09:05 UTC (rev 12369) +++ trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-06 20:05:05 UTC (rev 12370) @@ -44,7 +44,7 @@ build_ndiff URL ${ndiff_URL} URL_MD5 ${ndiff_URL_MD5} - CONFIGURE_COMMAND env PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_ndiff + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_ndiff BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} TEST_BEFORE_INSTALL ON TEST_COMMAND ${BP_PARALLEL_CTEST_COMMAND} @@ -58,7 +58,12 @@ OUTPUT ${EP_BASE}/Source/build_ndiff/CMakeLists.txt ${EP_BASE}/Source/build_ndiff/config.h.cmake - COMMAND cp -f ${CMAKE_SOURCE_DIR}/ndiff/CMakeLists.txt ${CMAKE_SOURCE_DIR}/ndiff/config.h.cmake ${EP_BASE}/Source/build_ndiff + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/ndiff/CMakeLists.txt + ${EP_BASE}/Source/build_ndiff/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/ndiff/config.h.cmake + ${EP_BASE}/Source/build_ndiff/config.h.cmake COMMENT "Updating of ndiff build system" DEPENDS ${CMAKE_SOURCE_DIR}/ndiff/CMakeLists.txt Modified: trunk/cmake/build_projects/plplot/ep.cmake =================================================================== --- trunk/cmake/build_projects/plplot/ep.cmake 2013-06-06 15:09:05 UTC (rev 12369) +++ trunk/cmake/build_projects/plplot/ep.cmake 2013-06-06 20:05:05 UTC (rev 12370) @@ -1,3 +1,28 @@ +# plplot/ep.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build and test of PLplot. + +# 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. # Configure build of PLplot dependencies. include(shapelib/ep.cmake) Modified: trunk/cmake/build_projects/shapelib/ep.cmake =================================================================== --- trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-06 15:09:05 UTC (rev 12369) +++ trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-06 20:05:05 UTC (rev 12370) @@ -43,11 +43,11 @@ build_shapelib URL ${shapelib_URL} URL_MD5 ${shapelib_URL_MD5} - CONFIGURE_COMMAND env PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DEG_DATA:PATH=${EP_BASE}/Source/build_shapelib/eg_data ${EP_BASE}/Source/build_shapelib - BUILD_COMMAND env PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DEG_DATA:PATH=${EP_BASE}/Source/build_shapelib/eg_data ${EP_BASE}/Source/build_shapelib + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} TEST_BEFORE_INSTALL ON - TEST_COMMAND env PATH=${BP_PATH} ${BP_PARALLEL_CTEST_COMMAND} - INSTALL_COMMAND env PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install + TEST_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_CTEST_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install STEP_TARGETS download update_build_system get_eg_data configure build install test ) @@ -56,7 +56,9 @@ add_custom_command( OUTPUT ${EP_BASE}/Source/build_shapelib/CMakeLists.txt - COMMAND cp -f ${CMAKE_SOURCE_DIR}/shapelib/CMakeLists.txt ${EP_BASE}/Source/build_shapelib + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/shapelib/CMakeLists.txt + ${EP_BASE}/Source/build_shapelib/CMakeLists.txt COMMENT "Updating of shapelib build system" DEPENDS ${CMAKE_SOURCE_DIR}/shapelib/CMakeLists.txt @@ -75,7 +77,7 @@ ${EP_BASE}/Download/build_shapelib/shape_eg_data.zip COMMAND ${CMAKE_COMMAND} -DURL:STRING=${shape_eg_data_URL} -DFILE:FILEPATH=${EP_BASE}/Download/build_shapelib/shape_eg_data.zip -DMD5:STRING=${shape_eg_data_URL_MD5} -P ${CMAKE_SOURCE_DIR}/download_check.cmake COMMAND ${CMAKE_COMMAND} -E remove_directory ${EP_BASE}/Source/build_shapelib/eg_data - COMMAND unzip -q ${EP_BASE}/Download/build_shapelib/shape_eg_data.zip -d ${EP_BASE}/Source/build_shapelib/eg_data + COMMAND ${UNZIP_EXECUTABLE} -q ${EP_BASE}/Download/build_shapelib/shape_eg_data.zip -d ${EP_BASE}/Source/build_shapelib/eg_data COMMENT "getting eg_data for shapelib test" ) ExternalProject_Add_Step(build_shapelib get_eg_data This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-06-07 18:46:57
|
Revision: 12375 http://sourceforge.net/p/plplot/code/12375 Author: airwin Date: 2013-06-07 18:46:54 +0000 (Fri, 07 Jun 2013) Log Message: ----------- Replace software package name by ${BP_PACKAGE} wherever possible to make ep.cmake files more abstracted/generic. Modified Paths: -------------- trunk/cmake/build_projects/libagg/ep.cmake trunk/cmake/build_projects/libharu/ep.cmake trunk/cmake/build_projects/libqhull/ep.cmake trunk/cmake/build_projects/ndiff/ep.cmake trunk/cmake/build_projects/shapelib/ep.cmake Modified: trunk/cmake/build_projects/libagg/ep.cmake =================================================================== --- trunk/cmake/build_projects/libagg/ep.cmake 2013-06-07 16:03:35 UTC (rev 12374) +++ trunk/cmake/build_projects/libagg/ep.cmake 2013-06-07 18:46:54 UTC (rev 12375) @@ -1,6 +1,6 @@ # libagg/ep.cmake # This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build and test of libagg. +# CMakeLists.txt file to configure the build of libagg. # Copyright (C) 2013 Alan W. Irwin @@ -24,23 +24,25 @@ # used below that configure how the External_Project functions # operate. +set(BP_PACKAGE libagg) + # Data that is related to downloads. -set(libagg_URL http://www.antigrain.com/agg-2.5.tar.gz) -set(libagg_URL_MD5 0229a488bc47be10a2fee6cf0b2febd6) +set(${BP_PACKAGE}_URL http://www.antigrain.com/agg-2.5.tar.gz) +set(${BP_PACKAGE}_URL_MD5 0229a488bc47be10a2fee6cf0b2febd6) # 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_libagg/dll;${BP_PATH_NODLL}") + #set(BP_PATH "${EP_BASE}/Build/build_${BP_PACKAGE}/dll;${BP_PATH_NODLL}") determine_msys_path(BP_PATH "${BP_PATH}") endif(MSYS_PLATFORM) -#message(STATUS "modified BP_PATH for libagg = ${BP_PATH}") +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") ExternalProject_Add( - build_libagg - URL ${libagg_URL} - URL_MD5 ${libagg_URL_MD5} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_libagg + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install STEP_TARGETS download update_build_system configure build install @@ -50,23 +52,23 @@ # rather than time stamps alone. add_custom_command( OUTPUT - ${EP_BASE}/Source/build_libagg/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libagg/CMakeLists.txt - ${EP_BASE}/Source/build_libagg/CMakeLists.txt - COMMENT "Updating of libagg build system" + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + COMMENT "Updating of ${BP_PACKAGE} build system" DEPENDS - ${CMAKE_SOURCE_DIR}/libagg/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt ) -ExternalProject_Add_Step(build_libagg update_build_system - COMMENT "Updated libagg build system" +ExternalProject_Add_Step(build_${BP_PACKAGE} update_build_system + COMMENT "Updated ${BP_PACKAGE} build system" DEPENDEES download DEPENDERS configure DEPENDS - ${EP_BASE}/Source/build_libagg/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt ALWAYS OFF ) # Restore BP_PATH to original state. set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") -#message(STATUS "libagg restored original BP_PATH = ${BP_PATH}") +#message(STATUS "${BP_PACKAGE} restored original BP_PATH = ${BP_PATH}") Modified: trunk/cmake/build_projects/libharu/ep.cmake =================================================================== --- trunk/cmake/build_projects/libharu/ep.cmake 2013-06-07 16:03:35 UTC (rev 12374) +++ trunk/cmake/build_projects/libharu/ep.cmake 2013-06-07 18:46:54 UTC (rev 12375) @@ -1,6 +1,6 @@ # libharu/ep.cmake # This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build and test of libharu. +# CMakeLists.txt file to configure the build of libharu. # Copyright (C) 2013 Alan W. Irwin @@ -24,26 +24,28 @@ # used below that configure how the External_Project functions # operate. +set(BP_PACKAGE libharu) + # Data that is related to downloads. -set(libharu_URL http://libharu.org/files/libharu-2.1.0.tar.gz) -set(libharu_URL_MD5 0623b8fb08ae1b28af08b2cdbd66b662) +set(${BP_PACKAGE}_URL http://${BP_PACKAGE}.org/files/${BP_PACKAGE}-2.1.0.tar.gz) +set(${BP_PACKAGE}_URL_MD5 0623b8fb08ae1b28af08b2cdbd66b662) # 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_libharu/dll;${BP_PATH_NODLL}") + #set(BP_PATH "${EP_BASE}/Build/build_${BP_PACKAGE}/dll;${BP_PATH_NODLL}") determine_msys_path(BP_PATH "${BP_PATH}") endif(MSYS_PLATFORM) -#message(STATUS "modified BP_PATH for libharu = ${BP_PATH}") +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") ExternalProject_Add( - build_libharu - URL ${libharu_URL} - URL_MD5 ${libharu_URL_MD5} + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} # Note -DPOST_2.1.0=OFF is essential for the 2.1.0 version, but you # should drop this option for anything after 2.1.0. Also note that - # -DLIBHARU_EXAMPLES=ON builds the demos, but does not test them. - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DPOST_2.1.0=OFF -DLIBHARU_EXAMPLES=ON ${EP_BASE}/Source/build_libharu + # -D${BP_PACKAGE}_EXAMPLES=ON builds the demos, but does not test them. + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DPOST_2.1.0=OFF -D${BP_PACKAGE}_EXAMPLES=ON ${EP_BASE}/Source/build_${BP_PACKAGE} BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install STEP_TARGETS download update_build_system configure build install test @@ -53,83 +55,83 @@ # rather than time stamps alone. add_custom_command( OUTPUT - ${EP_BASE}/Source/build_libharu/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/demo/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/src/hpdf_page_operator.c - ${EP_BASE}/Source/build_libharu/src/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/cmake/modules/haru.cmake - ${EP_BASE}/Source/build_libharu/cmake/modules/summary.cmake - ${EP_BASE}/Source/build_libharu/include/hpdf_consts.h - ${EP_BASE}/Source/build_libharu/include/hpdf_config.h.cmake - ${EP_BASE}/Source/build_libharu/include/hpdf.h - ${EP_BASE}/Source/build_libharu/include/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/demo/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_page_operator.c + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/haru.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/summary.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_consts.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_config.h.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/CMakeLists.txt # File that is patched. - ${EP_BASE}/Source/build_libharu/src/hpdf_streams.c - COMMAND ${CMAKE_COMMAND} -E make_directory ${EP_BASE}/Source/build_libharu/cmake/modules + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_streams.c + COMMAND ${CMAKE_COMMAND} -E make_directory ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libharu/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libharu/demo/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/demo/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/demo/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/demo/CMakeLists.txt COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libharu/src/hpdf_page_operator.c - ${EP_BASE}/Source/build_libharu/src/hpdf_page_operator.c + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/hpdf_page_operator.c + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_page_operator.c COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libharu/src/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/src/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libharu/cmake/modules/haru.cmake - ${EP_BASE}/Source/build_libharu/cmake/modules/haru.cmake + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/haru.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/haru.cmake COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libharu/cmake/modules/summary.cmake - ${EP_BASE}/Source/build_libharu/cmake/modules/summary.cmake + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/summary.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/summary.cmake COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libharu/include/hpdf_consts.h - ${EP_BASE}/Source/build_libharu/include/hpdf_consts.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_consts.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_consts.h COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libharu/include/hpdf_config.h.cmake - ${EP_BASE}/Source/build_libharu/include/hpdf_config.h.cmake + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_config.h.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_config.h.cmake COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libharu/include/hpdf.h - ${EP_BASE}/Source/build_libharu/include/hpdf.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf.h COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libharu/include/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/include/CMakeLists.txt - COMMAND ${PATCH_EXECUTABLE} -d ${EP_BASE}/Source/build_libharu -p1 < ${CMAKE_SOURCE_DIR}/libharu/include_hpdf_config.h.patch - COMMENT "Updating of libharu build system" + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/CMakeLists.txt + COMMAND ${PATCH_EXECUTABLE} -d ${EP_BASE}/Source/build_${BP_PACKAGE} -p1 < ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include_hpdf_config.h.patch + COMMENT "Updating of ${BP_PACKAGE} build system" DEPENDS - ${CMAKE_SOURCE_DIR}/libharu/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/libharu/demo/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/libharu/src/hpdf_page_operator.c - ${CMAKE_SOURCE_DIR}/libharu/src/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/libharu/cmake/modules/haru.cmake - ${CMAKE_SOURCE_DIR}/libharu/cmake/modules/summary.cmake - ${CMAKE_SOURCE_DIR}/libharu/include/hpdf_consts.h - ${CMAKE_SOURCE_DIR}/libharu/include/hpdf_config.h.cmake - ${CMAKE_SOURCE_DIR}/libharu/include/hpdf.h - ${CMAKE_SOURCE_DIR}/libharu/include/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/libharu/include_hpdf_config.h.patch + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/demo/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/hpdf_page_operator.c + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/haru.cmake + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/summary.cmake + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_consts.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_config.h.cmake + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include_hpdf_config.h.patch ) -ExternalProject_Add_Step(build_libharu update_build_system - COMMENT "Updated libharu build system" +ExternalProject_Add_Step(build_${BP_PACKAGE} update_build_system + COMMENT "Updated ${BP_PACKAGE} build system" DEPENDEES download DEPENDERS configure DEPENDS - ${EP_BASE}/Source/build_libharu/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/demo/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/src/hpdf_page_operator.c - ${EP_BASE}/Source/build_libharu/src/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/cmake/modules/haru.cmake - ${EP_BASE}/Source/build_libharu/cmake/modules/summary.cmake - ${EP_BASE}/Source/build_libharu/include/hpdf_consts.h - ${EP_BASE}/Source/build_libharu/include/hpdf_config.h.cmake - ${EP_BASE}/Source/build_libharu/include/hpdf.h - ${EP_BASE}/Source/build_libharu/include/CMakeLists.txt - ${EP_BASE}/Source/build_libharu/src/hpdf_streams.c + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/demo/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_page_operator.c + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/haru.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/summary.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_consts.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_config.h.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_streams.c ALWAYS OFF ) # Restore BP_PATH to original state. set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") -#message(STATUS "shapelib restored original BP_PATH = ${BP_PATH}") +#message(STATUS "${BP_PACKAGE} restored original BP_PATH = ${BP_PATH}") Modified: trunk/cmake/build_projects/libqhull/ep.cmake =================================================================== --- trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-07 16:03:35 UTC (rev 12374) +++ trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-07 18:46:54 UTC (rev 12375) @@ -1,6 +1,6 @@ # libqhull/ep.cmake # This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build and test of libqhull. +# CMakeLists.txt file to configure the build of libqhull. # Copyright (C) 2013 Alan W. Irwin @@ -24,23 +24,25 @@ # used below that configure how the External_Project functions # operate. +set(BP_PACKAGE libqhull) + # Data that is related to downloads. -set(libqhull_URL http://www.qhull.org/download/qhull-2010.1-src.tgz) -set(libqhull_URL_MD5 e64138470acdeb18f752a0bc2a11ceb4) +set(${BP_PACKAGE}_URL http://www.qhull.org/download/qhull-2010.1-src.tgz) +set(${BP_PACKAGE}_URL_MD5 e64138470acdeb18f752a0bc2a11ceb4) # 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_libqhull/dll;${BP_PATH_NODLL}") + #set(BP_PATH "${EP_BASE}/Build/build_${BP_PACKAGE}/dll;${BP_PATH_NODLL}") determine_msys_path(BP_PATH "${BP_PATH}") endif(MSYS_PLATFORM) -#message(STATUS "modified BP_PATH for libqhull = ${BP_PATH}") +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") ExternalProject_Add( - build_libqhull - URL ${libqhull_URL} - URL_MD5 ${libqhull_URL_MD5} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_libqhull + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install STEP_TARGETS download update_build_system configure build install test @@ -50,47 +52,47 @@ # rather than time stamps alone. add_custom_command( OUTPUT - ${EP_BASE}/Source/build_libqhull/CMakeLists.txt - ${EP_BASE}/Source/build_libqhull/src/CMakeLists.txt - ${EP_BASE}/Source/build_libqhull/src/libqhull.h - ${EP_BASE}/Source/build_libqhull/src/mem.h - ${EP_BASE}/Source/build_libqhull/src/unix.c + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/${BP_PACKAGE}.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/mem.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/unix.c COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libqhull/CMakeLists.txt - ${EP_BASE}/Source/build_libqhull/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libqhull/src/CMakeLists.txt - ${EP_BASE}/Source/build_libqhull/src/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libqhull/src/libqhull.h - ${EP_BASE}/Source/build_libqhull/src/libqhull.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/${BP_PACKAGE}.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/${BP_PACKAGE}.h COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libqhull/src/mem.h - ${EP_BASE}/Source/build_libqhull/src/mem.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/mem.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/mem.h COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/libqhull/src/unix.c - ${EP_BASE}/Source/build_libqhull/src/unix.c - COMMENT "Updating of libqhull build system" + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/unix.c + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/unix.c + COMMENT "Updating of ${BP_PACKAGE} build system" DEPENDS - ${CMAKE_SOURCE_DIR}/libqhull/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/libqhull/src/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/libqhull/src/libqhull.h - ${CMAKE_SOURCE_DIR}/libqhull/src/mem.h - ${CMAKE_SOURCE_DIR}/libqhull/src/unix.c + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/${BP_PACKAGE}.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/mem.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/unix.c ) -ExternalProject_Add_Step(build_libqhull update_build_system - COMMENT "Updated libqhull build system" +ExternalProject_Add_Step(build_${BP_PACKAGE} update_build_system + COMMENT "Updated ${BP_PACKAGE} build system" DEPENDEES download DEPENDERS configure DEPENDS - ${EP_BASE}/Source/build_libqhull/CMakeLists.txt - ${EP_BASE}/Source/build_libqhull/src/CMakeLists.txt - ${EP_BASE}/Source/build_libqhull/src/libqhull.h - ${EP_BASE}/Source/build_libqhull/src/mem.h - ${EP_BASE}/Source/build_libqhull/src/unix.c + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/${BP_PACKAGE}.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/mem.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/unix.c ALWAYS OFF ) # Restore BP_PATH to original state. set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") -#message(STATUS "shapelib restored original BP_PATH = ${BP_PATH}") +#message(STATUS "${BP_PACKAGE} restored original BP_PATH = ${BP_PATH}") Modified: trunk/cmake/build_projects/ndiff/ep.cmake =================================================================== --- trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-07 16:03:35 UTC (rev 12374) +++ trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-07 18:46:54 UTC (rev 12375) @@ -1,6 +1,6 @@ # ndiff/ep.cmake # This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build and test of ndiff. +# CMakeLists.txt file to configure the build of ndiff. # Copyright (C) 2013 Alan W. Irwin @@ -24,27 +24,29 @@ # used below that configure how the External_Project functions # operate. +set(BP_PACKAGE ndiff) + # Data that is related to downloads. -set(ndiff_URL ftp://ftp.math.utah.edu/pub/misc/ndiff-2.00.tar.gz) +set(${BP_PACKAGE}_URL ftp://ftp.math.utah.edu/pub/misc/${BP_PACKAGE}-2.00.tar.gz) # The MD5 value below is correct for the gpg --verified version # Use URL_MD5 because ExternalProject_Add doesn't deal with gpg --version. # In any case, gpg is not available for the MSYS_PLATFORM case. -set(ndiff_URL_MD5 885548b4dc26e72c5455bebb5ba6c16d) +set(${BP_PACKAGE}_URL_MD5 885548b4dc26e72c5455bebb5ba6c16d) # 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_ndiff/dll;${BP_PATH_NODLL}") + #set(BP_PATH "${EP_BASE}/Build/build_${BP_PACKAGE}/dll;${BP_PATH_NODLL}") determine_msys_path(BP_PATH "${BP_PATH}") endif(MSYS_PLATFORM) -#message(STATUS "modified BP_PATH for ndiff = ${BP_PATH}") +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") ExternalProject_Add( - build_ndiff - URL ${ndiff_URL} - URL_MD5 ${ndiff_URL_MD5} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_ndiff + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} TEST_BEFORE_INSTALL ON TEST_COMMAND ${BP_PARALLEL_CTEST_COMMAND} @@ -56,29 +58,29 @@ # rather than time stamps alone. add_custom_command( OUTPUT - ${EP_BASE}/Source/build_ndiff/CMakeLists.txt - ${EP_BASE}/Source/build_ndiff/config.h.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/config.h.cmake COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/ndiff/CMakeLists.txt - ${EP_BASE}/Source/build_ndiff/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/ndiff/config.h.cmake - ${EP_BASE}/Source/build_ndiff/config.h.cmake - COMMENT "Updating of ndiff build system" + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/config.h.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/config.h.cmake + COMMENT "Updating of ${BP_PACKAGE} build system" DEPENDS - ${CMAKE_SOURCE_DIR}/ndiff/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/ndiff/config.h.cmake + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/config.h.cmake ) -ExternalProject_Add_Step(build_ndiff update_build_system - COMMENT "Updated ndiff build system" +ExternalProject_Add_Step(build_${BP_PACKAGE} update_build_system + COMMENT "Updated ${BP_PACKAGE} build system" DEPENDEES download DEPENDERS configure DEPENDS - ${EP_BASE}/Source/build_ndiff/CMakeLists.txt - ${EP_BASE}/Source/build_ndiff/config.h.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/config.h.cmake ALWAYS OFF ) # Restore BP_PATH to original state. set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") -#message(STATUS "shapelib restored original BP_PATH = ${BP_PATH}") +#message(STATUS "${BP_PACKAGE} restored original BP_PATH = ${BP_PATH}") Modified: trunk/cmake/build_projects/shapelib/ep.cmake =================================================================== --- trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-07 16:03:35 UTC (rev 12374) +++ trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-07 18:46:54 UTC (rev 12375) @@ -1,6 +1,6 @@ # shapelib/ep.cmake # This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build and test of shapelib. +# CMakeLists.txt file to configure the build of shapelib. # Copyright (C) 2013 Alan W. Irwin @@ -24,26 +24,28 @@ # used below that configure how the External_Project functions # operate. +set(BP_PACKAGE shapelib) + # Data that is related to downloads. -set(shapelib_URL http://download.osgeo.org/shapelib/shapelib-1.3.0.tar.gz) -set(shapelib_URL_MD5 2ff7d0b21d4b7506b452524492795f77) +set(${BP_PACKAGE}_URL http://download.osgeo.org/${BP_PACKAGE}/${BP_PACKAGE}-1.3.0.tar.gz) +set(${BP_PACKAGE}_URL_MD5 2ff7d0b21d4b7506b452524492795f77) -set(shape_eg_data_URL http://dl.maptools.org/dl/shapelib/shape_eg_data.zip) +set(shape_eg_data_URL http://dl.maptools.org/dl/${BP_PACKAGE}/shape_eg_data.zip) set(shape_eg_data_URL_MD5 36208abd5d34c5c80101d8b214109f0d) # 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_shapelib/dll;${BP_PATH_NODLL}") + set(BP_PATH "${EP_BASE}/Build/build_${BP_PACKAGE}/dll;${BP_PATH_NODLL}") determine_msys_path(BP_PATH "${BP_PATH}") endif(MSYS_PLATFORM) -#message(STATUS "modified BP_PATH for shapelib = ${BP_PATH}") +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") ExternalProject_Add( - build_shapelib - URL ${shapelib_URL} - URL_MD5 ${shapelib_URL_MD5} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DEG_DATA:PATH=${EP_BASE}/Source/build_shapelib/eg_data ${EP_BASE}/Source/build_shapelib + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DEG_DATA:PATH=${EP_BASE}/Source/build_${BP_PACKAGE}/eg_data ${EP_BASE}/Source/build_${BP_PACKAGE} BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} TEST_BEFORE_INSTALL ON TEST_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_CTEST_COMMAND} @@ -55,40 +57,40 @@ # generate real file dependencies rather than time stamps alone. add_custom_command( OUTPUT - ${EP_BASE}/Source/build_shapelib/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/shapelib/CMakeLists.txt - ${EP_BASE}/Source/build_shapelib/CMakeLists.txt - COMMENT "Updating of shapelib build system" + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + COMMENT "Updating of ${BP_PACKAGE} build system" DEPENDS - ${CMAKE_SOURCE_DIR}/shapelib/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt ) -ExternalProject_Add_Step(build_shapelib update_build_system - COMMENT "Updated shapelib build system" +ExternalProject_Add_Step(build_${BP_PACKAGE} update_build_system + COMMENT "Updated ${BP_PACKAGE} build system" DEPENDEES download DEPENDERS configure DEPENDS - ${EP_BASE}/Source/build_shapelib/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt ALWAYS OFF ) add_custom_command( OUTPUT - ${EP_BASE}/Download/build_shapelib/shape_eg_data.zip - COMMAND ${CMAKE_COMMAND} -DURL:STRING=${shape_eg_data_URL} -DFILE:FILEPATH=${EP_BASE}/Download/build_shapelib/shape_eg_data.zip -DMD5:STRING=${shape_eg_data_URL_MD5} -P ${CMAKE_SOURCE_DIR}/download_check.cmake - COMMAND ${CMAKE_COMMAND} -E remove_directory ${EP_BASE}/Source/build_shapelib/eg_data - COMMAND ${UNZIP_EXECUTABLE} -q ${EP_BASE}/Download/build_shapelib/shape_eg_data.zip -d ${EP_BASE}/Source/build_shapelib/eg_data - COMMENT "getting eg_data for shapelib test" + ${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip + COMMAND ${CMAKE_COMMAND} -DURL:STRING=${shape_eg_data_URL} -DFILE:FILEPATH=${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip -DMD5:STRING=${shape_eg_data_URL_MD5} -P ${CMAKE_SOURCE_DIR}/download_check.cmake + COMMAND ${CMAKE_COMMAND} -E remove_directory ${EP_BASE}/Source/build_${BP_PACKAGE}/eg_data + COMMAND ${UNZIP_EXECUTABLE} -q ${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip -d ${EP_BASE}/Source/build_${BP_PACKAGE}/eg_data + COMMENT "getting eg_data for ${BP_PACKAGE} test" ) -ExternalProject_Add_Step(build_shapelib get_eg_data - COMMENT "got eg_data for shapelib test" +ExternalProject_Add_Step(build_${BP_PACKAGE} get_eg_data + COMMENT "got eg_data for ${BP_PACKAGE} test" DEPENDEES download DEPENDERS configure DEPENDS - ${EP_BASE}/Download/build_shapelib/shape_eg_data.zip + ${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip ALWAYS OFF ) # Restore BP_PATH to original state. set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") -#message(STATUS "shapelib restored original BP_PATH = ${BP_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. |
From: <ai...@us...> - 2013-06-12 19:09:51
|
Revision: 12378 http://sourceforge.net/p/plplot/code/12378 Author: airwin Date: 2013-06-12 19:09:48 +0000 (Wed, 12 Jun 2013) Log Message: ----------- Use the APPEND signature of add_custom_command for custom steps in updating the software for each of the build configurations. This change greatly simplifies the CMake logic and satisfies the stringent dependency checks done by the CMake "Ninja" generator. Use the env command for all configuration, build, test, and install steps. Reorganize the CMake logic for the overall project including a build_all target to build all configured projects. Tested by: Alan W. Irwin <ai...@us...> using the build_all target for "Unix Makefiles" and "Ninja" generators on Linux and the "MSYS Makefiles", "MinGW Makefiles", and "Ninja" generators on the Wine version of Windows. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt trunk/cmake/build_projects/libagg/ep.cmake trunk/cmake/build_projects/libharu/ep.cmake trunk/cmake/build_projects/libqhull/ep.cmake trunk/cmake/build_projects/ndiff/ep.cmake trunk/cmake/build_projects/plplot/ep.cmake trunk/cmake/build_projects/shapelib/ep.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-06-12 18:51:28 UTC (rev 12377) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-06-12 19:09:48 UTC (rev 12378) @@ -22,6 +22,7 @@ message(STATUS "CMake version = ${CMAKE_VERSION}") message(STATUS "CMAKE_SYSTEM = ${CMAKE_SYSTEM}") +message(STATUS "CMAKE_GENERATOR = ${CMAKE_GENERATOR}") message(STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}") cmake_minimum_required(VERSION 2.8.10.2 FATAL_ERROR) @@ -99,24 +100,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}) include(ExternalProject) -# Propagate the overall CMake generator and install prefix to all CMake-based -# software project builds. -set(BP_CMAKE_COMMAND cmake "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}) - -# The non-parallel versions are for build systems that -# apparently have race conditions for parallel builds. -if(CMAKE_GENERATOR STREQUAL "MinGW Makefiles") - set(BP_BUILD_COMMAND mingw32-make) -else(CMAKE_GENERATOR STREQUAL "MinGW Makefiles") - set(BP_BUILD_COMMAND make) -endif(CMAKE_GENERATOR STREQUAL "MinGW Makefiles") -set(BP_PARALLEL_BUILD_COMMAND ${BP_BUILD_COMMAND} -j4) -set(BP_CTEST_COMMAND ctest) -set(BP_PARALLEL_CTEST_COMMAND ctest -j4) - -set(BP_ORIGINAL_NATIVE_PATH "$ENV{PATH}") -set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") - if(MSYS_PLATFORM) # Useful function to convert Windows list of semicolon-delimited # PATHs to the equivalent list of MSYS PATHs (exactly like the @@ -135,13 +118,65 @@ endfunction(determine_msys_path) endif(MSYS_PLATFORM) +# This works for at least Linux make, ninja, MinGW mingw32_make, MSYS make, +# and jom. +set(BP_BUILD_COMMAND "${CMAKE_MAKE_PROGRAM}") + +set(BP_CTEST_COMMAND "${CMAKE_CTEST_COMMAND}") + +if(MSYS_PLATFORM) + # On the MSYS platform, the env command (used to set relevant + # environment variables for the commands below in the */ep.cmake + # scripts) requires all full paths be in the MSYS platform form. + determine_msys_path(BP_CMAKE_COMMAND "${BP_CMAKE_COMMAND}") + determine_msys_path(BP_BUILD_COMMAND "${BP_BUILD_COMMAND}") + determine_msys_path(BP_CTEST_COMMAND "${BP_CTEST_COMMAND}") + determine_msys_path(MSYS_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + determine_msys_path(MSYS_CMAKE_COMMAND "${CMAKE_COMMAND}") + # Propagate the overall CMake generator and install prefix to all CMake-based + # software project builds. + set(BP_CMAKE_COMMAND ${MSYS_CMAKE_COMMAND} "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${MSYS_CMAKE_INSTALL_PREFIX}) +else(MSYS_PLATFORM) + # Propagate the overall CMake generator and install prefix to all CMake-based + # software project builds. + set(BP_CMAKE_COMMAND ${CMAKE_COMMAND} "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}) +endif(MSYS_PLATFORM) + + +# The parallel versions are for software packages that +# do not have race conditions for parallel builds or tests. +set(BP_PARALLEL_BUILD_COMMAND "${BP_BUILD_COMMAND}" -j4) +set(BP_PARALLEL_CTEST_COMMAND "${BP_CTEST_COMMAND}" -j4) + +message(STATUS "BP_CMAKE_COMMAND = ${BP_CMAKE_COMMAND}") +message(STATUS "BP_BUILD_COMMAND = ${BP_BUILD_COMMAND}") +message(STATUS "BP_PARALLEL_BUILD_COMMAND = ${BP_PARALLEL_BUILD_COMMAND}") +message(STATUS "BP_CTEST_COMMAND = ${BP_CTEST_COMMAND}") +message(STATUS "BP_PARALLEL_CTEST_COMMAND = ${BP_PARALLEL_CTEST_COMMAND}") + + +set(BP_ORIGINAL_NATIVE_PATH "$ENV{PATH}") +set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") + # Now include the build configurations for certain targets and their # dependencies. +# Each (directly or indirectly) included build configuration +# that is judged to be working should append its target to build_target_LIST +# so that in the logic below we can creat a "build_all" target that depends +# on those individual build targets +set(build_target_LIST) + # Configure a build of ndiff. The ndiff application is not a a PLplot # dependency, but still this fuzzy diff is quite useful for PLplot # developers. include(ndiff/ep.cmake) +# Configure wxwidgets, a soft (optional) PLplot dependency +#include(wxwidgets/ep.cmake) + # Configure a build of PLplot and its dependencies. -include(plplot/ep.cmake) \ No newline at end of file +include(plplot/ep.cmake) + +add_custom_target(build_all) +add_dependencies(build_all ${build_target_LIST}) Modified: trunk/cmake/build_projects/libagg/ep.cmake =================================================================== --- trunk/cmake/build_projects/libagg/ep.cmake 2013-06-12 18:51:28 UTC (rev 12377) +++ trunk/cmake/build_projects/libagg/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) @@ -41,34 +41,26 @@ ExternalProject_Add( build_${BP_PACKAGE} URL ${${BP_PACKAGE}_URL} - URL_MD5 ${${BP_PACKAGE}_URL_MD5} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} - BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} - INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install - STEP_TARGETS download update_build_system configure build install + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install ) -# Use custom command approach to generate real file dependencies -# rather than time stamps alone. +# Add custom commands to the current no-command update step. add_custom_command( OUTPUT - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - COMMENT "Updating of ${BP_PACKAGE} build system" + COMMENT "Custom updating of ${BP_PACKAGE}" DEPENDS ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + APPEND ) -ExternalProject_Add_Step(build_${BP_PACKAGE} update_build_system - COMMENT "Updated ${BP_PACKAGE} build system" - DEPENDEES download - DEPENDERS configure - DEPENDS - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - ALWAYS OFF - ) +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/libharu/ep.cmake =================================================================== --- trunk/cmake/build_projects/libharu/ep.cmake 2013-06-12 18:51:28 UTC (rev 12377) +++ trunk/cmake/build_projects/libharu/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) @@ -44,62 +44,49 @@ URL_MD5 ${${BP_PACKAGE}_URL_MD5} # Note -DPOST_2.1.0=OFF is essential for the 2.1.0 version, but you # should drop this option for anything after 2.1.0. Also note that - # -D${BP_PACKAGE}_EXAMPLES=ON builds the demos, but does not test them. - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DPOST_2.1.0=OFF -D${BP_PACKAGE}_EXAMPLES=ON ${EP_BASE}/Source/build_${BP_PACKAGE} - BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} - INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install - STEP_TARGETS download update_build_system configure build install test + # -DLIBHARU_EXAMPLES=ON builds the demos, but does not test them. + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DPOST_2.1.0=OFF -DLIBHARU_EXAMPLES=ON ${EP_BASE}/Source/build_${BP_PACKAGE} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install ) -# Use custom command approach to generate real file dependencies -# rather than time stamps alone. +# Add custom commands to the current no-command update step. add_custom_command( OUTPUT - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/demo/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_page_operator.c - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/haru.cmake - ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/summary.cmake - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_consts.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_config.h.cmake - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/CMakeLists.txt - # File that is patched. - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_streams.c + ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update COMMAND ${CMAKE_COMMAND} -E make_directory ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/demo/CMakeLists.txt ${EP_BASE}/Source/build_${BP_PACKAGE}/demo/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/hpdf_page_operator.c ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_page_operator.c - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/haru.cmake ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/haru.cmake - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/summary.cmake ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/summary.cmake - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_consts.h ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_consts.h - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_config.h.cmake ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_config.h.cmake - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf.h ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf.h - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/CMakeLists.txt ${EP_BASE}/Source/build_${BP_PACKAGE}/include/CMakeLists.txt COMMAND ${PATCH_EXECUTABLE} -d ${EP_BASE}/Source/build_${BP_PACKAGE} -p1 < ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include_hpdf_config.h.patch - COMMENT "Updating of ${BP_PACKAGE} build system" + COMMENT "Custom updating of ${BP_PACKAGE}" DEPENDS ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/demo/CMakeLists.txt @@ -112,26 +99,10 @@ ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf.h ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/CMakeLists.txt ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include_hpdf_config.h.patch + APPEND ) -ExternalProject_Add_Step(build_${BP_PACKAGE} update_build_system - COMMENT "Updated ${BP_PACKAGE} build system" - DEPENDEES download - DEPENDERS configure - DEPENDS - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/demo/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_page_operator.c - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/haru.cmake - ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/summary.cmake - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_consts.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_config.h.cmake - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_streams.c - ALWAYS OFF - ) +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/libqhull/ep.cmake =================================================================== --- trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-12 18:51:28 UTC (rev 12377) +++ trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) @@ -41,27 +41,21 @@ ExternalProject_Add( build_${BP_PACKAGE} URL ${${BP_PACKAGE}_URL} - URL_MD5 ${${BP_PACKAGE}_URL_MD5} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} - BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} - INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install - STEP_TARGETS download update_build_system configure build install test + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install ) -# Use custom command approach to generate real file dependencies -# rather than time stamps alone. +# Add custom commands to the current no-command update step. add_custom_command( OUTPUT - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/${BP_PACKAGE}.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/mem.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/unix.c - COMMAND ${CMAKE_COMMAND} -E copy + ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/${BP_PACKAGE}.h @@ -72,27 +66,17 @@ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/unix.c ${EP_BASE}/Source/build_${BP_PACKAGE}/src/unix.c - COMMENT "Updating of ${BP_PACKAGE} build system" + COMMENT "Custom updating of ${BP_PACKAGE}" DEPENDS ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/${BP_PACKAGE}.h ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/mem.h ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/unix.c + APPEND ) -ExternalProject_Add_Step(build_${BP_PACKAGE} update_build_system - COMMENT "Updated ${BP_PACKAGE} build system" - DEPENDEES download - DEPENDERS configure - DEPENDS - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/${BP_PACKAGE}.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/mem.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/unix.c - ALWAYS OFF - ) +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/ndiff/ep.cmake =================================================================== --- trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-12 18:51:28 UTC (rev 12377) +++ trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) @@ -45,42 +45,32 @@ ExternalProject_Add( build_${BP_PACKAGE} URL ${${BP_PACKAGE}_URL} - URL_MD5 ${${BP_PACKAGE}_URL_MD5} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} - BUILD_COMMAND ${BP_PARALLEL_BUILD_COMMAND} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} TEST_BEFORE_INSTALL ON - TEST_COMMAND ${BP_PARALLEL_CTEST_COMMAND} - INSTALL_COMMAND ${BP_PARALLEL_BUILD_COMMAND} install - STEP_TARGETS download update_build_system configure build install test + TEST_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_CTEST_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install ) -# Use custom command approach to generate real file dependencies -# rather than time stamps alone. +# Add custom commands to the current no-command update step. add_custom_command( OUTPUT - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/config.h.cmake - COMMAND ${CMAKE_COMMAND} -E copy + ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/config.h.cmake ${EP_BASE}/Source/build_${BP_PACKAGE}/config.h.cmake - COMMENT "Updating of ${BP_PACKAGE} build system" + COMMENT "Custom updating of ${BP_PACKAGE}" DEPENDS ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/config.h.cmake + APPEND ) -ExternalProject_Add_Step(build_${BP_PACKAGE} update_build_system - COMMENT "Updated ${BP_PACKAGE} build system" - DEPENDEES download - DEPENDERS configure - DEPENDS - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/config.h.cmake - ALWAYS OFF - ) +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/plplot/ep.cmake =================================================================== --- trunk/cmake/build_projects/plplot/ep.cmake 2013-06-12 18:51:28 UTC (rev 12377) +++ trunk/cmake/build_projects/plplot/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) @@ -34,7 +34,7 @@ # (Not implemented yet, but create empty custom target with correct # target dependencies as if that target were actually a PLplot build). add_custom_target(build_plplot) -add_dependencies(build_plplot +add_dependencies(build_plplot build_shapelib build_libqhull build_libharu Modified: trunk/cmake/build_projects/shapelib/ep.cmake =================================================================== --- trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-12 18:51:28 UTC (rev 12377) +++ trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) @@ -50,47 +50,28 @@ TEST_BEFORE_INSTALL ON TEST_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_CTEST_COMMAND} INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install - STEP_TARGETS download update_build_system get_eg_data configure build install test ) -# Use custom command approach to allow more than one COMMAND and/or -# generate real file dependencies rather than time stamps alone. +# Add custom commands to the current no-command update step. add_custom_command( OUTPUT - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - COMMENT "Updating of ${BP_PACKAGE} build system" - DEPENDS + ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - ) -ExternalProject_Add_Step(build_${BP_PACKAGE} update_build_system - COMMENT "Updated ${BP_PACKAGE} build system" - DEPENDEES download - DEPENDERS configure - DEPENDS ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - ALWAYS OFF - ) - -add_custom_command( - OUTPUT - ${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip COMMAND ${CMAKE_COMMAND} -DURL:STRING=${shape_eg_data_URL} -DFILE:FILEPATH=${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip -DMD5:STRING=${shape_eg_data_URL_MD5} -P ${CMAKE_SOURCE_DIR}/download_check.cmake COMMAND ${CMAKE_COMMAND} -E remove_directory ${EP_BASE}/Source/build_${BP_PACKAGE}/eg_data COMMAND ${UNZIP_EXECUTABLE} -q ${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip -d ${EP_BASE}/Source/build_${BP_PACKAGE}/eg_data - COMMENT "getting eg_data for ${BP_PACKAGE} test" - ) -ExternalProject_Add_Step(build_${BP_PACKAGE} get_eg_data - COMMENT "got eg_data for ${BP_PACKAGE} test" - DEPENDEES download - DEPENDERS configure + COMMENT "Custom updating of ${BP_PACKAGE}" DEPENDS - ${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip - ALWAYS OFF + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/download_check.cmake + # N.B. no file dependencies are worthwhile for the eg_data + # chain above since it all starts with a download. + APPEND ) +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. |
From: <ai...@us...> - 2013-06-12 19:27:28
|
Revision: 12379 http://sourceforge.net/p/plplot/code/12379 Author: airwin Date: 2013-06-12 19:27:26 +0000 (Wed, 12 Jun 2013) Log Message: ----------- Move all ep.cmake files and references to those files to bp.cmake to be consistent with the build_projects name of the project (rather than the ExternalProject_Add CMake function used to implement the project). Tested by: Alan W. Irwin <ai...@us...> using the build_all target for the "Ninja" generator on Linux. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt Added Paths: ----------- trunk/cmake/build_projects/libagg/bp.cmake trunk/cmake/build_projects/libharu/bp.cmake trunk/cmake/build_projects/libqhull/bp.cmake trunk/cmake/build_projects/ndiff/bp.cmake trunk/cmake/build_projects/plplot/bp.cmake trunk/cmake/build_projects/shapelib/bp.cmake Removed Paths: ------------- trunk/cmake/build_projects/libagg/ep.cmake trunk/cmake/build_projects/libharu/ep.cmake trunk/cmake/build_projects/libqhull/ep.cmake trunk/cmake/build_projects/ndiff/ep.cmake trunk/cmake/build_projects/plplot/ep.cmake trunk/cmake/build_projects/shapelib/ep.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-06-12 19:09:48 UTC (rev 12378) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-06-12 19:27:26 UTC (rev 12379) @@ -126,7 +126,7 @@ if(MSYS_PLATFORM) # On the MSYS platform, the env command (used to set relevant - # environment variables for the commands below in the */ep.cmake + # environment variables for the commands below in the */bp.cmake # scripts) requires all full paths be in the MSYS platform form. determine_msys_path(BP_CMAKE_COMMAND "${BP_CMAKE_COMMAND}") determine_msys_path(BP_BUILD_COMMAND "${BP_BUILD_COMMAND}") @@ -170,13 +170,13 @@ # Configure a build of ndiff. The ndiff application is not a a PLplot # dependency, but still this fuzzy diff is quite useful for PLplot # developers. -include(ndiff/ep.cmake) +include(ndiff/bp.cmake) # Configure wxwidgets, a soft (optional) PLplot dependency -#include(wxwidgets/ep.cmake) +#include(wxwidgets/bp.cmake) # Configure a build of PLplot and its dependencies. -include(plplot/ep.cmake) +include(plplot/bp.cmake) add_custom_target(build_all) add_dependencies(build_all ${build_target_LIST}) Copied: trunk/cmake/build_projects/libagg/bp.cmake (from rev 12378, trunk/cmake/build_projects/libagg/ep.cmake) =================================================================== --- trunk/cmake/build_projects/libagg/bp.cmake (rev 0) +++ trunk/cmake/build_projects/libagg/bp.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -0,0 +1,66 @@ +# libagg/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of libagg. + +# 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. + +set(BP_PACKAGE libagg) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://www.antigrain.com/agg-2.5.tar.gz) +set(${BP_PACKAGE}_URL_MD5 0229a488bc47be10a2fee6cf0b2febd6) + +# 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}") +endif(MSYS_PLATFORM) +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + +ExternalProject_Add( + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install + ) + +# Add custom commands to the current no-command update step. +add_custom_command( + OUTPUT + ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + COMMENT "Custom updating of ${BP_PACKAGE}" + DEPENDS + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + APPEND + ) + +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}") Deleted: trunk/cmake/build_projects/libagg/ep.cmake =================================================================== --- trunk/cmake/build_projects/libagg/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) +++ trunk/cmake/build_projects/libagg/ep.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -1,66 +0,0 @@ -# libagg/ep.cmake -# This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build of libagg. - -# 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. - -set(BP_PACKAGE libagg) - -# Data that is related to downloads. -set(${BP_PACKAGE}_URL http://www.antigrain.com/agg-2.5.tar.gz) -set(${BP_PACKAGE}_URL_MD5 0229a488bc47be10a2fee6cf0b2febd6) - -# 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}") -endif(MSYS_PLATFORM) -#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") - -ExternalProject_Add( - build_${BP_PACKAGE} - URL ${${BP_PACKAGE}_URL} - URL_MD5 ${${BP_PACKAGE}_URL_MD5} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} - BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} - INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install - ) - -# Add custom commands to the current no-command update step. -add_custom_command( - OUTPUT - ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - COMMENT "Custom updating of ${BP_PACKAGE}" - DEPENDS - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - APPEND - ) - -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}") Copied: trunk/cmake/build_projects/libharu/bp.cmake (from rev 12378, trunk/cmake/build_projects/libharu/ep.cmake) =================================================================== --- trunk/cmake/build_projects/libharu/bp.cmake (rev 0) +++ trunk/cmake/build_projects/libharu/bp.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -0,0 +1,108 @@ +# libharu/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of libharu. + +# 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. + +set(BP_PACKAGE libharu) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://${BP_PACKAGE}.org/files/${BP_PACKAGE}-2.1.0.tar.gz) +set(${BP_PACKAGE}_URL_MD5 0623b8fb08ae1b28af08b2cdbd66b662) + +# 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}") +endif(MSYS_PLATFORM) +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + +ExternalProject_Add( + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} + # Note -DPOST_2.1.0=OFF is essential for the 2.1.0 version, but you + # should drop this option for anything after 2.1.0. Also note that + # -DLIBHARU_EXAMPLES=ON builds the demos, but does not test them. + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DPOST_2.1.0=OFF -DLIBHARU_EXAMPLES=ON ${EP_BASE}/Source/build_${BP_PACKAGE} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install + ) + +# Add custom commands to the current no-command update step. +add_custom_command( + OUTPUT + ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update + COMMAND ${CMAKE_COMMAND} -E make_directory ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/demo/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/demo/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/hpdf_page_operator.c + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_page_operator.c + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/haru.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/haru.cmake + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/summary.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/summary.cmake + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_consts.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_consts.h + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_config.h.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_config.h.cmake + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf.h + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/include/CMakeLists.txt + COMMAND ${PATCH_EXECUTABLE} -d ${EP_BASE}/Source/build_${BP_PACKAGE} -p1 < ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include_hpdf_config.h.patch + COMMENT "Custom updating of ${BP_PACKAGE}" + DEPENDS + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/demo/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/hpdf_page_operator.c + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/haru.cmake + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/summary.cmake + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_consts.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_config.h.cmake + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include_hpdf_config.h.patch + APPEND + ) + +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}") Deleted: trunk/cmake/build_projects/libharu/ep.cmake =================================================================== --- trunk/cmake/build_projects/libharu/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) +++ trunk/cmake/build_projects/libharu/ep.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -1,108 +0,0 @@ -# libharu/ep.cmake -# This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build of libharu. - -# 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. - -set(BP_PACKAGE libharu) - -# Data that is related to downloads. -set(${BP_PACKAGE}_URL http://${BP_PACKAGE}.org/files/${BP_PACKAGE}-2.1.0.tar.gz) -set(${BP_PACKAGE}_URL_MD5 0623b8fb08ae1b28af08b2cdbd66b662) - -# 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}") -endif(MSYS_PLATFORM) -#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") - -ExternalProject_Add( - build_${BP_PACKAGE} - URL ${${BP_PACKAGE}_URL} - URL_MD5 ${${BP_PACKAGE}_URL_MD5} - # Note -DPOST_2.1.0=OFF is essential for the 2.1.0 version, but you - # should drop this option for anything after 2.1.0. Also note that - # -DLIBHARU_EXAMPLES=ON builds the demos, but does not test them. - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DPOST_2.1.0=OFF -DLIBHARU_EXAMPLES=ON ${EP_BASE}/Source/build_${BP_PACKAGE} - BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} - INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install - ) - -# Add custom commands to the current no-command update step. -add_custom_command( - OUTPUT - ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update - COMMAND ${CMAKE_COMMAND} -E make_directory ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/demo/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/demo/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/hpdf_page_operator.c - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/hpdf_page_operator.c - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/haru.cmake - ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/haru.cmake - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/summary.cmake - ${EP_BASE}/Source/build_${BP_PACKAGE}/cmake/modules/summary.cmake - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_consts.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_consts.h - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_config.h.cmake - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf_config.h.cmake - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/hpdf.h - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/include/CMakeLists.txt - COMMAND ${PATCH_EXECUTABLE} -d ${EP_BASE}/Source/build_${BP_PACKAGE} -p1 < ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include_hpdf_config.h.patch - COMMENT "Custom updating of ${BP_PACKAGE}" - DEPENDS - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/demo/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/hpdf_page_operator.c - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/haru.cmake - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/cmake/modules/summary.cmake - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_consts.h - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf_config.h.cmake - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/hpdf.h - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/include_hpdf_config.h.patch - APPEND - ) - -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}") Copied: trunk/cmake/build_projects/libqhull/bp.cmake (from rev 12378, trunk/cmake/build_projects/libqhull/ep.cmake) =================================================================== --- trunk/cmake/build_projects/libqhull/bp.cmake (rev 0) +++ trunk/cmake/build_projects/libqhull/bp.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -0,0 +1,82 @@ +# libqhull/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of libqhull. + +# 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. + +set(BP_PACKAGE libqhull) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://www.qhull.org/download/qhull-2010.1-src.tgz) +set(${BP_PACKAGE}_URL_MD5 e64138470acdeb18f752a0bc2a11ceb4) + +# 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}") +endif(MSYS_PLATFORM) +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + +ExternalProject_Add( + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install + ) + +# Add custom commands to the current no-command update step. +add_custom_command( + OUTPUT + ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/${BP_PACKAGE}.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/${BP_PACKAGE}.h + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/mem.h + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/mem.h + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/unix.c + ${EP_BASE}/Source/build_${BP_PACKAGE}/src/unix.c + COMMENT "Custom updating of ${BP_PACKAGE}" + DEPENDS + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/${BP_PACKAGE}.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/mem.h + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/unix.c + APPEND + ) + +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}") Deleted: trunk/cmake/build_projects/libqhull/ep.cmake =================================================================== --- trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) +++ trunk/cmake/build_projects/libqhull/ep.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -1,82 +0,0 @@ -# libqhull/ep.cmake -# This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build of libqhull. - -# 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. - -set(BP_PACKAGE libqhull) - -# Data that is related to downloads. -set(${BP_PACKAGE}_URL http://www.qhull.org/download/qhull-2010.1-src.tgz) -set(${BP_PACKAGE}_URL_MD5 e64138470acdeb18f752a0bc2a11ceb4) - -# 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}") -endif(MSYS_PLATFORM) -#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") - -ExternalProject_Add( - build_${BP_PACKAGE} - URL ${${BP_PACKAGE}_URL} - URL_MD5 ${${BP_PACKAGE}_URL_MD5} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} - BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} - INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install - ) - -# Add custom commands to the current no-command update step. -add_custom_command( - OUTPUT - ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/${BP_PACKAGE}.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/${BP_PACKAGE}.h - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/mem.h - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/mem.h - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/unix.c - ${EP_BASE}/Source/build_${BP_PACKAGE}/src/unix.c - COMMENT "Custom updating of ${BP_PACKAGE}" - DEPENDS - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/${BP_PACKAGE}.h - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/mem.h - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/src/unix.c - APPEND - ) - -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}") Copied: trunk/cmake/build_projects/ndiff/bp.cmake (from rev 12378, trunk/cmake/build_projects/ndiff/ep.cmake) =================================================================== --- trunk/cmake/build_projects/ndiff/bp.cmake (rev 0) +++ trunk/cmake/build_projects/ndiff/bp.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -0,0 +1,76 @@ +# ndiff/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of ndiff. + +# 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. + +set(BP_PACKAGE ndiff) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL ftp://ftp.math.utah.edu/pub/misc/${BP_PACKAGE}-2.00.tar.gz) + +# The MD5 value below is correct for the gpg --verified version +# Use URL_MD5 because ExternalProject_Add doesn't deal with gpg --version. +# In any case, gpg is not available for the MSYS_PLATFORM case. +set(${BP_PACKAGE}_URL_MD5 885548b4dc26e72c5455bebb5ba6c16d) + +# 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}") +endif(MSYS_PLATFORM) +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + +ExternalProject_Add( + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + TEST_BEFORE_INSTALL ON + TEST_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_CTEST_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install + ) + +# Add custom commands to the current no-command update step. +add_custom_command( + OUTPUT + ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/config.h.cmake + ${EP_BASE}/Source/build_${BP_PACKAGE}/config.h.cmake + COMMENT "Custom updating of ${BP_PACKAGE}" + DEPENDS + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/config.h.cmake + APPEND + ) + +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}") Deleted: trunk/cmake/build_projects/ndiff/ep.cmake =================================================================== --- trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) +++ trunk/cmake/build_projects/ndiff/ep.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -1,76 +0,0 @@ -# ndiff/ep.cmake -# This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build of ndiff. - -# 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. - -set(BP_PACKAGE ndiff) - -# Data that is related to downloads. -set(${BP_PACKAGE}_URL ftp://ftp.math.utah.edu/pub/misc/${BP_PACKAGE}-2.00.tar.gz) - -# The MD5 value below is correct for the gpg --verified version -# Use URL_MD5 because ExternalProject_Add doesn't deal with gpg --version. -# In any case, gpg is not available for the MSYS_PLATFORM case. -set(${BP_PACKAGE}_URL_MD5 885548b4dc26e72c5455bebb5ba6c16d) - -# 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}") -endif(MSYS_PLATFORM) -#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") - -ExternalProject_Add( - build_${BP_PACKAGE} - URL ${${BP_PACKAGE}_URL} - URL_MD5 ${${BP_PACKAGE}_URL_MD5} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} ${EP_BASE}/Source/build_${BP_PACKAGE} - BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} - TEST_BEFORE_INSTALL ON - TEST_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_CTEST_COMMAND} - INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install - ) - -# Add custom commands to the current no-command update step. -add_custom_command( - OUTPUT - ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/config.h.cmake - ${EP_BASE}/Source/build_${BP_PACKAGE}/config.h.cmake - COMMENT "Custom updating of ${BP_PACKAGE}" - DEPENDS - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/config.h.cmake - APPEND - ) - -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}") Copied: trunk/cmake/build_projects/plplot/bp.cmake (from rev 12378, trunk/cmake/build_projects/plplot/ep.cmake) =================================================================== --- trunk/cmake/build_projects/plplot/bp.cmake (rev 0) +++ trunk/cmake/build_projects/plplot/bp.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -0,0 +1,45 @@ +# plplot/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build and test of PLplot. + +# 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. +# Configure build of PLplot dependencies. + +include(shapelib/bp.cmake) +include(libqhull/bp.cmake) +include(libharu/bp.cmake) +include(libagg/bp.cmake) + +# Build PLplot itself. +# (Not implemented yet, but create empty custom target with correct +# target dependencies as if that target were actually a PLplot build). +add_custom_target(build_plplot) +add_dependencies(build_plplot + build_shapelib + build_libqhull + build_libharu + build_libagg + ) + + + Deleted: trunk/cmake/build_projects/plplot/ep.cmake =================================================================== --- trunk/cmake/build_projects/plplot/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) +++ trunk/cmake/build_projects/plplot/ep.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -1,45 +0,0 @@ -# plplot/ep.cmake -# This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build and test of PLplot. - -# 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. -# Configure build of PLplot dependencies. - -include(shapelib/ep.cmake) -include(libqhull/ep.cmake) -include(libharu/ep.cmake) -include(libagg/ep.cmake) - -# Build PLplot itself. -# (Not implemented yet, but create empty custom target with correct -# target dependencies as if that target were actually a PLplot build). -add_custom_target(build_plplot) -add_dependencies(build_plplot - build_shapelib - build_libqhull - build_libharu - build_libagg - ) - - - Copied: trunk/cmake/build_projects/shapelib/bp.cmake (from rev 12378, trunk/cmake/build_projects/shapelib/ep.cmake) =================================================================== --- trunk/cmake/build_projects/shapelib/bp.cmake (rev 0) +++ trunk/cmake/build_projects/shapelib/bp.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -0,0 +1,77 @@ +# shapelib/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of shapelib. + +# 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. + +set(BP_PACKAGE shapelib) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://download.osgeo.org/${BP_PACKAGE}/${BP_PACKAGE}-1.3.0.tar.gz) +set(${BP_PACKAGE}_URL_MD5 2ff7d0b21d4b7506b452524492795f77) + +set(shape_eg_data_URL http://dl.maptools.org/dl/${BP_PACKAGE}/shape_eg_data.zip) +set(shape_eg_data_URL_MD5 36208abd5d34c5c80101d8b214109f0d) + +# 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}") +endif(MSYS_PLATFORM) +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + +ExternalProject_Add( + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DEG_DATA:PATH=${EP_BASE}/Source/build_${BP_PACKAGE}/eg_data ${EP_BASE}/Source/build_${BP_PACKAGE} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + TEST_BEFORE_INSTALL ON + TEST_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_CTEST_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install + ) + +# Add custom commands to the current no-command update step. +add_custom_command( + OUTPUT + ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} -DURL:STRING=${shape_eg_data_URL} -DFILE:FILEPATH=${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip -DMD5:STRING=${shape_eg_data_URL_MD5} -P ${CMAKE_SOURCE_DIR}/download_check.cmake + COMMAND ${CMAKE_COMMAND} -E remove_directory ${EP_BASE}/Source/build_${BP_PACKAGE}/eg_data + COMMAND ${UNZIP_EXECUTABLE} -q ${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip -d ${EP_BASE}/Source/build_${BP_PACKAGE}/eg_data + COMMENT "Custom updating of ${BP_PACKAGE}" + DEPENDS + ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt + ${CMAKE_SOURCE_DIR}/download_check.cmake + # N.B. no file dependencies are worthwhile for the eg_data + # chain above since it all starts with a download. + APPEND + ) + +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}") Deleted: trunk/cmake/build_projects/shapelib/ep.cmake =================================================================== --- trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-12 19:09:48 UTC (rev 12378) +++ trunk/cmake/build_projects/shapelib/ep.cmake 2013-06-12 19:27:26 UTC (rev 12379) @@ -1,77 +0,0 @@ -# shapelib/ep.cmake -# This file should be included directly or indirectly from a top-level -# CMakeLists.txt file to configure the build of shapelib. - -# 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. - -set(BP_PACKAGE shapelib) - -# Data that is related to downloads. -set(${BP_PACKAGE}_URL http://download.osgeo.org/${BP_PACKAGE}/${BP_PACKAGE}-1.3.0.tar.gz) -set(${BP_PACKAGE}_URL_MD5 2ff7d0b21d4b7506b452524492795f77) - -set(shape_eg_data_URL http://dl.maptools.org/dl/${BP_PACKAGE}/shape_eg_data.zip) -set(shape_eg_data_URL_MD5 36208abd5d34c5c80101d8b214109f0d) - -# 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}") -endif(MSYS_PLATFORM) -#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") - -ExternalProject_Add( - build_${BP_PACKAGE} - URL ${${BP_PACKAGE}_URL} - URL_MD5 ${${BP_PACKAGE}_URL_MD5} - CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DEG_DATA:PATH=${EP_BASE}/Source/build_${BP_PACKAGE}/eg_data ${EP_BASE}/Source/build_${BP_PACKAGE} - BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} - TEST_BEFORE_INSTALL ON - TEST_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_CTEST_COMMAND} - INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install - ) - -# Add custom commands to the current no-command update step. -add_custom_command( - OUTPUT - ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-update - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - ${EP_BASE}/Source/build_${BP_PACKAGE}/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -DURL:STRING=${shape_eg_data_URL} -DFILE:FILEPATH=${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip -DMD5:STRING=${shape_eg_data_URL_MD5} -P ${CMAKE_SOURCE_DIR}/download_check.cmake - COMMAND ${CMAKE_COMMAND} -E remove_directory ${EP_BASE}/Source/build_${BP_PACKAGE}/eg_data - COMMAND ${UNZIP_EXECUTABLE} -q ${EP_BASE}/Download/build_${BP_PACKAGE}/shape_eg_data.zip -d ${EP_BASE}/Source/build_${BP_PACKAGE}/eg_data - COMMENT "Custom updating of ${BP_PACKAGE}" - DEPENDS - ${CMAKE_SOURCE_DIR}/${BP_PACKAGE}/CMakeLists.txt - ${CMAKE_SOURCE_DIR}/download_check.cmake - # N.B. no file dependencies are worthwhile for the eg_data - # chain above since it all starts with a download. - APPEND - ) - -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. |
From: <ai...@us...> - 2013-06-13 02:53:15
|
Revision: 12382 http://sourceforge.net/p/plplot/code/12382 Author: airwin Date: 2013-06-13 02:53:11 +0000 (Thu, 13 Jun 2013) Log Message: ----------- Add wxwidgets build configuration. Tested by: Alan W. Irwin <ai...@us...> using the build_wxwidgets target for the "Ninja" CMake generator both for Linux and Wine (git version near 1.6_rc1). Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt Added Paths: ----------- trunk/cmake/build_projects/wxwidgets/ trunk/cmake/build_projects/wxwidgets/bp.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-06-12 20:55:04 UTC (rev 12381) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-06-13 02:53:11 UTC (rev 12382) @@ -81,6 +81,7 @@ # individual project configurations will not work unless this is # available so might as well check it here. bash + make ) foreach(executable ${executables_LIST}) @@ -118,10 +119,14 @@ endfunction(determine_msys_path) endif(MSYS_PLATFORM) -# This works for at least Linux make, ninja, MinGW mingw32_make, MSYS make, -# and jom. +# This gives the full pathname of the associated build tool for at +# least the "Unix Makefiles", "Ninja", "MSYS Makefiles", "MinGW +# Makefiles", and "NMake Makefiles JOM" CMake generators. set(BP_BUILD_COMMAND "${CMAKE_MAKE_PROGRAM}") +# Actual make programme used for autotools builds. +set(BP_MAKE_COMMAND ${MAKE_EXECUTABLE}) + set(BP_CTEST_COMMAND "${CMAKE_CTEST_COMMAND}") if(MSYS_PLATFORM) @@ -130,31 +135,39 @@ # scripts) requires all full paths be in the MSYS platform form. determine_msys_path(BP_CMAKE_COMMAND "${BP_CMAKE_COMMAND}") determine_msys_path(BP_BUILD_COMMAND "${BP_BUILD_COMMAND}") + determine_msys_path(BP_MAKE_COMMAND "${BP_MAKE_COMMAND}") determine_msys_path(BP_CTEST_COMMAND "${BP_CTEST_COMMAND}") determine_msys_path(MSYS_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") determine_msys_path(MSYS_CMAKE_COMMAND "${CMAKE_COMMAND}") # Propagate the overall CMake generator and install prefix to all CMake-based # software project builds. set(BP_CMAKE_COMMAND ${MSYS_CMAKE_COMMAND} "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${MSYS_CMAKE_INSTALL_PREFIX}) + # Propagate the install prefix to autotools-based builds + set(BP_CONFIGURE_COMMAND configure --prefix=${MSYS_CMAKE_INSTALL_PREFIX}) else(MSYS_PLATFORM) # Propagate the overall CMake generator and install prefix to all CMake-based # software project builds. set(BP_CMAKE_COMMAND ${CMAKE_COMMAND} "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}) + # Propagate the install prefix to autotools-based builds + set(BP_CONFIGURE_COMMAND configure --prefix=${CMAKE_INSTALL_PREFIX}) endif(MSYS_PLATFORM) - # The parallel versions are for software packages that # do not have race conditions for parallel builds or tests. set(BP_PARALLEL_BUILD_COMMAND "${BP_BUILD_COMMAND}" -j4) set(BP_PARALLEL_CTEST_COMMAND "${BP_CTEST_COMMAND}" -j4) +# For autotools based builds. +set(BP_PARALLEL_MAKE_COMMAND "${BP_MAKE_COMMAND}" -j4) message(STATUS "BP_CMAKE_COMMAND = ${BP_CMAKE_COMMAND}") +message(STATUS "BP_CONFIGURE_COMMAND = ${BP_CONFIGURE_COMMAND}") message(STATUS "BP_BUILD_COMMAND = ${BP_BUILD_COMMAND}") message(STATUS "BP_PARALLEL_BUILD_COMMAND = ${BP_PARALLEL_BUILD_COMMAND}") +message(STATUS "BP_MAKE_COMMAND = ${BP_MAKE_COMMAND}") +message(STATUS "BP_PARALLEL_MAKE_COMMAND = ${BP_PARALLEL_MAKE_COMMAND}") message(STATUS "BP_CTEST_COMMAND = ${BP_CTEST_COMMAND}") message(STATUS "BP_PARALLEL_CTEST_COMMAND = ${BP_PARALLEL_CTEST_COMMAND}") - set(BP_ORIGINAL_NATIVE_PATH "$ENV{PATH}") set(BP_PATH "${BP_ORIGINAL_NATIVE_PATH}") @@ -172,8 +185,8 @@ # developers. include(ndiff/bp.cmake) -# Configure wxwidgets, a soft (optional) PLplot dependency -#include(wxwidgets/bp.cmake) +# Configure a build of wxwidgets, a soft (optional) PLplot dependency +include(wxwidgets/bp.cmake) # Configure a build of PLplot and its dependencies. include(plplot/bp.cmake) Added: trunk/cmake/build_projects/wxwidgets/bp.cmake =================================================================== --- trunk/cmake/build_projects/wxwidgets/bp.cmake (rev 0) +++ trunk/cmake/build_projects/wxwidgets/bp.cmake 2013-06-13 02:53:11 UTC (rev 12382) @@ -0,0 +1,62 @@ +# wxwidgets/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of wxwidgets. + +# 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. + +set(BP_PACKAGE wxwidgets) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.8.12.tar.gz) +set(${BP_PACKAGE}_URL_MD5 2fa39da14bc06ea86fe902579fedc5b1) + +# 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}") +else(MSYS_PLATFORM) + set(source_PATH "${EP_BASE}/Source/build_${BP_PACKAGE}") +endif(MSYS_PLATFORM) +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + +# The fno-keep-inline-dllexport flag required to work around +# the memory exhaustion issue discussed in +# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601 +# Still have memory exhaustion issues if you combine that +# with -O3 so do not use the -O3 optimization flag. +ExternalProject_Add( + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} CXXFLAGS=-fno-keep-inline-dllexport ${source_PATH}/${BP_CONFIGURE_COMMAND} --enable-shared --enable-unicode --enable-debug --enable-debug_gdb + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} + 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. |
From: <ai...@us...> - 2013-06-13 03:13:57
|
Revision: 12383 http://sourceforge.net/p/plplot/code/12383 Author: airwin Date: 2013-06-13 03:13:53 +0000 (Thu, 13 Jun 2013) Log Message: ----------- Protect against configuring a build twice in one CMake call, Modified Paths: -------------- trunk/cmake/build_projects/libagg/bp.cmake trunk/cmake/build_projects/libharu/bp.cmake trunk/cmake/build_projects/libqhull/bp.cmake trunk/cmake/build_projects/ndiff/bp.cmake trunk/cmake/build_projects/plplot/bp.cmake trunk/cmake/build_projects/shapelib/bp.cmake trunk/cmake/build_projects/wxwidgets/bp.cmake Modified: trunk/cmake/build_projects/libagg/bp.cmake =================================================================== --- trunk/cmake/build_projects/libagg/bp.cmake 2013-06-13 02:53:11 UTC (rev 12382) +++ trunk/cmake/build_projects/libagg/bp.cmake 2013-06-13 03:13:53 UTC (rev 12383) @@ -26,6 +26,12 @@ set(BP_PACKAGE libagg) +# Protect against configuring a build twice in one CMake call +if(${BP_PACKAGE}_configured) + return() +endif(${BP_PACKAGE}_configured) +set(${BP_PACKAGE}_configured ON) + # Data that is related to downloads. set(${BP_PACKAGE}_URL http://www.antigrain.com/agg-2.5.tar.gz) set(${BP_PACKAGE}_URL_MD5 0229a488bc47be10a2fee6cf0b2febd6) Modified: trunk/cmake/build_projects/libharu/bp.cmake =================================================================== --- trunk/cmake/build_projects/libharu/bp.cmake 2013-06-13 02:53:11 UTC (rev 12382) +++ trunk/cmake/build_projects/libharu/bp.cmake 2013-06-13 03:13:53 UTC (rev 12383) @@ -26,6 +26,12 @@ set(BP_PACKAGE libharu) +# Protect against configuring a build twice in one CMake call +if(${BP_PACKAGE}_configured) + return() +endif(${BP_PACKAGE}_configured) +set(${BP_PACKAGE}_configured ON) + # Data that is related to downloads. set(${BP_PACKAGE}_URL http://${BP_PACKAGE}.org/files/${BP_PACKAGE}-2.1.0.tar.gz) set(${BP_PACKAGE}_URL_MD5 0623b8fb08ae1b28af08b2cdbd66b662) Modified: trunk/cmake/build_projects/libqhull/bp.cmake =================================================================== --- trunk/cmake/build_projects/libqhull/bp.cmake 2013-06-13 02:53:11 UTC (rev 12382) +++ trunk/cmake/build_projects/libqhull/bp.cmake 2013-06-13 03:13:53 UTC (rev 12383) @@ -26,6 +26,12 @@ set(BP_PACKAGE libqhull) +# Protect against configuring a build twice in one CMake call +if(${BP_PACKAGE}_configured) + return() +endif(${BP_PACKAGE}_configured) +set(${BP_PACKAGE}_configured ON) + # Data that is related to downloads. set(${BP_PACKAGE}_URL http://www.qhull.org/download/qhull-2010.1-src.tgz) set(${BP_PACKAGE}_URL_MD5 e64138470acdeb18f752a0bc2a11ceb4) Modified: trunk/cmake/build_projects/ndiff/bp.cmake =================================================================== --- trunk/cmake/build_projects/ndiff/bp.cmake 2013-06-13 02:53:11 UTC (rev 12382) +++ trunk/cmake/build_projects/ndiff/bp.cmake 2013-06-13 03:13:53 UTC (rev 12383) @@ -26,6 +26,12 @@ set(BP_PACKAGE ndiff) +# Protect against configuring a build twice in one CMake call +if(${BP_PACKAGE}_configured) + return() +endif(${BP_PACKAGE}_configured) +set(${BP_PACKAGE}_configured ON) + # Data that is related to downloads. set(${BP_PACKAGE}_URL ftp://ftp.math.utah.edu/pub/misc/${BP_PACKAGE}-2.00.tar.gz) Modified: trunk/cmake/build_projects/plplot/bp.cmake =================================================================== --- trunk/cmake/build_projects/plplot/bp.cmake 2013-06-13 02:53:11 UTC (rev 12382) +++ trunk/cmake/build_projects/plplot/bp.cmake 2013-06-13 03:13:53 UTC (rev 12383) @@ -25,6 +25,14 @@ # operate. # Configure build of PLplot dependencies. +set(BP_PACKAGE plplot) + +# Protect against configuring a build twice in one CMake call +if(${BP_PACKAGE}_configured) + return() +endif(${BP_PACKAGE}_configured) +set(${BP_PACKAGE}_configured ON) + include(shapelib/bp.cmake) include(libqhull/bp.cmake) include(libharu/bp.cmake) Modified: trunk/cmake/build_projects/shapelib/bp.cmake =================================================================== --- trunk/cmake/build_projects/shapelib/bp.cmake 2013-06-13 02:53:11 UTC (rev 12382) +++ trunk/cmake/build_projects/shapelib/bp.cmake 2013-06-13 03:13:53 UTC (rev 12383) @@ -26,6 +26,12 @@ set(BP_PACKAGE shapelib) +# Protect against configuring a build twice in one CMake call +if(${BP_PACKAGE}_configured) + return() +endif(${BP_PACKAGE}_configured) +set(${BP_PACKAGE}_configured ON) + # Data that is related to downloads. set(${BP_PACKAGE}_URL http://download.osgeo.org/${BP_PACKAGE}/${BP_PACKAGE}-1.3.0.tar.gz) set(${BP_PACKAGE}_URL_MD5 2ff7d0b21d4b7506b452524492795f77) Modified: trunk/cmake/build_projects/wxwidgets/bp.cmake =================================================================== --- trunk/cmake/build_projects/wxwidgets/bp.cmake 2013-06-13 02:53:11 UTC (rev 12382) +++ trunk/cmake/build_projects/wxwidgets/bp.cmake 2013-06-13 03:13:53 UTC (rev 12383) @@ -26,6 +26,12 @@ set(BP_PACKAGE wxwidgets) +# Protect against configuring a build twice in one CMake call +if(${BP_PACKAGE}_configured) + return() +endif(${BP_PACKAGE}_configured) +set(${BP_PACKAGE}_configured ON) + # Data that is related to downloads. set(${BP_PACKAGE}_URL http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.8.12.tar.gz) set(${BP_PACKAGE}_URL_MD5 2fa39da14bc06ea86fe902579fedc5b1) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-07-01 04:15:58
|
Revision: 12399 http://sourceforge.net/p/plplot/code/12399 Author: airwin Date: 2013-07-01 04:15:56 +0000 (Mon, 01 Jul 2013) Log Message: ----------- Implement plplot build. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt trunk/cmake/build_projects/plplot/bp.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-07-01 04:14:16 UTC (rev 12398) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-07-01 04:15:56 UTC (rev 12399) @@ -208,9 +208,9 @@ libharu libqhull ndiff -# plplot + plplot shapelib -# wxwidgets + wxwidgets ) foreach(build_configuration ${build_configuration_LIST}) Modified: trunk/cmake/build_projects/plplot/bp.cmake =================================================================== --- trunk/cmake/build_projects/plplot/bp.cmake 2013-07-01 04:14:16 UTC (rev 12398) +++ trunk/cmake/build_projects/plplot/bp.cmake 2013-07-01 04:15:56 UTC (rev 12399) @@ -25,29 +25,91 @@ # operate. # Configure build of PLplot dependencies. -set(BP_PACKAGE plplot) +# N.B. early stanzas of this logic before the includes +# cannot set or use the BP_PACKAGE variable since the includes +# reset that. # Protect against configuring a build twice in one CMake call -if(${BP_PACKAGE}_configured) +if(plplot_configured) return() -endif(${BP_PACKAGE}_configured) -set(${BP_PACKAGE}_configured ON) +endif(plplot_configured) +set(plplot_configured ON) -include(shapelib/bp.cmake) -include(libqhull/bp.cmake) -include(libharu/bp.cmake) -include(libagg/bp.cmake) +set(plplot_dependencies_LIST + libagg + libharu + libqhull + shapelib +# TEMPORARY +# For debugging speed ignore wxwidgets soft dependency of PLplot for +# now. +# wxwidgets +) -# Build PLplot itself. -# (Not implemented yet, but create empty custom target with correct -# target dependencies as if that target were actually a PLplot build). -add_custom_target(build_plplot) -add_dependencies(build_plplot - build_shapelib - build_libqhull - build_libharu - build_libagg +foreach(build_configuration ${plplot_dependencies_LIST}) + include(${build_configuration}/bp.cmake) +endforeach(build_configuration ${plplot_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE plplot) + +set(${BP_PACKAGE}_dependencies_targets) +foreach(build_configuration ${${BP_PACKAGE}_dependencies_LIST}) + list(APPEND ${BP_PACKAGE}_dependencies_targets build_${build_configuration}) +endforeach(build_configuration ${${BP_PACKAGE}_dependences_LIST}) +message(STATUS "${BP_PACKAGE}_dependencies_targets = ${${BP_PACKAGE}_dependencies_targets}") + +# Note could retrieve the latest release, but that is pretty dated. +# So ideally, would use a subversion client to get the trunk version, +# but that means (on Windows) you must build a subversion client. +# That build (of the apache version of subversion) should be +# straightforward assuming wget (available both for Unix and MSYS) is +# installed. So I think ultimately a build of a subversion client +# will be configured and available for all platforms. But for now +# just use a local directory where the trunk version of PLplot has +# been recently updated. +# TEMPORARY +set(PLPLOT_LOCAL_SOURCE_DIR /home/software/${BP_PACKAGE}_svn/HEAD/${BP_PACKAGE}_allura) +file(TO_NATIVE_PATH ${PLPLOT_LOCAL_SOURCE_DIR} PLPLOT_LOCAL_SOURCE_DIR) + +# 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}") + message(STATUS "Original BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + determine_msys_path(BP_PATH "${BP_PATH}") + # TEMPORARY (already in the _required_ native form for the cmake -E + # copy_directory command below except for the drive letter which is + # z: for this local result.) + set(PLPLOT_LOCAL_SOURCE_DIR z:${PLPLOT_LOCAL_SOURCE_DIR}) +endif(MSYS_PLATFORM) +message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + +# Build PLplot itself. The pdf device is turned on since the haru library +# is built with a fix to avoid segfaults for example 24. +ExternalProject_Add( + build_${BP_PACKAGE} + DEPENDS "${${BP_PACKAGE}_dependencies_targets}" + #TEMPORARY + DOWNLOAD_COMMAND ${CMAKE_COMMAND} -E copy_directory ${PLPLOT_LOCAL_SOURCE_DIR} ${EP_BASE}/Source/build_${BP_PACKAGE} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DBUILD_TEST=ON -DPLD_pdf=ON ${EP_BASE}/Source/build_${BP_PACKAGE} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install + TEST_BEFORE_INSTALL OFF + TEST_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} test_noninteractive + STEP_TARGETS configure build install test ) +# Add custom commands to the current test step. +add_custom_command( + OUTPUT + ${EP_BASE}/Stamp/build_${BP_PACKAGE}/build_${BP_PACKAGE}-test + COMMAND echo made_it_to_extra_test + COMMENT "Test installed examples from ${BP_PACKAGE}" + APPEND + ) - +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. |
From: <ai...@us...> - 2013-07-02 00:04:58
|
Revision: 12403 http://sourceforge.net/p/plplot/code/12403 Author: airwin Date: 2013-07-02 00:04:52 +0000 (Tue, 02 Jul 2013) Log Message: ----------- Implement a BUILD_THE_BUILDTOOLS option. When this variable is set to ON with -DBUILD_THE_BUILDTOOLS=ON, this puts build_projects in a special mode to build and install only a small list of buildtools. Only cmake is on that list of buildtools for now that are built with this option. cmake is built with the bootstrap method to cut the dependence on the binary version of cmake that is used to configure build_projects in the -DBUILD_THE_BUILDTOOLS=ON case. The idea is once the buildtools list of packages is built with this special option, then you can put those buildtools on the PATH and use them from then on in normal builds of build_packages to reduce the reliance on downloaded binaries for all results. Tested by: Alan W. Irwin <ai...@us...> using the build_all target for the "Unix Makefiles" generator on Linux and the "MSYS Makefiles" generator on (the Wine version of) Windows. Note these were just successful build tests, and the resulting cmake-2.8.11.1 binary in each case has not been tested (yet) by using it for builds of other software. But all subsequent tests will be using these bootstrapped versions. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt trunk/cmake/build_projects/README Added Paths: ----------- trunk/cmake/build_projects/cmake/ trunk/cmake/build_projects/cmake/bp.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-07-01 20:14:47 UTC (rev 12402) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-07-02 00:04:52 UTC (rev 12403) @@ -201,18 +201,40 @@ # on those individual build targets set(build_target_LIST) -# List of all configurations. Order doesn't matter because multiple -# attempts to include the same configuration (via dependencies) are ignored. -set(build_configuration_LIST - libagg - libharu - libqhull - ndiff - plplot - shapelib - wxwidgets -) +option(BUILD_THE_BUILDTOOLS "Build the buildtools (such as cmake) used for the rest of the builds" OFF) +if(BUILD_THE_BUILDTOOLS) + set(executables_LIST + sh + ) + foreach(executable ${executables_LIST}) + string(TOUPPER ${executable} EXECUTABLE) + find_program(${EXECUTABLE}_EXECUTABLE ${executable}) + if(NOT ${EXECUTABLE}_EXECUTABLE) + if(MSYS_PLATFORM) + message(STATUS "${executable} missing from your MSYS platform. If sh is missing, use a generator other than 'MinGW Makefiles'. If something else is missing use mingw-get to install it.") + endif(MSYS_PLATFORM) + message(FATAL_ERROR "${executable} must be on your PATH in order for build_projects to work correctly") + endif(NOT ${EXECUTABLE}_EXECUTABLE) + endforeach(executable ${executables_LIST}) + + set(build_configuration_LIST + cmake + ) +else(BUILD_THE_BUILDTOOLS) + # List of all configurations. Order doesn't matter because multiple + # attempts to include the same configuration (via dependencies) are ignored. + set(build_configuration_LIST + libagg + libharu + libqhull + ndiff + plplot + shapelib + wxwidgets + ) +endif(BUILD_THE_BUILDTOOLS) + foreach(build_configuration ${build_configuration_LIST}) include(${build_configuration}/bp.cmake) endforeach(build_configuration ${build_configuration_LIST}) Modified: trunk/cmake/build_projects/README =================================================================== --- trunk/cmake/build_projects/README 2013-07-01 20:14:47 UTC (rev 12402) +++ trunk/cmake/build_projects/README 2013-07-02 00:04:52 UTC (rev 12403) @@ -54,7 +54,9 @@ http://www.cmake.org/files. I am currently using v2.8/cmake-2.8.10.2-win32-x86.zip. Unpack this using the unzip command you just installed. Put the resulting -cmake-2.8.10.2-win32-x86/bin on your PATH. +cmake-2.8.10.2-win32-x86/bin on your PATH. This downloadable binary +(which poses a security concern like all downloadable binaries) +is only used once. 7. If you are going to try the "NMake Makefiles JOM" generator, download the latest jom_VERSION.zip from http://releases.qt-project.org/jom, unpack @@ -66,15 +68,57 @@ correction in a following post in that thread. =============================================================================== -Build instructions: +Build instructions for the buildtools (such as cmake): -1. Adjust the local path to the PLplot source tree in plplot/bp.cmake -(this will only necessary until build_projects is updated to configure +Note that when cmake is built this way it is configured by the +bootstrap script (which demands sh is on the PATH) rather than cmake +itself so the downloaded binary version of cmake used to configure the +build_tools build is not actually used to build cmake which provides a +slight increase in security for the paranoid. And you should be +paranoid about security (i.e., you should build your own +version of CMake from source, in my opinion rather than relying +on a downloaded binary) since crackers are always +trying it on. + +Note the special paths below which have a _buildtools suffix, and also +note the special option -DBUILD_THE_BUILDTOOLS=ON which configures +builds of _only_ the build tools such as cmake that are used for the +other software projects. + +Linux "Unix Makefiles" + +wine@raven> mkdir -p /home/wine/newstart/build_script/build_dir-linux_buildtools +wine@raven> cd /home/wine/newstart/build_script/build_dir-linux_buildtools +wine@raven> rm -rf /home/wine/newstart/build_script/build_dir-linux_buildtools/* +wine@raven> cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/home/wine/newstart/build_script/install-linux_buildtools -DBUILD_THE_BUILDTOOLS=ON ~software/plplot_svn/HEAD/plplot_allura/cmake/build_projects >& cmake.out +wine@raven> make VERBOSE=1 build_all >& build_all.out + +Windows "MSYS Makefiles" (This is a special case that requires sh.exe to +be on the PATH so the "MinGW Makefiles" generator cannot be used. + +bash.exe-3.1$ mkdir -p /z/home/wine/newstart/build_script/build_dir-git_buildtools +bash.exe-3.1$ cd /z/home/wine/newstart/build_script/build_dir-git_buildtools +bash.exe-3.1$ rm -rf /z/home/wine/newstart/build_script/build_dir-git_buildtools/* +bash.exe-3.1$ cmake -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/z/home/wine/newstart/build_script/install-git_buildtools -DBUILD_THE_BUILDTOOLS=ON /z/home/software/plplot_svn/HEAD/plplot_allura/cmake/build_projects >& cmake.out +bash.exe-3.1$ mingw32-make.exe VERBOSE=1 build_all >& build_all.out + +Build instructions for everything else which is not a build tool but +which uses those (such as cmake) which have been built above: + +1. Put the bin directory contained in the install tree created above +at the top of the PATH. In my case this directory is either +/home/wine/newstart/build_script/install-linux_buildtools/bin (Linux) +or /z/home/wine/newstart/build_script/install-git_buildtool/bin +(Windows). This step insures you will be using the buildtools you +built yourself from source from now on rather than some downloaded binary. + +2. Adjust the local path to the PLplot source tree in plplot/bp.cmake +(this will only be necessary until build_projects is updated to configure a build of an svn client that works on Windows). The alternative is to download and test a released version of PLplot, but I prefer the -trunk version. +svn trunk version because that is much more up to date. -2. Examples of configuring a build and test of PLplot and some of its +3. Examples of configuring a build and test of PLplot and some of its soft dependencies on several different systems with various generators and build tools. Adjust these for your own paths, and note the first three commands in each group are to insure you start with a clean Added: trunk/cmake/build_projects/cmake/bp.cmake =================================================================== --- trunk/cmake/build_projects/cmake/bp.cmake (rev 0) +++ trunk/cmake/build_projects/cmake/bp.cmake 2013-07-02 00:04:52 UTC (rev 12403) @@ -0,0 +1,64 @@ +# cmake/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of cmake. + +# 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. + +set(BP_PACKAGE cmake) + +# Protect against configuring a build twice in one CMake call +if(${BP_PACKAGE}_configured) + return() +endif(${BP_PACKAGE}_configured) +set(${BP_PACKAGE}_configured ON) + +# Data that is related to downloads. +set(BP_CMAKE_DIR v2.8) +set(BP_CMAKE_VERSION 2.8.11.1) +set(${BP_PACKAGE}_URL http://www.cmake.org/files/${BP_CMAKE_DIR}/cmake-${BP_CMAKE_VERSION}.tar.gz) +set(${BP_PACKAGE}_URL_MD5 df5324a3b203373a9e0a04b924281a43) + +# 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}") + determine_msys_path(${BP_PACKAGE}_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") +else(MSYS_PLATFORM) + set(${BP_PACKAGE}_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") +endif(MSYS_PLATFORM) +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + +ExternalProject_Add( + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_MD5 ${${BP_PACKAGE}_URL_MD5} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} CFLAGS=-O3 CXXFLAGS=-O3 ${SH_EXECUTABLE} ${EP_BASE}/Source/build_${BP_PACKAGE}/bootstrap --prefix=${${BP_PACKAGE}_INSTALL_PREFIX} --parallel=8 + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_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. |
From: <ai...@us...> - 2013-07-15 19:43:19
|
Revision: 12424 http://sourceforge.net/p/plplot/code/12424 Author: airwin Date: 2013-07-15 19:43:05 +0000 (Mon, 15 Jul 2013) Log Message: ----------- Add a buildtools build configuration for pkg-config and propagate CMAKE_VERBOSE_MAKEFILE to build configurations. Tested by Alan W. Irwin <ai...@us...> using the build_pkg-config target for the "Unix Makefiles" (on Linux) and "MSYS Makefiles" (on Wine-1.6.rc4) CMake generators with -DBUILD_THE_BUILDTOOLS=ON Note, if you uncomment the test in pkg-config/bp.cmake, then all is well on Linux, but four of the tests fail on Wine. I have no idea how serious these test failures are, but I have created a bug report at <https://bugs.freedesktop.org/show_bug.cgi?id=66939> concerning these test failures. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt Added Paths: ----------- trunk/cmake/build_projects/pkg-config/ trunk/cmake/build_projects/pkg-config/bp.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-07-15 17:25:08 UTC (rev 12423) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-07-15 19:43:05 UTC (rev 12424) @@ -136,11 +136,11 @@ determine_msys_path(BP_BUILD_COMMAND "${BP_BUILD_COMMAND}") determine_msys_path(BP_MAKE_COMMAND "${BP_MAKE_COMMAND}") determine_msys_path(BP_CTEST_COMMAND "${BP_CTEST_COMMAND}") - determine_msys_path(MSYS_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + determine_msys_path(BP_CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") determine_msys_path(MSYS_CMAKE_COMMAND "${CMAKE_COMMAND}") # Propagate the overall CMake generator and install prefix to all CMake-based # software project builds. - set(BP_CMAKE_COMMAND ${MSYS_CMAKE_COMMAND} "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${MSYS_CMAKE_INSTALL_PREFIX}) + set(BP_CMAKE_COMMAND ${MSYS_CMAKE_COMMAND} "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${BP_CMAKE_INSTALL_PREFIX}) # Propagate CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and # CMAKE_RC_COMPILER to all CMake-based software project builds. # (jom currently requires this as a workaround). @@ -157,15 +157,26 @@ list(APPEND BP_CMAKE_COMMAND -DCMAKE_RC_COMPILER:FILEPATH=${MSYS_CMAKE_RC_COMPILER}) endif(CMAKE_RC_COMPILER) # Propagate the install prefix to autotools-based builds - set(BP_CONFIGURE_COMMAND configure --prefix=${MSYS_CMAKE_INSTALL_PREFIX}) + set(BP_CONFIGURE_COMMAND configure --prefix=${BP_CMAKE_INSTALL_PREFIX}) else(MSYS_PLATFORM) # Propagate the overall CMake generator and install prefix to all CMake-based # software project builds. set(BP_CMAKE_COMMAND ${CMAKE_COMMAND} "-G${CMAKE_GENERATOR}" -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}) + set(BP_CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) # Propagate the install prefix to autotools-based builds - set(BP_CONFIGURE_COMMAND configure --prefix=${CMAKE_INSTALL_PREFIX}) + set(BP_CONFIGURE_COMMAND configure --prefix=${BP_CMAKE_INSTALL_PREFIX}) endif(MSYS_PLATFORM) +if(CMAKE_VERBOSE_MAKEFILE) + # Not sure whether all contemplated back-ends support this or not, but + # most should. + list(APPEND BP_CMAKE_COMMAND -DCMAKE_VERBOSE_MAKEFILE=ON) + # Some autotools build projects give verbose make results when V=1 + # and I don't think it will interfere with the rest. + list(APPEND BP_MAKE_COMMAND V=1) +endif(CMAKE_VERBOSE_MAKEFILE) + + # The parallel versions are for software packages that # do not have race conditions for parallel builds or tests. set(BP_PARALLEL_BUILD_COMMAND "${BP_BUILD_COMMAND}" -j4) @@ -220,6 +231,8 @@ set(build_configuration_LIST cmake + pkg-config + #subversion ) else(BUILD_THE_BUILDTOOLS) # List of all configurations. Order doesn't matter because multiple @@ -232,6 +245,7 @@ plplot shapelib wxwidgets + #glib ) endif(BUILD_THE_BUILDTOOLS) Added: trunk/cmake/build_projects/pkg-config/bp.cmake =================================================================== --- trunk/cmake/build_projects/pkg-config/bp.cmake (rev 0) +++ trunk/cmake/build_projects/pkg-config/bp.cmake 2013-07-15 19:43:05 UTC (rev 12424) @@ -0,0 +1,80 @@ +# pkg-config/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of pkg-config. + +# 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. + +set(BP_PACKAGE pkg-config) + +# Protect against configuring a build twice in one CMake call +if(${BP_PACKAGE}_configured) + return() +endif(${BP_PACKAGE}_configured) +set(${BP_PACKAGE}_configured ON) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE MD5) +set(${BP_PACKAGE}_DOWNLOAD_HASH aa3c86e67551adc3ac865160e34a2a0d) + + +# 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}") + # configure (for glib subpackage) dies without this. + set(${BP_PACKAGE}_SET_CFLAGS "CFLAGS=-march=native $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} + 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} --with-internal-glib + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} +# 4 of 25 tests fail for the MinGW/MSYS/Wine platform so comment out +# the next two lines for now. +# TEST_BEFORE_INSTALL ON +# TEST_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} check + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} install + ) + +ExternalProject_Add_Step( + build_${BP_PACKAGE} preinstall_fix + COMMENT "remove pkg-config binaries from the install tree" + DEPENDEES build + DEPENDERS install + COMMAND ${CMAKE_COMMAND} -DFILE_WILDCARD:STRING=${BP_CMAKE_INSTALL_PREFIX}/bin/*-pkg-config* -P ${CMAKE_SOURCE_DIR}/wildcard_remove.cmake + ) + +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. |
From: <ai...@us...> - 2013-07-20 19:08:30
|
Revision: 12433 http://sourceforge.net/p/plplot/code/12433 Author: airwin Date: 2013-07-20 19:08:25 +0000 (Sat, 20 Jul 2013) Log Message: ----------- Initial commit of the ffi build configuration. libffi is a hard dependency of modern glib which is not mentioned in the jhbuild configuration of glib. So adding this build configuration for libffi is a workaround for that jhbuild configuration bug for glib. Tested by Alan W. Irwin <ai...@us...> using the build_ffi target for both the "Unix Makefiles" generator on Linux and the "MSYS Makefiles" generator on Wine. Note the latter was a factor of 35 (!) slower than the former. (5 minutes versus 9 seconds.) My guess is most of this extra time is taken up running the configure script. That is, that part of the build is strongly subject to startup latency costs for Wine so that for builds of much larger autotooled packages, the Wine slowdown factor will generally be substantially smaller than 35. Modified Paths: -------------- trunk/cmake/build_projects/CMakeLists.txt Added Paths: ----------- trunk/cmake/build_projects/ffi/ trunk/cmake/build_projects/ffi/bp.cmake Modified: trunk/cmake/build_projects/CMakeLists.txt =================================================================== --- trunk/cmake/build_projects/CMakeLists.txt 2013-07-19 12:41:03 UTC (rev 12432) +++ trunk/cmake/build_projects/CMakeLists.txt 2013-07-20 19:08:25 UTC (rev 12433) @@ -246,6 +246,7 @@ shapelib wxwidgets #glib + ffi ) endif(BUILD_THE_BUILDTOOLS) Added: trunk/cmake/build_projects/ffi/bp.cmake =================================================================== --- trunk/cmake/build_projects/ffi/bp.cmake (rev 0) +++ trunk/cmake/build_projects/ffi/bp.cmake 2013-07-20 19:08:25 UTC (rev 12433) @@ -0,0 +1,64 @@ +# ffi/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of ffi. + +# 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. + +set(BP_PACKAGE ffi) + +# Protect against configuring a build twice in one CMake call +if(${BP_PACKAGE}_configured) + return() +endif(${BP_PACKAGE}_configured) +set(${BP_PACKAGE}_configured ON) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL ftp://sourceware.org/pub/libffi/libffi-3.0.13.tar.gz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH 1dddde1400c3bcb7749d398071af88c3e4754058d2d4c0b3696c2f82dc5cf11c) + +# 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}") +else(MSYS_PLATFORM) + set(source_PATH "${EP_BASE}/Source/build_${BP_PACKAGE}") +endif(MSYS_PLATFORM) +#message(STATUS "modified BP_PATH for ${BP_PACKAGE} = ${BP_PATH}") + +ExternalProject_Add( + build_${BP_PACKAGE} + URL ${${BP_PACKAGE}_URL} + URL_HASH ${${BP_PACKAGE}_DOWNLOAD_HASH_TYPE}=${${BP_PACKAGE}_DOWNLOAD_HASH} + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${source_PATH}/${BP_CONFIGURE_COMMAND} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} + 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. |
From: <ai...@us...> - 2013-07-20 22:01:16
|
Revision: 12434 http://sourceforge.net/p/plplot/code/12434 Author: airwin Date: 2013-07-20 22:01:12 +0000 (Sat, 20 Jul 2013) Log Message: ----------- Rename ffi ==>libffi Added Paths: ----------- trunk/cmake/build_projects/libffi/ Removed Paths: ------------- trunk/cmake/build_projects/ffi/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-07-28 04:20:18
|
Revision: 12438 http://sourceforge.net/p/plplot/code/12438 Author: airwin Date: 2013-07-28 04:20:14 +0000 (Sun, 28 Jul 2013) Log Message: ----------- First working version that configures template.bp.in to create a number of different */bp.cmake build_package configurations for GTK+ component builds as documented in the README file. This version has created a libffi/bp.cmake file that configures the libffit build correctly, but glib/bp.cmake needs additional configuration to account for a required CFLAGS option. Modified Paths: -------------- trunk/cmake/build_projects/configure_bp.cmake Added Paths: ----------- trunk/cmake/build_projects/template.bp.in Modified: trunk/cmake/build_projects/configure_bp.cmake =================================================================== --- trunk/cmake/build_projects/configure_bp.cmake 2013-07-28 04:02:04 UTC (rev 12437) +++ trunk/cmake/build_projects/configure_bp.cmake 2013-07-28 04:20:14 UTC (rev 12438) @@ -9,22 +9,38 @@ math(EXPR max_index "(${nlines}/${group_size}) - 1") foreach(index RANGE 0 ${max_index}) list(GET lines 0 package) - message("${package}") list(GET lines 1 config_type) - message("${config_type}") list(GET lines 2 config_arguments) - message("${config_arguments}") list(GET lines 3 download_hash_type) - message("${download_hash_type}") list(GET lines 4 download_hash) - message("${download_hash}") list(GET lines 5 download_href) - message("${download_href}") list(GET lines 6 dependencies) - message("${dependencies}") list(GET lines 7 suggests) - message("${suggests}") list(GET lines 8 after) - message("${after}") list(REMOVE_AT lines ${remove_indices}) + + # Turn colon-separated lists into official CMake lists. + string(REGEX REPLACE ":" ";" dependencies "${dependencies}") + string(REGEX REPLACE ":" ";" suggests "${suggests}") + string(REGEX REPLACE ":" ";" after "${after}") + + # For now, ignore "after" and treat "dependencies" and "suggests" the same + if(suggests) + list(APPEND dependencies "${suggests}") + endif(suggests) + + # Configure the package file using the appropriate template file. + if(config_type STREQUAL "autotools" OR config_type STREQUAL "tarball" OR config_type STREQUAL "cmake") + set(template_file template.bp.in) + else(config_type STREQUAL "autotools" OR config_type STREQUAL "tarball" OR config_type STREQUAL "cmake") + message(FATAL_ERROR "incorrect config_type = ${config_type}") + endif(config_type STREQUAL "autotools" OR config_type STREQUAL "tarball" OR config_type STREQUAL "cmake") + + if(NOT package) + message(FATAL_ERROR "bad package = ${package}") + endif(NOT package) + + file(MAKE_DIRECTORY ${package}) + configure_file(${template_file} ${package}/bp.cmake @ONLY) + endforeach(index RANGE 0 ${max_index}) Added: trunk/cmake/build_projects/template.bp.in =================================================================== --- trunk/cmake/build_projects/template.bp.in (rev 0) +++ trunk/cmake/build_projects/template.bp.in 2013-07-28 04:20:14 UTC (rev 12438) @@ -0,0 +1,77 @@ +# @package@/bp.cmake +# This file should be included directly or indirectly from a 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 +# 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(@package@_configured) + return() +endif(@package@_configured) +set(@package@_configured ON) + +set(@package@_dependencies_LIST @dependencies@) + +foreach(build_configuration ${@package@_dependencies_LIST}) + include(${build_configuration}/bp.cmake) +endforeach(build_configuration ${@package@_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE @package@) + +set(${BP_PACKAGE}_dependencies_targets) +foreach(build_configuration ${${BP_PACKAGE}_dependencies_LIST}) + list(APPEND ${BP_PACKAGE}_dependencies_targets build_${build_configuration}) +endforeach(build_configuration ${${BP_PACKAGE}_dependences_LIST}) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL @download_href@) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE @download_hash_type@) +set(${BP_PACKAGE}_DOWNLOAD_HASH @download_hash@) + +# 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}") +else(MSYS_PLATFORM) + set(source_PATH "${EP_BASE}/Source/build_${BP_PACKAGE}") +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} ${source_PATH}/${BP_CONFIGURE_COMMAND} + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} + 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. |
From: <ai...@us...> - 2013-07-31 01:54:34
|
Revision: 12445 http://sourceforge.net/p/plplot/code/12445 Author: airwin Date: 2013-07-31 01:54:31 +0000 (Wed, 31 Jul 2013) Log Message: ----------- Initial configurations (generated as discussed in REAME from the jhbuild configuration of GTK+ version 3.9.4) of pango and most/all of its dependencies. Added Paths: ----------- trunk/cmake/build_projects/cairo/ trunk/cmake/build_projects/cairo/bp.cmake trunk/cmake/build_projects/fontconfig/ trunk/cmake/build_projects/fontconfig/bp.cmake trunk/cmake/build_projects/glib/ trunk/cmake/build_projects/glib/bp.cmake trunk/cmake/build_projects/gobject-introspection/ trunk/cmake/build_projects/gobject-introspection/bp.cmake trunk/cmake/build_projects/gtk-doc/ trunk/cmake/build_projects/gtk-doc/bp.cmake trunk/cmake/build_projects/harfbuzz/ trunk/cmake/build_projects/harfbuzz/bp.cmake trunk/cmake/build_projects/intltool/ trunk/cmake/build_projects/intltool/bp.cmake trunk/cmake/build_projects/itstool/ trunk/cmake/build_projects/itstool/bp.cmake trunk/cmake/build_projects/pango/ trunk/cmake/build_projects/pango/bp.cmake trunk/cmake/build_projects/pixman/ trunk/cmake/build_projects/pixman/bp.cmake trunk/cmake/build_projects/yelp-tools/ trunk/cmake/build_projects/yelp-tools/bp.cmake trunk/cmake/build_projects/yelp-xsl/ trunk/cmake/build_projects/yelp-xsl/bp.cmake Added: trunk/cmake/build_projects/cairo/bp.cmake =================================================================== --- trunk/cmake/build_projects/cairo/bp.cmake (rev 0) +++ trunk/cmake/build_projects/cairo/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# cairo/bp.cmake +# This file should be included directly or indirectly from a 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 +# 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(cairo_configured) + return() +endif(cairo_configured) +set(cairo_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) + +set(cairo_dependencies_LIST fontconfig;gtk-doc;pixman;pkg-config) +# Remove dependencies that should be ignored. +if(cairo_dependencies_LIST) + list(REMOVE_ITEM cairo_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(cairo_dependencies_LIST) + +set(cairo_dependencies_targets) +foreach(build_configuration ${cairo_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND cairo_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 cairo has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${cairo_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE cairo) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://cairographics.org/releases/cairo-1.12.14.tar.xz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH 96d0d1e3f9b74d2ca3469ff187c5e5f25649b1ad35cf06f4f3a83847dff4ac13) + +# 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} --enable-xlib + 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}") Added: trunk/cmake/build_projects/fontconfig/bp.cmake =================================================================== --- trunk/cmake/build_projects/fontconfig/bp.cmake (rev 0) +++ trunk/cmake/build_projects/fontconfig/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# fontconfig/bp.cmake +# This file should be included directly or indirectly from a 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 +# 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(fontconfig_configured) + return() +endif(fontconfig_configured) +set(fontconfig_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) + +set(fontconfig_dependencies_LIST gperf) +# Remove dependencies that should be ignored. +if(fontconfig_dependencies_LIST) + list(REMOVE_ITEM fontconfig_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(fontconfig_dependencies_LIST) + +set(fontconfig_dependencies_targets) +foreach(build_configuration ${fontconfig_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND fontconfig_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 fontconfig has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${fontconfig_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE fontconfig) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.10.93.tar.bz2) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH ea901f278848829ed9937d76fb0ce63ad362d7d5b9e75aa6a6b78bfef42e529c) + +# 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} --disable-docs + 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}") Added: trunk/cmake/build_projects/glib/bp.cmake =================================================================== --- trunk/cmake/build_projects/glib/bp.cmake (rev 0) +++ trunk/cmake/build_projects/glib/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# glib/bp.cmake +# This file should be included directly or indirectly from a 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 +# 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(glib_configured) + return() +endif(glib_configured) +set(glib_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) + +set(glib_dependencies_LIST gtk-doc;libffi) +# Remove dependencies that should be ignored. +if(glib_dependencies_LIST) + list(REMOVE_ITEM glib_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(glib_dependencies_LIST) + +set(glib_dependencies_targets) +foreach(build_configuration ${glib_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND glib_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 glib has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${glib_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE glib) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://download.gnome.org/sources/glib/2.37/glib-2.37.4.tar.xz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH 7e76a32e6ea0ced118aa64f87e46cdf5c3e90527f1f0eb93eabe42a03cebd1e7) + +# 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=-march=native $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} --enable-installed-tests + 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}") Added: trunk/cmake/build_projects/gobject-introspection/bp.cmake =================================================================== --- trunk/cmake/build_projects/gobject-introspection/bp.cmake (rev 0) +++ trunk/cmake/build_projects/gobject-introspection/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# gobject-introspection/bp.cmake +# This file should be included directly or indirectly from a 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 +# 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(gobject-introspection_configured) + return() +endif(gobject-introspection_configured) +set(gobject-introspection_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) + +set(gobject-introspection_dependencies_LIST bison;cairo;flex;glib;python2-devel) +# Remove dependencies that should be ignored. +if(gobject-introspection_dependencies_LIST) + list(REMOVE_ITEM gobject-introspection_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(gobject-introspection_dependencies_LIST) + +set(gobject-introspection_dependencies_targets) +foreach(build_configuration ${gobject-introspection_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND gobject-introspection_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 gobject-introspection has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${gobject-introspection_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE gobject-introspection) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://download.gnome.org/sources/gobject-introspection/1.37/gobject-introspection-1.37.4.tar.xz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH 431dae811626d18f1f02ff3842f291cc21b3c5e4a47b24d52d46e25e93036591) + +# 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}") Added: trunk/cmake/build_projects/gtk-doc/bp.cmake =================================================================== --- trunk/cmake/build_projects/gtk-doc/bp.cmake (rev 0) +++ trunk/cmake/build_projects/gtk-doc/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# gtk-doc/bp.cmake +# This file should be included directly or indirectly from a 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 +# 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(gtk-doc_configured) + return() +endif(gtk-doc_configured) +set(gtk-doc_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) + +set(gtk-doc_dependencies_LIST libxslt;yelp-tools) +# Remove dependencies that should be ignored. +if(gtk-doc_dependencies_LIST) + list(REMOVE_ITEM gtk-doc_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(gtk-doc_dependencies_LIST) + +set(gtk-doc_dependencies_targets) +foreach(build_configuration ${gtk-doc_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND gtk-doc_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 gtk-doc has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${gtk-doc_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE gtk-doc) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://download.gnome.org/sources/gtk-doc/1.19/gtk-doc-1.19.tar.xz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH 27df247fa828433a9390368e2088cc22f954f2ce1f255ddbd12ab6e027b12e68) + +# 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}") Added: trunk/cmake/build_projects/harfbuzz/bp.cmake =================================================================== --- trunk/cmake/build_projects/harfbuzz/bp.cmake (rev 0) +++ trunk/cmake/build_projects/harfbuzz/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# harfbuzz/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of harfbuzz. + +# 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(harfbuzz_configured) + return() +endif(harfbuzz_configured) +set(harfbuzz_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) + +set(harfbuzz_dependencies_LIST glib;ragel) +# Remove dependencies that should be ignored. +if(harfbuzz_dependencies_LIST) + list(REMOVE_ITEM harfbuzz_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(harfbuzz_dependencies_LIST) + +set(harfbuzz_dependencies_targets) +foreach(build_configuration ${harfbuzz_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND harfbuzz_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 harfbuzz has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${harfbuzz_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE harfbuzz) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-0.9.19.tar.bz2) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH d2da0f060d47f6ad9de8c8781bb21fa4b9eae8ea1cd1e956b814095baa002f35) + +# 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}") Added: trunk/cmake/build_projects/intltool/bp.cmake =================================================================== --- trunk/cmake/build_projects/intltool/bp.cmake (rev 0) +++ trunk/cmake/build_projects/intltool/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# intltool/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of intltool. + +# 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(intltool_configured) + return() +endif(intltool_configured) +set(intltool_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) + +set(intltool_dependencies_LIST ) +# Remove dependencies that should be ignored. +if(intltool_dependencies_LIST) + list(REMOVE_ITEM intltool_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(intltool_dependencies_LIST) + +set(intltool_dependencies_targets) +foreach(build_configuration ${intltool_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND intltool_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 intltool has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${intltool_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE intltool) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://launchpad.net/intltool/trunk/0.50.2/+download/intltool-0.50.2.tar.gz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE MD5) +set(${BP_PACKAGE}_DOWNLOAD_HASH 23fbd879118253cb99aeac067da5f591) + +# 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}") Added: trunk/cmake/build_projects/itstool/bp.cmake =================================================================== --- trunk/cmake/build_projects/itstool/bp.cmake (rev 0) +++ trunk/cmake/build_projects/itstool/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# itstool/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of itstool. + +# 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(itstool_configured) + return() +endif(itstool_configured) +set(itstool_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) + +set(itstool_dependencies_LIST ) +# Remove dependencies that should be ignored. +if(itstool_dependencies_LIST) + list(REMOVE_ITEM itstool_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(itstool_dependencies_LIST) + +set(itstool_dependencies_targets) +foreach(build_configuration ${itstool_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND itstool_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 itstool has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${itstool_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE itstool) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://files.itstool.org/itstool/itstool-1.2.0.tar.bz2) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH 46fed63fb89c72dbfc03097b4477084ff05ad6f171212d8f1f1546ea543978aa) + +# 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}") Added: trunk/cmake/build_projects/pango/bp.cmake =================================================================== --- trunk/cmake/build_projects/pango/bp.cmake (rev 0) +++ trunk/cmake/build_projects/pango/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# pango/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of pango. + +# 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(pango_configured) + return() +endif(pango_configured) +set(pango_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) + +set(pango_dependencies_LIST cairo;fontconfig;glib;gobject-introspection;gtk-doc;harfbuzz;libXft) +# Remove dependencies that should be ignored. +if(pango_dependencies_LIST) + list(REMOVE_ITEM pango_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(pango_dependencies_LIST) + +set(pango_dependencies_targets) +foreach(build_configuration ${pango_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND pango_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 pango has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${pango_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE pango) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://download.gnome.org/sources/pango/1.35/pango-1.35.0.tar.xz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH c21f7277b5c088f334748b38f2c3abd6399024d653ab7663f567234acbdc7f92) + +# 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} --with-cairo --enable-installed-tests + 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}") Added: trunk/cmake/build_projects/pixman/bp.cmake =================================================================== --- trunk/cmake/build_projects/pixman/bp.cmake (rev 0) +++ trunk/cmake/build_projects/pixman/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# pixman/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of pixman. + +# 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(pixman_configured) + return() +endif(pixman_configured) +set(pixman_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) + +set(pixman_dependencies_LIST pkg-config) +# Remove dependencies that should be ignored. +if(pixman_dependencies_LIST) + list(REMOVE_ITEM pixman_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(pixman_dependencies_LIST) + +set(pixman_dependencies_targets) +foreach(build_configuration ${pixman_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND pixman_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 pixman has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${pixman_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE pixman) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://cairographics.org/releases/pixman-0.30.0.tar.gz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH 1d812f9f60215099355f5c13c6f06d7db1135c99f34ff03535b71b64435125fd) + +# 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} --disable-gtk + 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}") Added: trunk/cmake/build_projects/yelp-tools/bp.cmake =================================================================== --- trunk/cmake/build_projects/yelp-tools/bp.cmake (rev 0) +++ trunk/cmake/build_projects/yelp-tools/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# yelp-tools/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of yelp-tools. + +# 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(yelp-tools_configured) + return() +endif(yelp-tools_configured) +set(yelp-tools_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) + +set(yelp-tools_dependencies_LIST intltool;itstool;libxml2;libxslt;yelp-xsl) +# Remove dependencies that should be ignored. +if(yelp-tools_dependencies_LIST) + list(REMOVE_ITEM yelp-tools_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(yelp-tools_dependencies_LIST) + +set(yelp-tools_dependencies_targets) +foreach(build_configuration ${yelp-tools_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND yelp-tools_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 yelp-tools has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${yelp-tools_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE yelp-tools) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://download.gnome.org/sources/yelp-tools/3.6/yelp-tools-3.6.1.tar.xz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH 5226e8245bb87f10e485aa65f5bf18d9e4fb5ef82f2e3c3734dd91bdf6f5c19a) + +# 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}") Added: trunk/cmake/build_projects/yelp-xsl/bp.cmake =================================================================== --- trunk/cmake/build_projects/yelp-xsl/bp.cmake (rev 0) +++ trunk/cmake/build_projects/yelp-xsl/bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) @@ -0,0 +1,89 @@ +# yelp-xsl/bp.cmake +# This file should be included directly or indirectly from a top-level +# CMakeLists.txt file to configure the build of yelp-xsl. + +# 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(yelp-xsl_configured) + return() +endif(yelp-xsl_configured) +set(yelp-xsl_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) + +set(yelp-xsl_dependencies_LIST intltool;itstool;libxml2;libxslt) +# Remove dependencies that should be ignored. +if(yelp-xsl_dependencies_LIST) + list(REMOVE_ITEM yelp-xsl_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(yelp-xsl_dependencies_LIST) + +set(yelp-xsl_dependencies_targets) +foreach(build_configuration ${yelp-xsl_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND yelp-xsl_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 yelp-xsl has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${yelp-xsl_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE yelp-xsl) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://download.gnome.org/sources/yelp-xsl/3.8/yelp-xsl-3.8.1.tar.xz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH afc519be07ffcbdcc20d1acfd1d901cfd03c7b4cf0667036534f2726bb68b40d) + +# 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. |
From: <ai...@us...> - 2013-07-31 02:14:24
|
Revision: 12446 http://sourceforge.net/p/plplot/code/12446 Author: airwin Date: 2013-07-31 02:14:21 +0000 (Wed, 31 Jul 2013) Log Message: ----------- Configure additional features for build configurations (typically those from jhbuild build configuration data collected from GTK+) that are generated by configure_bp.cmake. Those features include improved processing of dependencies (ignoring specific dependencies (mostly dependencies which can be assumed to be part of the normal build tools) contained in a list in configure_bp.cmake and dropping all dependencies which don't have a build configuration yet) and configuring the configure script arguments and the make command arguments. Modified Paths: -------------- trunk/cmake/build_projects/configure_bp.cmake trunk/cmake/build_projects/template.bp.in Modified: trunk/cmake/build_projects/configure_bp.cmake =================================================================== --- trunk/cmake/build_projects/configure_bp.cmake 2013-07-31 01:54:31 UTC (rev 12445) +++ trunk/cmake/build_projects/configure_bp.cmake 2013-07-31 02:14:21 UTC (rev 12446) @@ -1,24 +1,61 @@ cmake_policy(SET CMP0007 NEW) + +# List of dependencies (mostly these are build-tools) which should be +# ignored. +set(ignored_dependencies_LIST + # build tools + pkg-config + bison + flex + python2-devel + # dependencies which we want to ignore + # (none so far). +) + file(STRINGS ${FILENAME} lines) list(LENGTH lines nlines) # There are currently groups of 9 lines for each # gtk software package specifying the required # build-configuration information. -set(group_size 9) -set(remove_indices 0 1 2 3 4 5 6 7 8) +set(group_size 12) +set(remove_indices 0 1 2 3 4 5 6 7 8 9 10 11) math(EXPR max_index "(${nlines}/${group_size}) - 1") foreach(index RANGE 0 ${max_index}) list(GET lines 0 package) list(GET lines 1 config_type) - list(GET lines 2 config_arguments) - list(GET lines 3 download_hash_type) - list(GET lines 4 download_hash) - list(GET lines 5 download_href) - list(GET lines 6 dependencies) - list(GET lines 7 suggests) - list(GET lines 8 after) + list(GET lines 2 supports_non_srcdir_builds) + list(GET lines 3 supports_parallel_builds) + list(GET lines 4 config_arguments) + list(GET lines 5 make_arguments) + list(GET lines 6 download_hash_type) + list(GET lines 7 download_hash) + list(GET lines 8 download_href) + list(GET lines 9 dependencies) + list(GET lines 10 suggests) + list(GET lines 11 after) list(REMOVE_AT lines ${remove_indices}) + if(supports_non_srcdir_builds) + set(BUILD_IN_SOURCE OFF) + else(supports_non_srcdir_builds) + set(BUILD_IN_SOURCE ON) + endif(supports_non_srcdir_builds) + + if(supports_parallel_builds) + set(BUILD_COMMAND BP_PARALLEL_MAKE_COMMAND) + else(supports_parallel_builds) + set(BUILD_COMMAND BP_MAKE_COMMAND) + endif(supports_parallel_builds) + + # Extra CFLAGS fixups for individual packages. + if(package STREQUAL "glib") + set(MSYS_EXTRA_CFLAGS "-march=native ") + set(UNIX_EXTRA_CFLAGS) + else(package STREQUAL "glib") + set(MSYS_EXTRA_CFLAGS) + set(UNIX_EXTRA_CFLAGS) + endif(package STREQUAL "glib") + # Turn colon-separated lists into official CMake lists. string(REGEX REPLACE ":" ";" dependencies "${dependencies}") string(REGEX REPLACE ":" ";" suggests "${suggests}") Modified: trunk/cmake/build_projects/template.bp.in =================================================================== --- trunk/cmake/build_projects/template.bp.in 2013-07-31 01:54:31 UTC (rev 12445) +++ trunk/cmake/build_projects/template.bp.in 2013-07-31 02:14:21 UTC (rev 12446) @@ -30,20 +30,29 @@ endif(@package@_configured) set(@package@_configured ON) +# List of dependencies (most of which are build tools) which should be +# ignored. +set(BP_ignored_dependencies_LIST @ignored_dependencies_LIST@) + set(@package@_dependencies_LIST @dependencies@) +# Remove dependencies that should be ignored. +if(@package@_dependencies_LIST) + list(REMOVE_ITEM @package@_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(@package@_dependencies_LIST) +set(@package@_dependencies_targets) foreach(build_configuration ${@package@_dependencies_LIST}) - include(${build_configuration}/bp.cmake) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND @package@_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 @package@ has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) endforeach(build_configuration ${@package@_dependences_LIST}) # This can be safely done only after above includes. set(BP_PACKAGE @package@) -set(${BP_PACKAGE}_dependencies_targets) -foreach(build_configuration ${${BP_PACKAGE}_dependencies_LIST}) - list(APPEND ${BP_PACKAGE}_dependencies_targets build_${build_configuration}) -endforeach(build_configuration ${${BP_PACKAGE}_dependences_LIST}) - # Data that is related to downloads. set(${BP_PACKAGE}_URL @download_href@) set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE @download_hash_type@) @@ -68,9 +77,10 @@ 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} - INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_MAKE_COMMAND} install + CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${${BP_PACKAGE}_SET_CFLAGS} ${source_PATH}/${BP_CONFIGURE_COMMAND} @config_arguments@ + BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${@BUILD_COMMAND@} @make_arguments@ + BUILD_IN_SOURCE @BUILD_IN_SOURCE@ + INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${@BUILD_COMMAND@} @make_arguments@ install ) list(APPEND build_target_LIST build_${BP_PACKAGE}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-07-31 15:55:54
|
Revision: 12453 http://sourceforge.net/p/plplot/code/12453 Author: airwin Date: 2013-07-31 15:55:51 +0000 (Wed, 31 Jul 2013) Log Message: ----------- Add gperf build configuration to help satisfy an indirect pango build dependency. Tested by: Alan W. Irwin <ai...@us...> using the build_gperf target on Linux. Modified Paths: -------------- trunk/cmake/build_projects/gtk_packages_add.xml Added Paths: ----------- trunk/cmake/build_projects/gperf/ trunk/cmake/build_projects/gperf/bp.cmake Added: trunk/cmake/build_projects/gperf/bp.cmake =================================================================== --- trunk/cmake/build_projects/gperf/bp.cmake (rev 0) +++ trunk/cmake/build_projects/gperf/bp.cmake 2013-07-31 15:55:51 UTC (rev 12453) @@ -0,0 +1,89 @@ +# gperf/bp.cmake +# This file should be included directly or indirectly from a 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 +# 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(gperf_configured) + return() +endif(gperf_configured) +set(gperf_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) + +set(gperf_dependencies_LIST ) +# Remove dependencies that should be ignored. +if(gperf_dependencies_LIST) + list(REMOVE_ITEM gperf_dependencies_LIST ${BP_ignored_dependencies_LIST}) +endif(gperf_dependencies_LIST) + +set(gperf_dependencies_targets) +foreach(build_configuration ${gperf_dependencies_LIST}) + if(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) + include(${build_configuration}/bp.cmake) + list(APPEND gperf_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 gperf has been installed another way.") + endif(EXISTS ${CMAKE_SOURCE_DIR}/${build_configuration}/bp.cmake) +endforeach(build_configuration ${gperf_dependences_LIST}) + +# This can be safely done only after above includes. +set(BP_PACKAGE gperf) + +# Data that is related to downloads. +set(${BP_PACKAGE}_URL http://ftp.gnu.org/gnu/gperf/gperf-3.0.4.tar.gz) +set(${BP_PACKAGE}_DOWNLOAD_HASH_TYPE SHA256) +set(${BP_PACKAGE}_DOWNLOAD_HASH 767112a204407e62dbc3106647cf839ed544f3cf5d0f0523aaa2508623aad63e) + +# 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/gtk_packages_add.xml =================================================================== --- trunk/cmake/build_projects/gtk_packages_add.xml 2013-07-31 15:28:47 UTC (rev 12452) +++ trunk/cmake/build_projects/gtk_packages_add.xml 2013-07-31 15:55:51 UTC (rev 12453) @@ -10,4 +10,7 @@ <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> -</moduleset> + <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> + </moduleset> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2013-07-31 19:29:52
|
Revision: 12455 http://sourceforge.net/p/plplot/code/12455 Author: airwin Date: 2013-07-31 19:29:47 +0000 (Wed, 31 Jul 2013) Log Message: ----------- Reconfigure with update_added_packages.sh script (which will soon be committed). This reconfiguration imposes a small change to ignore the libXft package if it occurs in the list of dependencies. Modified Paths: -------------- trunk/cmake/build_projects/gperf/bp.cmake trunk/cmake/build_projects/intltool/bp.cmake trunk/cmake/build_projects/libffi/bp.cmake trunk/cmake/build_projects/pixman/bp.cmake Modified: trunk/cmake/build_projects/gperf/bp.cmake =================================================================== --- trunk/cmake/build_projects/gperf/bp.cmake 2013-07-31 19:20:00 UTC (rev 12454) +++ trunk/cmake/build_projects/gperf/bp.cmake 2013-07-31 19:29:47 UTC (rev 12455) @@ -32,7 +32,7 @@ # List of dependencies (most of which are build tools) which should be # ignored. -set(BP_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel) +set(BP_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft) set(gperf_dependencies_LIST ) # Remove dependencies that should be ignored. Modified: trunk/cmake/build_projects/intltool/bp.cmake =================================================================== --- trunk/cmake/build_projects/intltool/bp.cmake 2013-07-31 19:20:00 UTC (rev 12454) +++ trunk/cmake/build_projects/intltool/bp.cmake 2013-07-31 19:29:47 UTC (rev 12455) @@ -32,7 +32,7 @@ # List of dependencies (most of which are build tools) which should be # ignored. -set(BP_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel) +set(BP_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft) set(intltool_dependencies_LIST ) # Remove dependencies that should be ignored. Modified: trunk/cmake/build_projects/libffi/bp.cmake =================================================================== --- trunk/cmake/build_projects/libffi/bp.cmake 2013-07-31 19:20:00 UTC (rev 12454) +++ trunk/cmake/build_projects/libffi/bp.cmake 2013-07-31 19:29:47 UTC (rev 12455) @@ -32,7 +32,7 @@ # List of dependencies (most of which are build tools) which should be # ignored. -set(BP_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel) +set(BP_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft) set(libffi_dependencies_LIST ) # Remove dependencies that should be ignored. Modified: trunk/cmake/build_projects/pixman/bp.cmake =================================================================== --- trunk/cmake/build_projects/pixman/bp.cmake 2013-07-31 19:20:00 UTC (rev 12454) +++ trunk/cmake/build_projects/pixman/bp.cmake 2013-07-31 19:29:47 UTC (rev 12455) @@ -32,7 +32,7 @@ # List of dependencies (most of which are build tools) which should be # ignored. -set(BP_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel) +set(BP_ignored_dependencies_LIST pkg-config;bison;flex;python2-devel;libXft) set(pixman_dependencies_LIST pkg-config) # Remove dependencies that should be ignored. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |
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. |