|
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.
|