From: <ai...@us...> - 2009-05-14 01:22:47
|
Revision: 9977 http://plplot.svn.sourceforge.net/plplot/?rev=9977&view=rev Author: airwin Date: 2009-05-14 00:16:19 +0000 (Thu, 14 May 2009) Log Message: ----------- Add custom target "test_noninteractive" to new CMake-based build system for installed examples. Through dependencies this builds the examples, runs them for the psc device, and compares the PostScript and stdout results for non-C languages with the C language results using the existing test_diff.sh script. The current set of languages covered is Ada, C, C++, D, Fortran 77, and Fortran 95, but more languages will eventually follow to duplicate the functionality of the current Makefile+pkg-config approach used for the installed examples in a cross-platform way. Modified Paths: -------------- trunk/examples/CMakeLists.txt_installed_examples trunk/examples/ada/CMakeLists.txt_installed_examples_ada trunk/examples/c/CMakeLists.txt_installed_examples_c trunk/examples/c++/CMakeLists.txt_installed_examples_cxx trunk/examples/d/CMakeLists.txt_installed_examples_d trunk/examples/f77/CMakeLists.txt_installed_examples_f77 trunk/examples/f95/CMakeLists.txt_installed_examples_f95 trunk/examples/plplot_configure.cmake_installed_examples.in Modified: trunk/examples/CMakeLists.txt_installed_examples =================================================================== --- trunk/examples/CMakeLists.txt_installed_examples 2009-05-12 22:50:43 UTC (rev 9976) +++ trunk/examples/CMakeLists.txt_installed_examples 2009-05-14 00:16:19 UTC (rev 9977) @@ -19,35 +19,95 @@ # along with PLplot; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -project(installed_plplot_examples) +project(installed_plplot_examples NONE) CMAKE_MINIMUM_REQUIRED(VERSION 2.6.4 FATAL_ERROR) # Location where PLplot cmake build system first looks for cmake modules. set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules) -#Configurable items. +#Configure variables and enable languages as needed. include(plplot_configure) include(export_plplot) add_subdirectory(c) +get_property(targets_examples_c GLOBAL PROPERTY TARGETS_examples_c) +set(language_info_LIST c:c) +if(ENABLE_ada) + add_subdirectory(ada) + get_property(targets_examples_ada GLOBAL PROPERTY TARGETS_examples_ada) + list(APPEND language_info_LIST ada:a) +endif(ENABLE_ada) + if(ENABLE_cxx) add_subdirectory(c++) + get_property(targets_examples_cxx GLOBAL PROPERTY TARGETS_examples_cxx) + list(APPEND language_info_LIST cxx:cxx) endif(ENABLE_cxx) if(ENABLE_f77) add_subdirectory(f77) + get_property(targets_examples_f77 GLOBAL PROPERTY TARGETS_examples_f77) + list(APPEND language_info_LIST f77:f) endif(ENABLE_f77) if(ENABLE_f95) add_subdirectory(f95) + get_property(targets_examples_f95 GLOBAL PROPERTY TARGETS_examples_f95) + list(APPEND language_info_LIST f95:f95) endif(ENABLE_f95) if(ENABLE_d) add_subdirectory(d) + get_property(targets_examples_d GLOBAL PROPERTY TARGETS_examples_d) + list(APPEND language_info_LIST d:d) endif(ENABLE_d) -if(ENABLE_ada) - add_subdirectory(ada) -endif(ENABLE_ada) +# Octave not configured yet so the following stanza ignored for now. +if(ENABLE_octave) + add_subdirectory(octave) + execute_process( + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/lena.img + ${CMAKE_CURRENT_BINARY_DIR}/lena.img + ) + execute_process( + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/octave/lena.img + ${CMAKE_CURRENT_BINARY_DIR}/octave/lena.img + ) +endif(ENABLE_octave) +execute_process( + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm + ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm + ) + +set(output_LIST) +foreach(language_info ${language_info_LIST}) + string(REGEX REPLACE "^(.*):.*$" "\\1" language ${language_info}) + string(REGEX REPLACE "^.*:(.*)$" "\\1" suffix ${language_info}) + + # Will change from x03 to x01 as the representative result below when + # standard example 1 is implemented in d. + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x03${suffix}.psc + COMMAND ${CMAKE_COMMAND} -E echo "Generate ${language} results for psc device" + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh --verbose --front-end=${language} --device=psc + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh + ${targets_examples_${language}} + ) + list(APPEND output_LIST ${CMAKE_CURRENT_BINARY_DIR}/x03${suffix}.psc) +endforeach(language_info ${language_info_LIST}) + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/compare + COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/compare + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/test_diff.sh + DEPENDS ${output_LIST} + ) + +add_custom_target(test_noninteractive +DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/compare) Modified: trunk/examples/ada/CMakeLists.txt_installed_examples_ada =================================================================== --- trunk/examples/ada/CMakeLists.txt_installed_examples_ada 2009-05-12 22:50:43 UTC (rev 9976) +++ trunk/examples/ada/CMakeLists.txt_installed_examples_ada 2009-05-14 00:16:19 UTC (rev 9977) @@ -112,4 +112,5 @@ "-aI${CMAKE_SOURCE_DIR}/ada -aI${ADA_INCLUDE_DIR} -aL${ADA_LIB_DIR}" ) target_link_libraries(${TARGET_NAME} plplotada${LIB_TAG}) + set_property(GLOBAL APPEND PROPERTY TARGETS_examples_ada ${TARGET_NAME}) endforeach(STRING_INDEX ${ada_STRING_INDICES}) Modified: trunk/examples/c/CMakeLists.txt_installed_examples_c =================================================================== --- trunk/examples/c/CMakeLists.txt_installed_examples_c 2009-05-12 22:50:43 UTC (rev 9976) +++ trunk/examples/c/CMakeLists.txt_installed_examples_c 2009-05-14 00:16:19 UTC (rev 9977) @@ -58,4 +58,5 @@ foreach(STRING_INDEX ${c_STRING_INDICES}) add_executable(x${STRING_INDEX}c x${STRING_INDEX}c.c) target_link_libraries(x${STRING_INDEX}c plplot${LIB_TAG} ${MATH_LIB}) + set_property(GLOBAL APPEND PROPERTY TARGETS_examples_c x${STRING_INDEX}c) endforeach(STRING_INDEX ${c_STRING_INDICES}) Modified: trunk/examples/c++/CMakeLists.txt_installed_examples_cxx =================================================================== --- trunk/examples/c++/CMakeLists.txt_installed_examples_cxx 2009-05-12 22:50:43 UTC (rev 9976) +++ trunk/examples/c++/CMakeLists.txt_installed_examples_cxx 2009-05-14 00:16:19 UTC (rev 9977) @@ -57,4 +57,5 @@ foreach(STRING_INDEX ${cxx_STRING_INDICES}) add_executable(x${STRING_INDEX} x${STRING_INDEX}.cc) target_link_libraries(x${STRING_INDEX} plplotcxx${LIB_TAG} ${MATH_LIB}) + set_property(GLOBAL APPEND PROPERTY TARGETS_examples_cxx x${STRING_INDEX}) endforeach(STRING_INDEX ${cxx_STRING_INDICES}) Modified: trunk/examples/d/CMakeLists.txt_installed_examples_d =================================================================== --- trunk/examples/d/CMakeLists.txt_installed_examples_d 2009-05-12 22:50:43 UTC (rev 9976) +++ trunk/examples/d/CMakeLists.txt_installed_examples_d 2009-05-14 00:16:19 UTC (rev 9977) @@ -44,4 +44,5 @@ set(d_SRCS ${d_SRCS} x${STRING_INDEX}d.d) add_executable(x${STRING_INDEX}d x${STRING_INDEX}d.d) target_link_libraries(x${STRING_INDEX}d plplotdmd${LIB_TAG} plplot${LIB_TAG} ${MATH_LIB}) + set_property(GLOBAL APPEND PROPERTY TARGETS_examples_d x${STRING_INDEX}d) endforeach(STRING_INDEX ${d_STRING_INDICES}) Modified: trunk/examples/f77/CMakeLists.txt_installed_examples_f77 =================================================================== --- trunk/examples/f77/CMakeLists.txt_installed_examples_f77 2009-05-12 22:50:43 UTC (rev 9976) +++ trunk/examples/f77/CMakeLists.txt_installed_examples_f77 2009-05-14 00:16:19 UTC (rev 9977) @@ -61,4 +61,5 @@ else(STATIC_OPTS) target_link_libraries(x${STRING_INDEX}f plplotf77${LIB_TAG}) endif(STATIC_OPTS) + set_property(GLOBAL APPEND PROPERTY TARGETS_examples_f77 x${STRING_INDEX}f) endforeach(STRING_INDEX ${f77_STRING_INDICES}) Modified: trunk/examples/f95/CMakeLists.txt_installed_examples_f95 =================================================================== --- trunk/examples/f95/CMakeLists.txt_installed_examples_f95 2009-05-12 22:50:43 UTC (rev 9976) +++ trunk/examples/f95/CMakeLists.txt_installed_examples_f95 2009-05-14 00:16:19 UTC (rev 9977) @@ -66,4 +66,5 @@ else(STATIC_OPTS) target_link_libraries(x${STRING_INDEX}f95 plplotf95${LIB_TAG}) endif(STATIC_OPTS) + set_property(GLOBAL APPEND PROPERTY TARGETS_examples_f95 x${STRING_INDEX}f95) endforeach(STRING_INDEX ${f77_STRING_INDICES}) Modified: trunk/examples/plplot_configure.cmake_installed_examples.in =================================================================== --- trunk/examples/plplot_configure.cmake_installed_examples.in 2009-05-12 22:50:43 UTC (rev 9976) +++ trunk/examples/plplot_configure.cmake_installed_examples.in 2009-05-14 00:16:19 UTC (rev 9977) @@ -3,23 +3,37 @@ set(LIB_TAG "@LIB_TAG@") set(INCLUDE_DIR @INCLUDE_DIR@) set(MATH_LIB @MATH_LIB@) + +# What computer languages do we have configured? +set(ENABLE_ada @ENABLE_ada@) set(ENABLE_cxx @ENABLE_cxx@) +set(ENABLE_d @ENABLE_d@) set(ENABLE_f77 @ENABLE_f77@) set(ENABLE_f95 @ENABLE_f95@) + +# Always enable C language. +enable_language(C) + +if(ENABLE_ada) + enable_language(Ada) + set(ADA_INCLUDE_DIR @ADA_INCLUDE_DIR@) + set(ADA_LIB_DIR @ADA_LIB_DIR@) +endif(ENABLE_ada) + +if(ENABLE_cxx) + enable_language(CXX) +endif(ENABLE_cxx) + +if(ENABLE_d) + enable_language(D) +endif(ENABLE_d) + if(ENABLE_F77 OR ENABLE_f95) set(STATIC_OPTS @STATIC_OPTS@) enable_language(Fortran) endif(ENABLE_F77 OR ENABLE_f95) + if(ENABLE_f95) set(F95_MOD_DIR @F95_MOD_DIR@) endif(ENABLE_f95) -set(ENABLE_d @ENABLE_d@) -if(ENABLE_d) - enable_language(D) -endif(ENABLE_d) -set(ENABLE_ada @ENABLE_ada@) -if(ENABLE_ada) - enable_language(Ada) - set(ADA_INCLUDE_DIR @ADA_INCLUDE_DIR@) - set(ADA_LIB_DIR @ADA_LIB_DIR@) -endif(ENABLE_ada) + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |