From: <ai...@us...> - 2014-03-31 00:57:59
|
Revision: 13088 http://sourceforge.net/p/plplot/code/13088 Author: airwin Date: 2014-03-31 00:57:53 +0000 (Mon, 31 Mar 2014) Log Message: ----------- Fix up several comprehensive testing issues with epa_build. The wxwidgets-related tests are still individually implemented for all platforms and for the Windows case those tests are dependencies of the more comprehensive interactive test targets. However, for the Unix case those dependencies have been dropped because of "forced mousing" issue that occurs with gtk+3 variant of wxwidgets that is beginning to be available (e.g., for epa_build) on Unix. Implement DROP_GTK_PLUS_2_BUILDS option (which defaults to OFF). When that option is turned ON, all targets which are related to gtk+2 only are dropped. This avoids build-time errors (for the static drivers case) or run-time errors (for the dynamic drivers case) due to clashes with gtk+3 libraries that are potentially used for other parts of PLplot (e.g., the cairo and wxwidgets device drivers). Tested on Linux using the build_plplot target of epa_build that is configured with -DCOMPREHENSIVE_PLPLOT_TEST_INTERACTIVE=ON and -DCOMPREHENSIVE_PLPLOT_TEST_NONINTERACTIVE=ON Modified Paths: -------------- trunk/cmake/epa_build/plplot/CMakeLists.txt trunk/cmake/epa_build/plplot_lite/CMakeLists.txt trunk/cmake/modules/cairo.cmake trunk/cmake/modules/ocaml.cmake trunk/cmake/modules/plplot.cmake trunk/examples/CMakeLists.txt trunk/plplot_test/CMakeLists.txt trunk/plplot_test/plplot-test-interactive.sh.in Modified: trunk/cmake/epa_build/plplot/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/plplot/CMakeLists.txt 2014-03-27 17:56:11 UTC (rev 13087) +++ trunk/cmake/epa_build/plplot/CMakeLists.txt 2014-03-31 00:57:53 UTC (rev 13088) @@ -64,6 +64,13 @@ # other PLplot dependencies that are epa_built. set(cmake_args -DENABLE_octave=OFF) +# Drop gtk+2-only dependencies since those clash (at build time for static +# device drivers and at run-time with dynamic device drivers) with +# gtk+3 that is used with epa_build. +list(APPEND cmake_args + -DDROP_GTK_PLUS_2_BUILDS=ON + ) + if(MSYS_PLATFORM) # Turn off the cairo and qt device drivers for plplot on Windows # until the pango and qt4_lite packages and all their dependencies @@ -88,7 +95,7 @@ find_file(IS_PLPLOT_SOURCE_TREE plcore.c HINTS ${PLPLOT_LOCAL_SOURCE_DIR}/src NO_DEFAULT_PATH -) + ) if(NOT IS_PLPLOT_SOURCE_TREE) message(FATAL_ERROR "epa_build not located in cmake/epa_build in a PLplot source tree") Modified: trunk/cmake/epa_build/plplot_lite/CMakeLists.txt =================================================================== --- trunk/cmake/epa_build/plplot_lite/CMakeLists.txt 2014-03-27 17:56:11 UTC (rev 13087) +++ trunk/cmake/epa_build/plplot_lite/CMakeLists.txt 2014-03-31 00:57:53 UTC (rev 13088) @@ -53,6 +53,13 @@ # other PLplot dependencies that are epa_built. set(cmake_args -DENABLE_octave=OFF) +# Drop gtk+2-only dependencies since those clash (at build time for static +# device drivers and at run-time with dynamic device drivers) with +# gtk+3 that is used with epa_build. +list(APPEND cmake_args + -DDROP_GTK_PLUS_2_BUILDS=ON + ) + # In addition turn off wxwidgets, cairo, and qt for plplot_lite. list(APPEND cmake_args -DPLD_wxwidgets=OFF Modified: trunk/cmake/modules/cairo.cmake =================================================================== --- trunk/cmake/modules/cairo.cmake 2014-03-27 17:56:11 UTC (rev 13087) +++ trunk/cmake/modules/cairo.cmake 2014-03-31 00:57:53 UTC (rev 13088) @@ -48,6 +48,11 @@ # set the environment variable CMAKE_LIBRARY_PATH. # See cmake documentation for further details. +# Turn off PLD_xcairo if gtk+2 dependencies need to be dropped. +if(DROP_GTK_PLUS_2_BUILDS) + set(PLD_xcairo OFF CACHE BOOL "Enable xcairo device" FORCE) +endif(DROP_GTK_PLUS_2_BUILDS) + # Look for cairo headers and libraries with pkg-config if( PLD_memcairo Modified: trunk/cmake/modules/ocaml.cmake =================================================================== --- trunk/cmake/modules/ocaml.cmake 2014-03-27 17:56:11 UTC (rev 13087) +++ trunk/cmake/modules/ocaml.cmake 2014-03-31 00:57:53 UTC (rev 13088) @@ -243,8 +243,12 @@ else(OCAML_HAS_CAIRO) message(STATUS "WARNING:" "Cairo OCaml library not found. Disabling lablgtk2 support") - set(OCAML_HAS_GTK OFF CACHE BOOL "OCaml has the cairo.lablgtk2 package" FORCE) + set(OCAML_HAS_GTK OFF CACHE BOOL "OCaml has the cairo.lablgtk2 package" FORCE) endif(OCAML_HAS_CAIRO) + + if(DROP_GTK_PLUS_2_BUILDS) + set(OCAML_HAS_GTK OFF CACHE BOOL "OCaml has the cairo.lablgtk2 package" FORCE) + endif(DROP_GTK_PLUS_2_BUILDS) if(OCAML_HAS_GTK) set(text_gtk Modified: trunk/cmake/modules/plplot.cmake =================================================================== --- trunk/cmake/modules/plplot.cmake 2014-03-27 17:56:11 UTC (rev 13087) +++ trunk/cmake/modules/plplot.cmake 2014-03-31 00:57:53 UTC (rev 13088) @@ -21,6 +21,8 @@ option(ADD_SPECIAL_CONSISTENCY_CHECKING "Add extra source-tree consistency checking targets that require special tools" OFF) +option(DROP_GTK_PLUS_2_BUILDS "Drop builds of gtk+2-only targets that clash with gtk+3 dependencies" OFF) + # target that depends on all check targets. add_custom_target(check_all) Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2014-03-27 17:56:11 UTC (rev 13087) +++ trunk/examples/CMakeLists.txt 2014-03-31 00:57:53 UTC (rev 13088) @@ -761,7 +761,17 @@ if(files_examples_c AND targets_examples_c) add_dependencies(test_c_${device} ${targets_examples_c}) endif(files_examples_c AND targets_examples_c) - list(APPEND interactive_targets_LIST test_c_${device}) + if(NOT device STREQUAL "wxwidgets") + list(APPEND interactive_targets_LIST test_c_${device}) + elseif(WIN32_AND_NOT_CYGWIN) + list(APPEND interactive_targets_LIST test_c_${device}) + else(NOT device STREQUAL "wxwidgets") + message(STATUS "WARNING: The test_c_wxwidgets target can be run independently on + the Unix platform, but it generates \"forced mousing\" screen + refreshes for the wxwidgets-3.0.0 case so it is temporarily + excluded from being a dependency of other more general interactive + test targets") + endif(NOT device STREQUAL "wxwidgets") if(ENABLE_octave) get_property(targets_examples_octave GLOBAL PROPERTY TARGETS_examples_octave) @@ -836,7 +846,15 @@ if(FILE_DEPENDS_wxwidgets) add_dependencies(test_wxPLplotDemo test_wxwidgets_dyndriver) endif(FILE_DEPENDS_wxwidgets) - list(APPEND interactive_targets_LIST test_wxPLplotDemo) + if(WIN32_AND_NOT_CYGWIN) + list(APPEND interactive_targets_LIST test_wxPLplotDemo) + else(WIN32_AND_NOT_CYGWIN) + message(STATUS "WARNING: The test_wxPLplotDemo target can be run independently on + the Unix platform, but it generates \"forced mousing\" screen + refreshes for the wxwidgets-3.0.0 case so it is temporarily + excluded from being a dependency of other more general interactive + test targets") + endif(WIN32_AND_NOT_CYGWIN) endif(ENABLE_wxwidgets) if(PLD_extqt) Modified: trunk/plplot_test/CMakeLists.txt =================================================================== --- trunk/plplot_test/CMakeLists.txt 2014-03-27 17:56:11 UTC (rev 13087) +++ trunk/plplot_test/CMakeLists.txt 2014-03-31 00:57:53 UTC (rev 13088) @@ -2,7 +2,7 @@ ### ### Process this file with cmake to produce Makefile ### -# Copyright (C) 2006-2013 Alan W. Irwin +# Copyright (C) 2006-2014 Alan W. Irwin # # This file is part of PLplot. # @@ -63,7 +63,9 @@ @ONLY ) - # Set up optional tests in the configured plplot-test-interactive.sh file. + # Set up optional tests in the configured plplot-test-interactive.sh file + # which is used by the traditional build system for the installed + # examples to do some interactive testing. set(pkgIndex_LOCATION ${DATA_DIR}) set(SHELL_TEST_PLTCL_STANDARD_EXAMPLES 1) @@ -87,6 +89,17 @@ set(SHELL_TEST_WISH_RUNALLDEMOS 0) endif(BUILD_SHARED_LIBS) + if(WIN32_AND_NOT_CYGWIN) + set(SHELL_TEST_WXWIDGETS 1) + else(WIN32_AND_NOT_CYGWIN) + # FIXME. + # The wxwidgets device on Unix generates "forced mousing" screen + # refreshes for the wxwidgets-3.0.0 case so it is temporarily excluded + # from the interactive tests done for the traditional build system + # for the installed examples. + set(SHELL_TEST_WXWIDGETS 0) + endif(WIN32_AND_NOT_CYGWIN) + configure_file( plplot-test-interactive.sh.in ${CMAKE_CURRENT_BINARY_DIR}/plplot-test-interactive.sh Modified: trunk/plplot_test/plplot-test-interactive.sh.in =================================================================== --- trunk/plplot_test/plplot-test-interactive.sh.in 2014-03-27 17:56:11 UTC (rev 13087) +++ trunk/plplot_test/plplot-test-interactive.sh.in 2014-03-31 00:57:53 UTC (rev 13088) @@ -107,7 +107,10 @@ # These blank-delimited strings must be consistent with previous configured # list of devices. -POSSIBLE_INTERACTIVE_DEVICES_LIST="xwin tk ntk xcairo gcw wxwidgets qtwidget" +POSSIBLE_INTERACTIVE_DEVICES_LIST="xwin tk ntk xcairo gcw qtwidget" +if [ "@SHELL_TEST_WXWIDGETS@" -ne 0 ] ; then + POSSIBLE_INTERACTIVE_DEVICES_LIST="$POSSIBLE_INTERACTIVE_DEVICES_LIST wxwidgets" +fi POSSIBLE_DEVICES_LIST="$POSSIBLE_INTERACTIVE_DEVICES_LIST extcairo extqt" # Default DEVICES_LIST is all eligible devices if environment variable @@ -167,7 +170,7 @@ COUNT=$(( $COUNT + 1 )) fi -if [ "@ENABLE_wxwidgets@" = "ON" -a "@ENABLE_cxx@" = "ON" ] ; then +if [ "@ENABLE_wxwidgets@" = "ON" -a "@ENABLE_cxx@" = "ON" -a "@SHELL_TEST_WXWIDGETS@" -ne 0 ] ; then INDEX_LIST="$INDEX_LIST $COUNT" DIRECTORY[$COUNT]="${EXAMPLES_DIR}/c++" COMMAND[$COUNT]="./wxPLplotDemo" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |