From: <ai...@us...> - 2009-07-26 23:13:43
|
Revision: 10181 http://plplot.svn.sourceforge.net/plplot/?rev=10181&view=rev Author: airwin Date: 2009-07-26 23:13:35 +0000 (Sun, 26 Jul 2009) Log Message: ----------- Reorder subdirectory processing for the core build and the installed examples build to be as consistent as possible. Modified Paths: -------------- trunk/examples/CMakeLists.txt trunk/examples/CMakeLists.txt_installed_examples Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2009-07-26 23:12:07 UTC (rev 10180) +++ trunk/examples/CMakeLists.txt 2009-07-26 23:13:35 UTC (rev 10181) @@ -58,47 +58,62 @@ ) endif(BUILD_TEST) +# Compiled example directories first. add_subdirectory(c) + +if(ENABLE_ada) + add_subdirectory(ada) +endif(ENABLE_ada) + if(ENABLE_cxx) add_subdirectory(c++) endif(ENABLE_cxx) + +if(ENABLE_d) + add_subdirectory(d) +endif(ENABLE_d) + if(ENABLE_f77) add_subdirectory(f77) endif(ENABLE_f77) + if(ENABLE_f95) add_subdirectory(f95) endif(ENABLE_f95) -if(ENABLE_python) - add_subdirectory(python) -endif(ENABLE_python) -if(ENABLE_tcl) - add_subdirectory(tcl) -endif(ENABLE_tcl) -if(ENABLE_tk) - add_subdirectory(tk) -endif(ENABLE_tk) + if(ENABLE_java) add_subdirectory(java) endif(ENABLE_java) -if(ENABLE_pdl) - add_subdirectory(perl) -endif(ENABLE_pdl) -if(ENABLE_ada) - add_subdirectory(ada) -endif(ENABLE_ada) -if(ENABLE_d) - add_subdirectory(d) -endif(ENABLE_d) + if(ENABLE_ocaml) add_subdirectory(ocaml) endif(ENABLE_ocaml) + +if(ENABLE_tk) + add_subdirectory(tk) +endif(ENABLE_tk) + +# Non-compiled example directories next. if(ENABLE_lua) add_subdirectory(lua) endif(ENABLE_lua) + +if(ENABLE_pdl) + add_subdirectory(perl) +endif(ENABLE_pdl) + +if(ENABLE_python) + add_subdirectory(python) +endif(ENABLE_python) + if(ENABLE_octave) add_subdirectory(octave) endif(ENABLE_octave) +if(ENABLE_tcl) + add_subdirectory(tcl) +endif(ENABLE_tcl) + # Configure Makefile.examples with some specific variables if(PLD_ps) Modified: trunk/examples/CMakeLists.txt_installed_examples =================================================================== --- trunk/examples/CMakeLists.txt_installed_examples 2009-07-26 23:12:07 UTC (rev 10180) +++ trunk/examples/CMakeLists.txt_installed_examples 2009-07-26 23:13:35 UTC (rev 10181) @@ -66,13 +66,17 @@ get_property(targets_examples_java GLOBAL PROPERTY TARGETS_examples_java) endif(ENABLE_java) +if(ENABLE_tk) + add_subdirectory(tk) + get_property(targets_examples_tk GLOBAL PROPERTY TARGETS_examples_tk) +endif(ENABLE_tk) + if(ENABLE_ocaml) add_subdirectory(ocaml) get_property(targets_examples_ocaml GLOBAL PROPERTY TARGETS_examples_ocaml) endif(ENABLE_ocaml) if(ENABLE_octave) - add_subdirectory(octave) execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/lena.img @@ -167,11 +171,6 @@ add_dependencies(test_noninteractive ${noninteractive_targets_LIST}) endif(noninteractive_targets_LIST) -if(ENABLE_tk) - add_subdirectory(tk) - get_property(targets_examples_tk GLOBAL PROPERTY TARGETS_examples_tk) -endif(ENABLE_tk) - set(interactive_targets_LIST ${targets_examples_c}) if(targets_examples_tk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2009-08-06 19:05:01
|
Revision: 10216 http://plplot.svn.sourceforge.net/plplot/?rev=10216&view=rev Author: airwin Date: 2009-08-06 19:04:53 +0000 (Thu, 06 Aug 2009) Log Message: ----------- CMake logic cleanups. Modified Paths: -------------- trunk/examples/ada/CMakeLists.txt trunk/examples/c/CMakeLists.txt trunk/examples/c++/CMakeLists.txt Modified: trunk/examples/ada/CMakeLists.txt =================================================================== --- trunk/examples/ada/CMakeLists.txt 2009-08-05 15:17:56 UTC (rev 10215) +++ trunk/examples/ada/CMakeLists.txt 2009-08-06 19:04:53 UTC (rev 10216) @@ -25,83 +25,72 @@ # BUILD_TEST ON and CORE_BUILD OFF. set(ada_STRING_INDICES -"01" -"02" -"03" -"04" -"05" -"06" -"07" -"08" -"09" -"10" -"11" -"12" -"13" -"14" -"15" -"16" -"17" -"18" -"19" -"20" -"21" -"22" -"23" -"24" -"25" -"26" -"27" -"28" -"29" -"30" -"31" -"thick01" -"thick02" -"thick03" -"thick04" -"thick05" -"thick06" -"thick07" -"thick08" -"thick09" -"thick10" -"thick11" -"thick12" -"thick13" -"thick14" -"thick15" -"thick16" -"thick17" -"thick18" -"thick19" -"thick20" -"thick21" -"thick22" -"thick23" -"thick24" -"thick25" -"thick26" -"thick27" -"thick28" -"thick29" -"thick30" -"thick31" -) + "01" + "02" + "03" + "04" + "05" + "06" + "07" + "08" + "09" + "10" + "11" + "12" + "13" + "14" + "15" + "16" + "17" + "18" + "19" + "20" + "21" + "22" + "23" + "24" + "25" + "26" + "27" + "28" + "29" + "30" + "31" + "thick01" + "thick02" + "thick03" + "thick04" + "thick05" + "thick06" + "thick07" + "thick08" + "thick09" + "thick10" + "thick11" + "thick12" + "thick13" + "thick14" + "thick15" + "thick16" + "thick17" + "thick18" + "thick19" + "thick20" + "thick21" + "thick22" + "thick23" + "thick24" + "thick25" + "thick26" + "thick27" + "thick28" + "thick29" + "thick30" + "thick31" + ) -if(BUILD_TEST) - if(CORE_BUILD) - remove_definitions("-DHAVE_CONFIG_H") - include_directories( - ${CMAKE_BINARY_DIR}/examples/ada - ${CMAKE_BINARY_DIR}/bindings/ada - ) - else(CORE_BUILD) - include_directories(${INCLUDE_DIR} ${ADA_INCLUDE_DIR}) - endif(CORE_BUILD) -endif(BUILD_TEST) - if(CORE_BUILD) + set(ada_SRCS) foreach(STRING_INDEX ${ada_STRING_INDICES}) set(SOURCE_FILE x${STRING_INDEX}a.adb) configure_file( @@ -110,9 +99,35 @@ ) list(APPEND ada_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE}) endforeach(STRING_INDEX ${ada_STRING_INDICES}) + + install(FILES ${ada_SRCS} DESTINATION ${DATA_DIR}/examples/ada) + + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in + ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + ) + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + DESTINATION ${DATA_DIR}/examples/ada + RENAME Makefile + ) + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt + DESTINATION ${DATA_DIR}/examples/ada + ) endif(CORE_BUILD) if(BUILD_TEST) + if(CORE_BUILD) + remove_definitions("-DHAVE_CONFIG_H") + include_directories( + ${CMAKE_BINARY_DIR}/examples/ada + ${CMAKE_BINARY_DIR}/bindings/ada + ) + else(CORE_BUILD) + include_directories(${INCLUDE_DIR} ${ADA_INCLUDE_DIR}) + endif(CORE_BUILD) + # The first -aI option in adalinkflags is required to find <TARGET>.adb # (see comment below). The second -aI option gives access to the # libplplotada spec files. The -aL option gives access to the @@ -155,21 +170,3 @@ set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${ada_extra_clean_files}") endif(BUILD_TEST) - -if(CORE_BUILD) - install(FILES ${ada_SRCS} DESTINATION ${DATA_DIR}/examples/ada) - - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in - ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples - ) - - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples - DESTINATION ${DATA_DIR}/examples/ada - RENAME Makefile - ) - - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt - DESTINATION ${DATA_DIR}/examples/ada - ) -endif(CORE_BUILD) Modified: trunk/examples/c/CMakeLists.txt =================================================================== --- trunk/examples/c/CMakeLists.txt 2009-08-05 15:17:56 UTC (rev 10215) +++ trunk/examples/c/CMakeLists.txt 2009-08-06 19:04:53 UTC (rev 10216) @@ -24,13 +24,6 @@ # and CORE_BUILD always ON. The installed examples build always has # BUILD_TEST ON and CORE_BUILD OFF. -if(CORE_BUILD) - set(c_SRCS - plcdemos.h - tutor.c - ) -endif(CORE_BUILD) - set(c_STRING_INDICES "01" "02" @@ -67,128 +60,15 @@ ) if(CORE_BUILD) + set(c_SRCS + plcdemos.h + tutor.c + ) foreach(STRING_INDEX ${c_STRING_INDICES}) set(c_SRCS ${c_SRCS} x${STRING_INDEX}c.c) endforeach(STRING_INDEX ${c_STRING_INDICES}) -endif(CORE_BUILD) -if(BUILD_TEST) - if(CORE_BUILD) - remove_definitions("-DHAVE_CONFIG_H") - include_directories( - ${CMAKE_SOURCE_DIR}/include - ${CMAKE_BINARY_DIR}/include - ${CMAKE_SOURCE_DIR}/lib/qsastime - ) - else(CORE_BUILD) - include_directories(${INCLUDE_DIR}) - endif(CORE_BUILD) -endif(BUILD_TEST) - -set_property(GLOBAL PROPERTY TARGETS_examples_c) -if(BUILD_TEST) - foreach(STRING_INDEX ${c_STRING_INDICES}) - if(CORE_BUILD AND BUILD_SHARED_LIBS) - SET_SOURCE_FILES_PROPERTIES(x${STRING_INDEX}c.c - PROPERTIES COMPILE_FLAGS "-DUSINGDLL" ) - endif(CORE_BUILD AND BUILD_SHARED_LIBS) - 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}) -endif(BUILD_TEST) - -if(ENABLE_gnome2 AND CORE_BUILD) - set(plplotcanvas_SRCS - plplotcanvas_demo.c - plplotcanvas_animation.c - ) - - set(plplotcanvas_DOCS - README.plplotcanvas - ) -endif(ENABLE_gnome2 AND CORE_BUILD) - -if(PKG_CONFIG_EXECUTABLE AND BUILD_TEST) - if(ENABLE_gnome2) - # plplotcanvas_demo.c and plplotcanvas_animation.c both - # contain "#include <gtk/gtk.h>" which occurs in the - # /usr/include/gtk-2.0 directory. They also contain - # "#include <plplotcanvas.h>". These issues are both taken care of - # by the libgnomeprintui-2.2 pkg-config module. - pkg_check_pkgconfig(libgnomeprintui-2.2 includedir libdir linkflags1 cflags1 version1 _GNOMEPRINTUI) - if(linkflags1) - # Requires blank-delimited list. - string(REGEX REPLACE ";" " " GNOMEPRINTUI_COMPILE_FLAGS "${cflags1}") - set(GNOMEPRINTUI_LINK_FLAGS "${linkflags1}") - set_source_files_properties( - plplotcanvas_demo.c - PROPERTIES COMPILE_FLAGS "${GNOMEPRINTUI_COMPILE_FLAGS}" - ) - add_executable(plplotcanvas_demo plplotcanvas_demo.c) - target_link_libraries(plplotcanvas_demo ${GNOMEPRINTUI_LINK_FLAGS} plplotgnome2${LIB_TAG}) - - # plplotcanvas_animation.c contains a reference to gthread_init and also - # contains '#include <glib.h>'. Analysis shows both these issues are - # taken care of by the gthread-2.0 pkg-config module. - pkg_check_pkgconfig(gthread-2.0 includedir libdir linkflags2 cflags2 version2 _GTHREAD_2.0) - if(linkflags2) - # Requires blank-delimited list. - string(REGEX REPLACE ";" " " GTHREAD_2.0_COMPILE_FLAGS "${cflags2}") - set(GTHREAD_2.0_LINK_FLAGS "${linkflags2}") - set_source_files_properties( - plplotcanvas_animation.c - PROPERTIES COMPILE_FLAGS "${GNOMEPRINTUI_COMPILE_FLAGS} ${GTHREAD_2.0_COMPILE_FLAGS}" - ) - add_executable(plplotcanvas_animation plplotcanvas_animation.c) - target_link_libraries(plplotcanvas_animation ${GNOMEPRINTUI_LINK_FLAGS} ${GTHREAD_2.0_LINK_FLAGS} plplotgnome2${LIB_TAG} ${MATH_LIB}) - else(linkflags2) - message(STATUS "WARNING: gthread-2.0 not found. plplotcanvas_animation not built") - endif(linkflags2) - else(linkflags1) - message(STATUS "WARNING: libgnomeprintui-2.2 not found. plplotcanvas_demo and plplotcanvas_animation not built.") - endif(linkflags1) - endif(ENABLE_gnome2) - if(PLD_xcairo) - pkg_check_pkgconfig(gtk+-x11-2.0 includedir libdir linkflags3 cflags3 version3 _GTK_X11) - if(linkflags3) - # Requires blank-delimited list. - string(REGEX REPLACE ";" " " GTK_X11_COMPILE_FLAGS "${cflags3}") - set(GTK_X11_LINK_FLAGS "${linkflags3}") - set_source_files_properties( - extXdrawable_demo.c - PROPERTIES COMPILE_FLAGS "${GTK_X11_COMPILE_FLAGS}" - ) - add_executable(extXdrawable_demo extXdrawable_demo.c) - target_link_libraries(extXdrawable_demo ${GTK_X11_LINK_FLAGS} plplot${LIB_TAG}) - else(linkflags3) - message(STATUS "WARNING: gtk+-x11-2.0 not found. extXdrawable_demo not built.") - endif(linkflags3) - endif(PLD_xcairo) - - if(PLD_extcairo) - pkg_check_pkgconfig(cairo includedir libdir linkflags4 cflags4 version4 _CAIRO) - if(linkflags4) - # Requires blank-delimited list. - string(REGEX REPLACE ";" " " CAIRO_COMPILE_FLAGS "${cflags4}") - set(CAIRO_LINK_FLAGS "${linkflags4}") - set_source_files_properties( - ext-cairo-test.c - PROPERTIES COMPILE_FLAGS "${CAIRO_COMPILE_FLAGS}" - ) - add_executable(ext-cairo-test ext-cairo-test.c) - target_link_libraries(ext-cairo-test ${CAIRO_LINK_FLAGS} plplot${LIB_TAG}) - else(linkflags4) - message(STATUS "WARNING: cairo not found. ext-cairo-test not built.") - endif(linkflags4) - endif(PLD_extcairo) -else(PKG_CONFIG_EXECUTABLE AND BUILD_TEST) - message(STATUS "WARNING: pkg-config not found so plplotcanvas_demo, plplotcanvas_animation, extXdrawable_demo, and ext-cairo-test not built.") -endif(PKG_CONFIG_EXECUTABLE AND BUILD_TEST) - -if(CORE_BUILD) - if(PLD_xcairo) set(extXdrawable_SRC extXdrawable_demo.c) endif(PLD_xcairo) @@ -200,6 +80,17 @@ set(cairo_DOCS README.cairo) endif(PLD_xcairo OR PLD_extcairo) + if(ENABLE_gnome2) + set(plplotcanvas_SRCS + plplotcanvas_demo.c + plplotcanvas_animation.c + ) + + set(plplotcanvas_DOCS + README.plplotcanvas + ) + endif(ENABLE_gnome2) + install(FILES ${c_SRCS} ${plplotcanvas_SRCS} ${plplotcanvas_DOCS} ${extXdrawable_SRC} ${extcairo_SRC} ${cairo_DOCS} DESTINATION ${DATA_DIR}/examples/c ) @@ -219,3 +110,105 @@ RENAME Makefile ) endif(CORE_BUILD) + +if(BUILD_TEST) + if(CORE_BUILD) + remove_definitions("-DHAVE_CONFIG_H") + include_directories( + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_BINARY_DIR}/include + ${CMAKE_SOURCE_DIR}/lib/qsastime + ) + else(CORE_BUILD) + include_directories(${INCLUDE_DIR}) + endif(CORE_BUILD) + + set_property(GLOBAL PROPERTY TARGETS_examples_c) + foreach(STRING_INDEX ${c_STRING_INDICES}) + if(CORE_BUILD AND BUILD_SHARED_LIBS) + SET_SOURCE_FILES_PROPERTIES(x${STRING_INDEX}c.c + PROPERTIES COMPILE_FLAGS "-DUSINGDLL" ) + endif(CORE_BUILD AND BUILD_SHARED_LIBS) + 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}) + + if(PKG_CONFIG_EXECUTABLE) + if(ENABLE_gnome2) + # plplotcanvas_demo.c and plplotcanvas_animation.c both + # contain "#include <gtk/gtk.h>" which occurs in the + # /usr/include/gtk-2.0 directory. They also contain + # "#include <plplotcanvas.h>". These issues are both taken care of + # by the libgnomeprintui-2.2 pkg-config module. + pkg_check_pkgconfig(libgnomeprintui-2.2 includedir libdir linkflags1 cflags1 version1 _GNOMEPRINTUI) + if(linkflags1) + # Requires blank-delimited list. + string(REGEX REPLACE ";" " " GNOMEPRINTUI_COMPILE_FLAGS "${cflags1}") + set(GNOMEPRINTUI_LINK_FLAGS "${linkflags1}") + set_source_files_properties( + plplotcanvas_demo.c + PROPERTIES COMPILE_FLAGS "${GNOMEPRINTUI_COMPILE_FLAGS}" + ) + add_executable(plplotcanvas_demo plplotcanvas_demo.c) + target_link_libraries(plplotcanvas_demo ${GNOMEPRINTUI_LINK_FLAGS} plplotgnome2${LIB_TAG}) + + # plplotcanvas_animation.c contains a reference to gthread_init and also + # contains '#include <glib.h>'. Analysis shows both these issues are + # taken care of by the gthread-2.0 pkg-config module. + pkg_check_pkgconfig(gthread-2.0 includedir libdir linkflags2 cflags2 version2 _GTHREAD_2.0) + if(linkflags2) + # Requires blank-delimited list. + string(REGEX REPLACE ";" " " GTHREAD_2.0_COMPILE_FLAGS "${cflags2}") + set(GTHREAD_2.0_LINK_FLAGS "${linkflags2}") + set_source_files_properties( + plplotcanvas_animation.c + PROPERTIES COMPILE_FLAGS "${GNOMEPRINTUI_COMPILE_FLAGS} ${GTHREAD_2.0_COMPILE_FLAGS}" + ) + add_executable(plplotcanvas_animation plplotcanvas_animation.c) + target_link_libraries(plplotcanvas_animation ${GNOMEPRINTUI_LINK_FLAGS} ${GTHREAD_2.0_LINK_FLAGS} plplotgnome2${LIB_TAG} ${MATH_LIB}) + else(linkflags2) + message(STATUS "WARNING: gthread-2.0 not found. plplotcanvas_animation not built") + endif(linkflags2) + else(linkflags1) + message(STATUS "WARNING: libgnomeprintui-2.2 not found. plplotcanvas_demo and plplotcanvas_animation not built.") + endif(linkflags1) + endif(ENABLE_gnome2) + + if(PLD_xcairo) + pkg_check_pkgconfig(gtk+-x11-2.0 includedir libdir linkflags3 cflags3 version3 _GTK_X11) + if(linkflags3) + # Requires blank-delimited list. + string(REGEX REPLACE ";" " " GTK_X11_COMPILE_FLAGS "${cflags3}") + set(GTK_X11_LINK_FLAGS "${linkflags3}") + set_source_files_properties( + extXdrawable_demo.c + PROPERTIES COMPILE_FLAGS "${GTK_X11_COMPILE_FLAGS}" + ) + add_executable(extXdrawable_demo extXdrawable_demo.c) + target_link_libraries(extXdrawable_demo ${GTK_X11_LINK_FLAGS} plplot${LIB_TAG}) + else(linkflags3) + message(STATUS "WARNING: gtk+-x11-2.0 not found. extXdrawable_demo not built.") + endif(linkflags3) + endif(PLD_xcairo) + + if(PLD_extcairo) + pkg_check_pkgconfig(cairo includedir libdir linkflags4 cflags4 version4 _CAIRO) + if(linkflags4) + # Requires blank-delimited list. + string(REGEX REPLACE ";" " " CAIRO_COMPILE_FLAGS "${cflags4}") + set(CAIRO_LINK_FLAGS "${linkflags4}") + set_source_files_properties( + ext-cairo-test.c + PROPERTIES COMPILE_FLAGS "${CAIRO_COMPILE_FLAGS}" + ) + add_executable(ext-cairo-test ext-cairo-test.c) + target_link_libraries(ext-cairo-test ${CAIRO_LINK_FLAGS} plplot${LIB_TAG}) + else(linkflags4) + message(STATUS "WARNING: cairo not found. ext-cairo-test not built.") + endif(linkflags4) + endif(PLD_extcairo) + else(PKG_CONFIG_EXECUTABLE) + message(STATUS "WARNING: pkg-config not found so plplotcanvas_demo, plplotcanvas_animation, extXdrawable_demo, and ext-cairo-test not built.") + endif(PKG_CONFIG_EXECUTABLE) +endif(BUILD_test) Modified: trunk/examples/c++/CMakeLists.txt =================================================================== --- trunk/examples/c++/CMakeLists.txt 2009-08-05 15:17:56 UTC (rev 10215) +++ trunk/examples/c++/CMakeLists.txt 2009-08-06 19:04:53 UTC (rev 10216) @@ -25,10 +25,6 @@ # and CORE_BUILD always ON. The installed examples build always has # BUILD_TEST ON and CORE_BUILD OFF. -if(CORE_BUILD) - set(cxx_SRCS plc++demos.h) -endif(CORE_BUILD) - set(cxx_STRING_INDICES "01cc" "01" @@ -65,9 +61,35 @@ ) if(CORE_BUILD) + set(cxx_SRCS plc++demos.h) foreach(STRING_INDEX ${cxx_STRING_INDICES}) set(cxx_SRCS ${cxx_SRCS} x${STRING_INDEX}.cc) endforeach(STRING_INDEX ${cxx_STRING_INDICES}) + + if(ENABLE_wxwidgets) + set(wxPLplotDemo_SRCS wxPLplotDemo.cpp) + endif(ENABLE_wxwidgets) + + if(PLD_extqt) + set(qt_INSTALLED_FILES qt_PlotWindow.cpp qt_PlotWindow.h qt_example.cpp README.qt_example) + endif(PLD_extqt) + + install(FILES ${cxx_SRCS} ${wxPLplotDemo_SRCS} ${qt_INSTALLED_FILES} DESTINATION ${DATA_DIR}/examples/c++) + + set(CXX ${CMAKE_CXX_COMPILER}) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in + ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + ) + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + DESTINATION ${DATA_DIR}/examples/c++ + RENAME Makefile + ) + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt + DESTINATION ${DATA_DIR}/examples/c++ + ) endif(CORE_BUILD) if(BUILD_TEST) @@ -84,8 +106,8 @@ endif(CORE_BUILD) endif(BUILD_TEST) -set_property(GLOBAL PROPERTY TARGETS_examples_cxx) if(BUILD_TEST) + set_property(GLOBAL PROPERTY TARGETS_examples_cxx) foreach(STRING_INDEX ${cxx_STRING_INDICES}) if(CORE_BUILD AND BUILD_SHARED_LIBS) SET_SOURCE_FILES_PROPERTIES(x${STRING_INDEX}.cc @@ -157,30 +179,3 @@ endif(BUILD_qt_example) endif(ENABLE_qt) endif(BUILD_TEST) - -if(CORE_BUILD) - if(ENABLE_wxwidgets) - set(wxPLplotDemo_SRCS wxPLplotDemo.cpp) - endif(ENABLE_wxwidgets) - - if(PLD_extqt) - set(qt_INSTALLED_FILES qt_PlotWindow.cpp qt_PlotWindow.h qt_example.cpp README.qt_example) - endif(PLD_extqt) - - install(FILES ${cxx_SRCS} ${wxPLplotDemo_SRCS} ${qt_INSTALLED_FILES} DESTINATION ${DATA_DIR}/examples/c++) - - set(CXX ${CMAKE_CXX_COMPILER}) - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in - ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples - ) - - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples - DESTINATION ${DATA_DIR}/examples/c++ - RENAME Makefile - ) - - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt - DESTINATION ${DATA_DIR}/examples/c++ - ) -endif(CORE_BUILD) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2009-08-15 16:30:05
|
Revision: 10262 http://plplot.svn.sourceforge.net/plplot/?rev=10262&view=rev Author: airwin Date: 2009-08-15 16:29:57 +0000 (Sat, 15 Aug 2009) Log Message: ----------- Merge installed examples build system and test capability from examples/CMakeLists.txt_installed_examples into examples/CMakeLists.txt. N.B. an additional goal is to integrate the installed examples test capability into the core build (e.g., the test_interactive and test_noninteractive targets), but that has not been done yet. Modified Paths: -------------- trunk/examples/CMakeLists.txt Removed Paths: ------------- trunk/examples/CMakeLists.txt_installed_examples Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2009-08-15 13:03:11 UTC (rev 10261) +++ trunk/examples/CMakeLists.txt 2009-08-15 16:29:57 UTC (rev 10262) @@ -1,7 +1,7 @@ # examples/CMakeLists.txt ### Process this file with cmake to produce Makefile ### -# Copyright (C) 2006 Alan W. Irwin +# Copyright (C) 2006, 2007, 2008, 2009 Alan W. Irwin # # This file is part of PLplot. # @@ -18,351 +18,644 @@ # along with PLplot; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# Sort out RPATH issues for build of installed examples. -if(USE_RPATH) - get_target_property(_LIB_INSTALL_RPATH plplot${LIB_TAG} INSTALL_RPATH) - string(REGEX REPLACE ";" ":" LIB_INSTALL_RPATH "${_LIB_INSTALL_RPATH}") - set(RPATHCMD "-Wl,-rpath -Wl,${LIB_INSTALL_RPATH}") - if(PLD_extqt) - if(ENABLE_DYNDRIVERS) - get_target_property(_qt_INSTALL_RPATH qt INSTALL_RPATH) - string(REGEX REPLACE ";" ":" qt_INSTALL_RPATH "${_qt_INSTALL_RPATH}") - set(qt_RPATHCMD "-Wl,-rpath -Wl,${qt_INSTALL_RPATH}:${DRV_DIR}") - else(ENABLE_DYNDRIVERS) - set(qt_RPATHCMD ${RPATHCMD}) - endif(ENABLE_DYNDRIVERS) - endif(PLD_extqt) -endif(USE_RPATH) +# N.B. This file is used for both the core build (which installs the examples +# and optionally [depending on BUILD_TEST} builds them) and the installed +# examples build. The core build has BUILD_TEST OFF or ON at user option +# and CORE_BUILD always ON. The installed examples build always has +# BUILD_TEST ON and CORE_BUILD OFF. -# Install lena.pgm in installed examples directory so that all implementations -# of example 20 in the various examples subdirectories can conveniently -# access this file. -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm - DESTINATION ${DATA_DIR}/examples - ) +if(CORE_BUILD) + # Sort out RPATH issues for traditional build of installed examples using + # */Makefiles configured in each * subdirectory from */Makefile.examples.in. + if(USE_RPATH) + get_target_property(_LIB_INSTALL_RPATH plplot${LIB_TAG} INSTALL_RPATH) + string(REGEX REPLACE ";" ":" LIB_INSTALL_RPATH "${_LIB_INSTALL_RPATH}") + set(RPATHCMD "-Wl,-rpath -Wl,${LIB_INSTALL_RPATH}") + if(PLD_extqt) + if(ENABLE_DYNDRIVERS) + get_target_property(_qt_INSTALL_RPATH qt INSTALL_RPATH) + string(REGEX REPLACE ";" ":" qt_INSTALL_RPATH "${_qt_INSTALL_RPATH}") + set(qt_RPATHCMD "-Wl,-rpath -Wl,${qt_INSTALL_RPATH}:${DRV_DIR}") + else(ENABLE_DYNDRIVERS) + set(qt_RPATHCMD ${RPATHCMD}) + endif(ENABLE_DYNDRIVERS) + endif(PLD_extqt) + endif(USE_RPATH) -# Do the same as above for the build tree for those who want to individually -# run the various example 20 implementations from the examples subdirectories -# of the build tree. - -if(BUILD_TEST) - add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm - ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm + # Install lena.pgm in installed examples directory so that all implementations + # of example 20 in the various examples subdirectories can conveniently + # access this file. + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm + DESTINATION ${DATA_DIR}/examples ) - add_custom_target(examples_lena_file ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm - ) -endif(BUILD_TEST) -# Compiled example directories first. -add_subdirectory(c) + # Do the same as above for the build tree for those who want to individually + # run the various example 20 implementations from the examples subdirectories + # of the build tree. -if(ENABLE_ada) - add_subdirectory(ada) -endif(ENABLE_ada) + if(BUILD_TEST) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm + ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm + ) + add_custom_target(examples_lena_file ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm + ) + endif(BUILD_TEST) -if(ENABLE_cxx) - add_subdirectory(c++) -endif(ENABLE_cxx) + # Compiled example directories first. + add_subdirectory(c) + get_property(targets_examples_c GLOBAL PROPERTY TARGETS_examples_c) -if(ENABLE_d) - add_subdirectory(d) -endif(ENABLE_d) + if(ENABLE_ada) + add_subdirectory(ada) + get_property(targets_examples_ada GLOBAL PROPERTY TARGETS_examples_ada) + endif(ENABLE_ada) -if(ENABLE_f77) - add_subdirectory(f77) -endif(ENABLE_f77) + if(ENABLE_cxx) + add_subdirectory(c++) + get_property(targets_examples_cxx GLOBAL PROPERTY TARGETS_examples_cxx) + endif(ENABLE_cxx) -if(ENABLE_f95) - add_subdirectory(f95) -endif(ENABLE_f95) + if(ENABLE_d) + add_subdirectory(d) + get_property(targets_examples_d GLOBAL PROPERTY TARGETS_examples_d) + endif(ENABLE_d) -if(ENABLE_java) - add_subdirectory(java) -endif(ENABLE_java) + if(ENABLE_f77) + add_subdirectory(f77) + get_property(targets_examples_f77 GLOBAL PROPERTY TARGETS_examples_f77) + endif(ENABLE_f77) -if(ENABLE_ocaml) - add_subdirectory(ocaml) -endif(ENABLE_ocaml) + if(ENABLE_f95) + add_subdirectory(f95) + get_property(targets_examples_f95 GLOBAL PROPERTY TARGETS_examples_f95) + endif(ENABLE_f95) -if(ENABLE_tk) - add_subdirectory(tk) -endif(ENABLE_tk) + if(ENABLE_java) + add_subdirectory(java) + get_property(targets_examples_java GLOBAL PROPERTY TARGETS_examples_java) + endif(ENABLE_java) -# Non-compiled example directories next. -if(ENABLE_lua) - add_subdirectory(lua) -endif(ENABLE_lua) + if(ENABLE_ocaml) + add_subdirectory(ocaml) + get_property(targets_examples_ocaml GLOBAL PROPERTY TARGETS_examples_ocaml) + endif(ENABLE_ocaml) -if(ENABLE_pdl) - add_subdirectory(perl) -endif(ENABLE_pdl) + if(ENABLE_tk) + add_subdirectory(tk) + get_property(targets_examples_tk GLOBAL PROPERTY TARGETS_examples_tk) + endif(ENABLE_tk) + + # Non-compiled example directories next. + if(ENABLE_lua) + add_subdirectory(lua) + endif(ENABLE_lua) -if(ENABLE_python) - add_subdirectory(python) -endif(ENABLE_python) + if(ENABLE_pdl) + add_subdirectory(perl) + endif(ENABLE_pdl) -if(ENABLE_octave) - add_subdirectory(octave) -endif(ENABLE_octave) + if(ENABLE_python) + add_subdirectory(python) + endif(ENABLE_python) -if(ENABLE_tcl) - add_subdirectory(tcl) -endif(ENABLE_tcl) + if(ENABLE_octave) + add_subdirectory(octave) + endif(ENABLE_octave) -# Configure Makefile.examples with some specific variables + if(ENABLE_tcl) + add_subdirectory(tcl) + endif(ENABLE_tcl) -if(PLD_ps) - if(NOT ENABLE_ada) + # Configure Makefile.examples with some specific variables + + if(PLD_ps) + if(NOT ENABLE_ada) + set(PSC_ADA_COMMENT "#") + endif(NOT ENABLE_ada) + + if(NOT ENABLE_cxx) + set(PSC_CXX_COMMENT "#") + endif(NOT ENABLE_cxx) + + if(NOT ENABLE_d) + set(PSC_D_COMMENT "#") + endif(NOT ENABLE_d) + + if(NOT ENABLE_f77) + set(PSC_F77_COMMENT "#") + endif(NOT ENABLE_f77) + + if(NOT ENABLE_f95) + set(PSC_F95_COMMENT "#") + endif(NOT ENABLE_f95) + + if(NOT ENABLE_java) + set(PSC_JAVA_COMMENT "#") + endif(NOT ENABLE_java) + + if(NOT ENABLE_ocaml) + set(PSC_OCAML_COMMENT "#") + endif(NOT ENABLE_ocaml) + + if(NOT ENABLE_octave) + set(PSC_OCTAVE_COMMENT "#") + endif(NOT ENABLE_octave) + + if(NOT ENABLE_pdl) + set(PSC_PERL_COMMENT "#") + endif(NOT ENABLE_pdl) + + if(NOT ENABLE_python) + set(PSC_PYTHON_COMMENT "#") + endif(NOT ENABLE_python) + + if(NOT ENABLE_tcl) + set(PSC_TCL_COMMENT "#") + endif(NOT ENABLE_tcl) + + if(NOT ENABLE_lua) + set(PSC_LUA_COMMENT "#") + endif(NOT ENABLE_lua) + + else(PLD_ps) set(PSC_ADA_COMMENT "#") - endif(NOT ENABLE_ada) - - if(NOT ENABLE_cxx) + set(PSC_C_COMMENT "#") set(PSC_CXX_COMMENT "#") - endif(NOT ENABLE_cxx) - - if(NOT ENABLE_d) set(PSC_D_COMMENT "#") - endif(NOT ENABLE_d) - - if(NOT ENABLE_f77) set(PSC_F77_COMMENT "#") - endif(NOT ENABLE_f77) - - if(NOT ENABLE_f95) set(PSC_F95_COMMENT "#") - endif(NOT ENABLE_f95) - - if(NOT ENABLE_java) set(PSC_JAVA_COMMENT "#") - endif(NOT ENABLE_java) - - if(NOT ENABLE_ocaml) set(PSC_OCAML_COMMENT "#") - endif(NOT ENABLE_ocaml) - - if(NOT ENABLE_octave) set(PSC_OCTAVE_COMMENT "#") - endif(NOT ENABLE_octave) - - if(NOT ENABLE_pdl) set(PSC_PERL_COMMENT "#") - endif(NOT ENABLE_pdl) - - if(NOT ENABLE_python) set(PSC_PYTHON_COMMENT "#") - endif(NOT ENABLE_python) - - if(NOT ENABLE_tcl) set(PSC_TCL_COMMENT "#") - endif(NOT ENABLE_tcl) + endif(PLD_ps) - if(NOT ENABLE_lua) - set(PSC_LUA_COMMENT "#") - endif(NOT ENABLE_lua) + if(NOT ENABLE_tk) + set(TK_COMMENT "#") + endif(NOT ENABLE_tk) -else(PLD_ps) - set(PSC_ADA_COMMENT "#") - set(PSC_C_COMMENT "#") - set(PSC_CXX_COMMENT "#") - set(PSC_D_COMMENT "#") - set(PSC_F77_COMMENT "#") - set(PSC_F95_COMMENT "#") - set(PSC_JAVA_COMMENT "#") - set(PSC_OCAML_COMMENT "#") - set(PSC_OCTAVE_COMMENT "#") - set(PSC_PERL_COMMENT "#") - set(PSC_PYTHON_COMMENT "#") - set(PSC_TCL_COMMENT "#") -endif(PLD_ps) + if(NOT PLD_pdfcairo) + set(PDFCAIRO_COMMENT "#") + endif(NOT PLD_pdfcairo) -if(NOT ENABLE_tk) - set(TK_COMMENT "#") -endif(NOT ENABLE_tk) + if(NOT PLD_pngcairo) + set(PNGCAIRO_COMMENT "#") + endif(NOT PLD_pngcairo) -if(NOT PLD_pdfcairo) - set(PDFCAIRO_COMMENT "#") -endif(NOT PLD_pdfcairo) + if(NOT PLD_pscairo) + set(PSCAIRO_COMMENT "#") + endif(NOT PLD_pscairo) -if(NOT PLD_pngcairo) - set(PNGCAIRO_COMMENT "#") -endif(NOT PLD_pngcairo) + if(NOT PLD_svgcairo) + set(SVGCAIRO_COMMENT "#") + endif(NOT PLD_svgcairo) -if(NOT PLD_pscairo) - set(PSCAIRO_COMMENT "#") -endif(NOT PLD_pscairo) + if(NOT PLD_gif) + set(GIF_COMMENT "#") + endif(NOT PLD_gif) -if(NOT PLD_svgcairo) - set(SVGCAIRO_COMMENT "#") -endif(NOT PLD_svgcairo) + if(NOT PLD_jpeg) + set(JPEG_COMMENT "#") + endif(NOT PLD_jpeg) -if(NOT PLD_gif) - set(GIF_COMMENT "#") -endif(NOT PLD_gif) + if(NOT PLD_png) + set(PNG_COMMENT "#") + endif(NOT PLD_png) -if(NOT PLD_jpeg) - set(JPEG_COMMENT "#") -endif(NOT PLD_jpeg) + if(NOT PLD_psttf) + set(PSTTFC_COMMENT "#") + endif(NOT PLD_psttf) -if(NOT PLD_png) - set(PNG_COMMENT "#") -endif(NOT PLD_png) + if(NOT PLD_svg) + set(SVG_COMMENT "#") + endif(NOT PLD_svg) -if(NOT PLD_psttf) - set(PSTTFC_COMMENT "#") -endif(NOT PLD_psttf) + if(NOT PLD_xfig) + set(XFIG_COMMENT "#") + endif(NOT PLD_xfig) -if(NOT PLD_svg) - set(SVG_COMMENT "#") -endif(NOT PLD_svg) + if(NOT PLD_pstex) + set(PSTEX_COMMENT "#") + endif(NOT PLD_pstex) -if(NOT PLD_xfig) - set(XFIG_COMMENT "#") -endif(NOT PLD_xfig) + if(NOT DIFF_EXECUTABLE OR NOT TAIL_EXECUTABLE) + set(COMPARE_COMMENT "#") + endif(NOT DIFF_EXECUTABLE OR NOT TAIL_EXECUTABLE) -if(NOT PLD_pstex) - set(PSTEX_COMMENT "#") -endif(NOT PLD_pstex) + if(NOT PLD_cgm) + set(CGM_COMMENT "#") + endif(NOT PLD_cgm) -if(NOT DIFF_EXECUTABLE OR NOT TAIL_EXECUTABLE) - set(COMPARE_COMMENT "#") -endif(NOT DIFF_EXECUTABLE OR NOT TAIL_EXECUTABLE) + if(NOT PLD_bmpqt) + set(BMPQT_COMMENT "#") + endif(NOT PLD_bmpqt) -if(NOT PLD_cgm) - set(CGM_COMMENT "#") -endif(NOT PLD_cgm) + if(NOT PLD_jpgqt) + set(JPGQT_COMMENT "#") + endif(NOT PLD_jpgqt) -if(NOT PLD_bmpqt) - set(BMPQT_COMMENT "#") -endif(NOT PLD_bmpqt) + if(NOT PLD_pngqt) + set(PNGQT_COMMENT "#") + endif(NOT PLD_pngqt) -if(NOT PLD_jpgqt) - set(JPGQT_COMMENT "#") -endif(NOT PLD_jpgqt) + if(NOT PLD_ppmqt) + set(PPMQT_COMMENT "#") + endif(NOT PLD_ppmqt) -if(NOT PLD_pngqt) - set(PNGQT_COMMENT "#") -endif(NOT PLD_pngqt) + if(NOT PLD_tiffqt) + set(TIFFQT_COMMENT "#") + endif(NOT PLD_tiffqt) -if(NOT PLD_ppmqt) - set(PPMQT_COMMENT "#") -endif(NOT PLD_ppmqt) + if(NOT PLD_svgqt) + set(SVGQT_COMMENT "#") + endif(NOT PLD_svgqt) -if(NOT PLD_tiffqt) - set(TIFFQT_COMMENT "#") -endif(NOT PLD_tiffqt) + if(NOT PLD_epsqt) + set(EPSQT_COMMENT "#") + endif(NOT PLD_epsqt) -if(NOT PLD_svgqt) - set(SVGQT_COMMENT "#") -endif(NOT PLD_svgqt) + if(NOT PLD_pdfqt) + set(PDFQT_COMMENT "#") + endif(NOT PLD_pdfqt) -if(NOT PLD_epsqt) - set(EPSQT_COMMENT "#") -endif(NOT PLD_epsqt) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in + ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + @ONLY + ) -if(NOT PLD_pdfqt) - set(PDFQT_COMMENT "#") -endif(NOT PLD_pdfqt) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples + DESTINATION ${DATA_DIR}/examples + RENAME Makefile + ) -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/Makefile.examples.in - ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples - @ONLY - ) + # Start configuration/installation of CMake-based build system for + # installed examples. + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt + DESTINATION ${DATA_DIR}/examples + ) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Makefile.examples - DESTINATION ${DATA_DIR}/examples - RENAME Makefile - ) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/plplot_configure.cmake_installed_examples.in + ${CMAKE_CURRENT_BINARY_DIR}/plplot_configure.cmake_installed_examples + @ONLY + ) -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt_installed_examples - DESTINATION ${DATA_DIR}/examples - RENAME CMakeLists.txt - ) + install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/plplot_configure.cmake_installed_examples + DESTINATION ${DATA_DIR}/examples/cmake/modules + RENAME plplot_configure.cmake + ) -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/plplot_configure.cmake_installed_examples.in - ${CMAKE_CURRENT_BINARY_DIR}/plplot_configure.cmake_installed_examples - @ONLY - ) + # pkg-config support for CMake-based build system for installed examples. + install(FILES + ${CMAKE_SOURCE_DIR}/cmake/modules/pkg-config.cmake + ${CMAKE_SOURCE_DIR}/cmake/modules/FindPkgConfig.cmake + DESTINATION ${DATA_DIR}/examples/cmake/modules + ) -install(FILES - ${CMAKE_CURRENT_BINARY_DIR}/plplot_configure.cmake_installed_examples - DESTINATION ${DATA_DIR}/examples/cmake/modules - RENAME plplot_configure.cmake - ) + # Install PLplot-specific language support files needed for CMake-based + # build of installed examples. + # N.B. This list of files must be maintained consistently with the file + # lists in cmake/modules/language_support.cmake. -# pkg-config support for CMake-based build system for installed examples. -install(FILES - ${CMAKE_SOURCE_DIR}/cmake/modules/pkg-config.cmake - ${CMAKE_SOURCE_DIR}/cmake/modules/FindPkgConfig.cmake - DESTINATION ${DATA_DIR}/examples/cmake/modules - ) + set(LANG_SUPPORT_FILES) + set(PLATFORM_SUPPORT_FILES) -# Install PLplot-specific language support files needed for CMake-based -# build of installed examples. -# N.B. This list of files must be maintained consistently with the file -# lists in cmake/modules/language_support.cmake. + if(ENABLE_ada) + set(LANG_SUPPORT_FILES ${LANG_SUPPORT_FILES} + CMakeAdaCompiler.cmake.in + CMakeAdaInformation.cmake + CMakeDetermineAdaCompiler.cmake + CMakeTestAdaCompiler.cmake + ) + endif(ENABLE_ada) -set(LANG_SUPPORT_FILES) -set(PLATFORM_SUPPORT_FILES) + if(ENABLE_d) + set(LANG_SUPPORT_FILES ${LANG_SUPPORT_FILES} + CMakeD_Copyright.txt + CMakeDCompiler.cmake.in + CMakeDInformation.cmake + CMakeDetermineDCompiler.cmake + CMakeTestDCompiler.cmake + ) + set(PLATFORM_SUPPORT_FILES ${PLATFORM_SUPPORT_FILES} + Platform/Linux-dmd.cmake + Platform/Linux-gdc.cmake + Platform/Windows-dmd.cmake + Platform/Windows-gdc.cmake + ) + endif(ENABLE_d) -if(ENABLE_ada) - set(LANG_SUPPORT_FILES ${LANG_SUPPORT_FILES} - CMakeAdaCompiler.cmake.in - CMakeAdaInformation.cmake - CMakeDetermineAdaCompiler.cmake - CMakeTestAdaCompiler.cmake + if(ENABLE_f77 OR ENABLE_f95) + set(LANG_SUPPORT_FILES ${LANG_SUPPORT_FILES} + CMakeFortranInformation.cmake + ) + set(PLATFORM_SUPPORT_FILES ${PLATFORM_SUPPORT_FILES} + Platform/Cygwin-GNU-Fortran.cmake + Platform/Windows-GNU-Fortran.cmake + Platform/Windows-df.cmake + Platform/Windows-f90.cmake + ) + endif(ENABLE_f77 OR ENABLE_f95) + + if(LANG_SUPPORT_FILES) + foreach(LANG_SUPPORT_FILE ${LANG_SUPPORT_FILES}) + install(FILES + ${CMAKE_SOURCE_DIR}/cmake/modules/${LANG_SUPPORT_FILE} + DESTINATION ${DATA_DIR}/examples/cmake/modules + ) + endforeach(LANG_SUPPORT_FILE ${LANG_SUPPORT_FILES}) + endif(LANG_SUPPORT_FILES) + + if(PLATFORM_SUPPORT_FILES) + foreach(PLATFORM_SUPPORT_FILE ${PLATFORM_SUPPORT_FILES}) + install(FILES + ${CMAKE_SOURCE_DIR}/cmake/modules/${PLATFORM_SUPPORT_FILE} + DESTINATION ${DATA_DIR}/examples/cmake/modules/Platform + ) + endforeach(PLATFORM_SUPPORT_FILE ${PLATFORM_SUPPORT_FILES}) + endif(PLATFORM_SUPPORT_FILES) + +else(CORE_BUILD) + 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) + + #Configure variables and enable languages as needed. + include(plplot_configure) + + include(export_plplot) + + if(ENABLE_c) + add_subdirectory(c) + get_property(targets_examples_c GLOBAL PROPERTY TARGETS_examples_c) + endif(ENABLE_c) + + if(ENABLE_ada) + add_subdirectory(ada) + get_property(targets_examples_ada GLOBAL PROPERTY TARGETS_examples_ada) + endif(ENABLE_ada) + + if(ENABLE_cxx) + add_subdirectory(c++) + get_property(targets_examples_cxx GLOBAL PROPERTY TARGETS_examples_cxx) + endif(ENABLE_cxx) + + if(ENABLE_d) + add_subdirectory(d) + get_property(targets_examples_d GLOBAL PROPERTY TARGETS_examples_d) + endif(ENABLE_d) + + if(ENABLE_f77) + add_subdirectory(f77) + get_property(targets_examples_f77 GLOBAL PROPERTY TARGETS_examples_f77) + endif(ENABLE_f77) + + if(ENABLE_f95) + add_subdirectory(f95) + get_property(targets_examples_f95 GLOBAL PROPERTY TARGETS_examples_f95) + endif(ENABLE_f95) + + if(ENABLE_java) + add_subdirectory(java) + get_property(targets_examples_java GLOBAL PROPERTY TARGETS_examples_java) + endif(ENABLE_java) + + if(ENABLE_ocaml) + add_subdirectory(ocaml) + get_property(targets_examples_ocaml GLOBAL PROPERTY TARGETS_examples_ocaml) + endif(ENABLE_ocaml) + + if(ENABLE_tk) + add_subdirectory(tk) + get_property(targets_examples_tk GLOBAL PROPERTY TARGETS_examples_tk) + endif(ENABLE_tk) + + if(ENABLE_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 ) -endif(ENABLE_ada) -if(ENABLE_d) - set(LANG_SUPPORT_FILES ${LANG_SUPPORT_FILES} - CMakeD_Copyright.txt - CMakeDCompiler.cmake.in - CMakeDInformation.cmake - CMakeDetermineDCompiler.cmake - CMakeTestDCompiler.cmake + if(PLD_psc) + set(output_LIST) + set(noninteractive_targets_LIST) + # language_info_LIST set in plplot_configure.cmake. Each list + # member consists of a colon-separated language name and the associated + # filename suffix used by plplot-test.sh. + foreach(language_info ${language_info_LIST}) + string(REGEX REPLACE "^(.*):.*$" "\\1" language ${language_info}) + string(REGEX REPLACE "^.*:(.*)$" "\\1" suffix ${language_info}) + + if(ENABLE_${language}) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x01${suffix}.psc + COMMAND ${CMAKE_COMMAND} -E echo "Generate ${language} results for psc device" + COMMAND SRC_EXAMPLES_DIR=${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh --verbose --front-end=${language} --device=psc + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh + ) + list(APPEND output_LIST ${CMAKE_CURRENT_BINARY_DIR}/x01${suffix}.psc) + if(targets_examples_${language}) + list(APPEND noninteractive_targets_LIST ${targets_examples_${language}}) + endif(targets_examples_${language}) + endif(ENABLE_${language}) + 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} + ) + set(output_LIST ${CMAKE_CURRENT_BINARY_DIR}/compare) + else(PLD_psc) + set(output_LIST) + endif(PLD_psc) + + # noninteractive_devices_info_LIST set in plplot_configure.cmake. Each list + # member consists of a colon-separated device name and a Boolean variable + # that indicates if device has familied output in plplot-test.sh. + foreach(noninteractive_devices_info ${noninteractive_devices_info_LIST}) + string(REGEX REPLACE "^(.*):.*$" "\\1" device ${noninteractive_devices_info}) + string(REGEX REPLACE "^.*:(.*)$" "\\1" familied ${noninteractive_devices_info}) + + # If familying turned on for this device in plplot-test.sh, then the OUTPUT + # files appear in the form x??c??.${device} rather than x??c.${device}. + # Put in a representative placeholder for the familying index in the + # OUTPUT name. + if(familied) + set(index 01) + else(familied) + set(index) + endif(familied) + + # ENABLE_c is always ON by construction in plplot_configure.cmake, but + # make a logical test of it in any case just to be consistent with above + # ENABLE_${language} logic where c is one of the languages. + if(PLD_${device} AND ENABLE_c) + #message("DEBUG: OUTPUT filename = x01c${index}.${device}") + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x01c${index}.${device} + COMMAND ${CMAKE_COMMAND} -E echo "Generate C results for ${device} device" + COMMAND SRC_EXAMPLES_DIR=${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh --verbose --front-end=c --device=${device} + DEPENDS + ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh + ) + list(APPEND output_LIST ${CMAKE_CURRENT_BINARY_DIR}/x01c${index}.${device}) + endif(PLD_${device} AND ENABLE_c) + endforeach(noninteractive_devices_info ${noninteractive_devices_info_LIST}) + + add_custom_target(test_noninteractive + DEPENDS ${output_LIST} ) - set(PLATFORM_SUPPORT_FILES ${PLATFORM_SUPPORT_FILES} - Platform/Linux-dmd.cmake - Platform/Linux-gdc.cmake - Platform/Windows-dmd.cmake - Platform/Windows-gdc.cmake - ) -endif(ENABLE_d) + if(noninteractive_targets_LIST) + add_dependencies(test_noninteractive ${noninteractive_targets_LIST}) + endif(noninteractive_targets_LIST) -if(ENABLE_f77 OR ENABLE_f95) - set(LANG_SUPPORT_FILES ${LANG_SUPPORT_FILES} - CMakeFortranInformation.cmake + set(interactive_targets_LIST ${targets_examples_c}) + + if(targets_examples_tk) + list(APPEND interactive_targets_LIST ${targets_examples_tk}) + endif(targets_examples_tk) + + if(TARGET plplotcanvas_demo) + list(APPEND interactive_targets_LIST plplotcanvas_demo) + endif(TARGET plplotcanvas_demo) + + if(TARGET plplotcanvas_animation) + list(APPEND interactive_targets_LIST plplotcanvas_animation) + endif(TARGET plplotcanvas_animation) + + if(TARGET extXdrawable_demo) + list(APPEND interactive_targets_LIST extXdrawable_demo) + endif(TARGET extXdrawable_demo) + + if(TARGET ext-cairo-test) + list(APPEND interactive_targets_LIST ext-cairo-test) + endif(TARGET ext-cairo-test) + + if(TARGET wxPLplotDemo) + list(APPEND interactive_targets_LIST wxPLplotDemo) + endif(TARGET wxPLplotDemo) + + if(TARGET qt_example) + list(APPEND interactive_targets_LIST qt_example) + endif(TARGET qt_example) + + add_custom_target(test_interactive + COMMAND SRC_EXAMPLES_DIR=${CMAKE_CURRENT_SOURCE_DIR} EXAMPLES_DIR=${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test-interactive.sh ) - set(PLATFORM_SUPPORT_FILES ${PLATFORM_SUPPORT_FILES} - Platform/Cygwin-GNU-Fortran.cmake - Platform/Windows-GNU-Fortran.cmake - Platform/Windows-df.cmake - Platform/Windows-f90.cmake - ) -endif(ENABLE_f77 OR ENABLE_f95) -if(LANG_SUPPORT_FILES) - foreach(LANG_SUPPORT_FILE ${LANG_SUPPORT_FILES}) - install(FILES - ${CMAKE_SOURCE_DIR}/cmake/modules/${LANG_SUPPORT_FILE} - DESTINATION ${DATA_DIR}/examples/cmake/modules - ) - endforeach(LANG_SUPPORT_FILE ${LANG_SUPPORT_FILES}) -endif(LANG_SUPPORT_FILES) + if(interactive_targets_LIST) + add_dependencies(test_interactive ${interactive_targets_LIST}) + endif(interactive_targets_LIST) -if(PLATFORM_SUPPORT_FILES) - foreach(PLATFORM_SUPPORT_FILE ${PLATFORM_SUPPORT_FILES}) - install(FILES - ${CMAKE_SOURCE_DIR}/cmake/modules/${PLATFORM_SUPPORT_FILE} - DESTINATION ${DATA_DIR}/examples/cmake/modules/Platform - ) - endforeach(PLATFORM_SUPPORT_FILE ${PLATFORM_SUPPORT_FILES}) -endif(PLATFORM_SUPPORT_FILES) + set(summary_results " +Summary of CMake build system results for the installed examples +Noninteractive device drivers: + +PLD_pdfcairo: ${PLD_pdfcairo} +PLD_pngcairo: ${PLD_pngcairo} +PLD_pscairo: ${PLD_pscairo} +PLD_svgcairo: ${PLD_svgcairo} +PLD_cgm: ${PLD_cgm} +PLD_dg300: ${PLD_dg300} +PLD_epsqt: ${PLD_epsqt} +PLD_pdfqt: ${PLD_pdfqt} +PLD_bmpqt: ${PLD_bmpqt} +PLD_jpgqt: ${PLD_jpgqt} +PLD_pngqt: ${PLD_pngqt} +PLD_ppmqt: ${PLD_ppmqt} +PLD_tiffqt: ${PLD_tiffqt} +PLD_svgqt: ${PLD_svgqt} +PLD_gif: ${PLD_gif} +PLD_jpeg: ${PLD_jpeg} +PLD_png: ${PLD_png} +PLD_hp7470: ${PLD_hp7470} +PLD_hp7580: ${PLD_hp7580} +PLD_lj_hpgl: ${PLD_lj_hpgl} +PLD_imp: ${PLD_imp} +PLD_ljii: ${PLD_ljii} +PLD_ljiip: ${PLD_ljiip} +PLD_pbm: ${PLD_pbm} +PLD_pdf: ${PLD_pdf} +PLD_ps: ${PLD_ps} +PLD_psc: ${PLD_psc} +PLD_pstex: ${PLD_pstex} +PLD_psttf: ${PLD_psttf} +PLD_psttfc: ${PLD_psttfc} +PLD_svg: ${PLD_svg} +PLD_tek4010f: ${PLD_tek4010f} +PLD_tek4107f: ${PLD_tek4107f} +PLD_wxpng: ${PLD_wxpng} +PLD_xfig: ${PLD_xfig} + +Interactive device drivers: + +PLD_xcairo: ${PLD_xcairo} +PLD_extcairo: ${PLD_extcairo} + +N.B. The above devices are all that are currently configurable by the +installed examples build system. Additional interactive device +drivers are likely supplied by the PLplot core and configured as part +of plplot-test-interactive.sh that is run by + +make test_interactive + + +but the build system for the installed examples cannot configure anything +with those device drivers so we don't bother to retreive them from the +core build system or output them here. + +Noninteractive bindings: + +ENABLE_ada: ${ENABLE_ada} +ENABLE_c: ${ENABLE_c} +ENABLE_cxx: ${ENABLE_cxx} +ENABLE_d: ${ENABLE_d} +ENABLE_f77: ${ENABLE_f77} +ENABLE_f95: ${ENABLE_f95} +ENABLE_java: ${ENABLE_java} +ENABLE_lua: ${ENABLE_lua} +ENABLE_ocaml: ${ENABLE_ocaml} +ENABLE_octave: ${ENABLE_octave} +ENABLE_pdl: ${ENABLE_pdl} +ENABLE_python: ${ENABLE_python} +ENABLE_tcl: ${ENABLE_tcl} + +Interactive bindings: + +ENABLE_tk: ${ENABLE_tk} +ENABLE_gnome2: ${ENABLE_gnome2} +ENABLE_wxwidgets: ${ENABLE_wxwidgets} +ENABLE_qt: ${ENABLE_qt} +") + + message("${summary_results}") + +endif(CORE_BUILD) Deleted: trunk/examples/CMakeLists.txt_installed_examples =================================================================== --- trunk/examples/CMakeLists.txt_installed_examples 2009-08-15 13:03:11 UTC (rev 10261) +++ trunk/examples/CMakeLists.txt_installed_examples 2009-08-15 16:29:57 UTC (rev 10262) @@ -1,294 +0,0 @@ -# -*- mode: cmake -*- -# Top-level CMakeLists.txt for installed PLplot examples -### -### Process this file with cmake to produce Makefile -### -# Copyright (C) 2009 Alan W. Irwin -# -# This file is part of PLplot. -# -# PLplot is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; version 2 of the License. -# -# PLplot 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 Library General Public License for more details. -# -# You should have received a copy of the GNU Library General Public License -# 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 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) - -#Configure variables and enable languages as needed. -include(plplot_configure) - -include(export_plplot) - -if(ENABLE_c) - add_subdirectory(c) - get_property(targets_examples_c GLOBAL PROPERTY TARGETS_examples_c) -endif(ENABLE_c) - -if(ENABLE_ada) - add_subdirectory(ada) - get_property(targets_examples_ada GLOBAL PROPERTY TARGETS_examples_ada) -endif(ENABLE_ada) - -if(ENABLE_cxx) - add_subdirectory(c++) - get_property(targets_examples_cxx GLOBAL PROPERTY TARGETS_examples_cxx) -endif(ENABLE_cxx) - -if(ENABLE_d) - add_subdirectory(d) - get_property(targets_examples_d GLOBAL PROPERTY TARGETS_examples_d) -endif(ENABLE_d) - -if(ENABLE_f77) - add_subdirectory(f77) - get_property(targets_examples_f77 GLOBAL PROPERTY TARGETS_examples_f77) -endif(ENABLE_f77) - -if(ENABLE_f95) - add_subdirectory(f95) - get_property(targets_examples_f95 GLOBAL PROPERTY TARGETS_examples_f95) -endif(ENABLE_f95) - -if(ENABLE_java) - add_subdirectory(java) - get_property(targets_examples_java GLOBAL PROPERTY TARGETS_examples_java) -endif(ENABLE_java) - -if(ENABLE_tk) - add_subdirectory(tk) - get_property(targets_examples_tk GLOBAL PROPERTY TARGETS_examples_tk) -endif(ENABLE_tk) - -if(ENABLE_ocaml) - add_subdirectory(ocaml) - get_property(targets_examples_ocaml GLOBAL PROPERTY TARGETS_examples_ocaml) -endif(ENABLE_ocaml) - -if(ENABLE_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 - ) - -if(PLD_psc) - set(output_LIST) - set(noninteractive_targets_LIST) - # language_info_LIST set in plplot_configure.cmake. Each list - # member consists of a colon-separated language name and the associated - # filename suffix used by plplot-test.sh. - foreach(language_info ${language_info_LIST}) - string(REGEX REPLACE "^(.*):.*$" "\\1" language ${language_info}) - string(REGEX REPLACE "^.*:(.*)$" "\\1" suffix ${language_info}) - - if(ENABLE_${language}) - add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x01${suffix}.psc - COMMAND ${CMAKE_COMMAND} -E echo "Generate ${language} results for psc device" - COMMAND SRC_EXAMPLES_DIR=${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh --verbose --front-end=${language} --device=psc - DEPENDS - ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh - ) - list(APPEND output_LIST ${CMAKE_CURRENT_BINARY_DIR}/x01${suffix}.psc) - if(targets_examples_${language}) - list(APPEND noninteractive_targets_LIST ${targets_examples_${language}}) - endif(targets_examples_${language}) - endif(ENABLE_${language}) - 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} - ) - set(output_LIST ${CMAKE_CURRENT_BINARY_DIR}/compare) -else(PLD_psc) - set(output_LIST) -endif(PLD_psc) - -# noninteractive_devices_info_LIST set in plplot_configure.cmake. Each list -# member consists of a colon-separated device name and a Boolean variable -# that indicates if device has familied output in plplot-test.sh. -foreach(noninteractive_devices_info ${noninteractive_devices_info_LIST}) - string(REGEX REPLACE "^(.*):.*$" "\\1" device ${noninteractive_devices_info}) - string(REGEX REPLACE "^.*:(.*)$" "\\1" familied ${noninteractive_devices_info}) - - # If familying turned on for this device in plplot-test.sh, then the OUTPUT - # files appear in the form x??c??.${device} rather than x??c.${device}. - # Put in a representative placeholder for the familying index in the - # OUTPUT name. - if(familied) - set(index 01) - else(familied) - set(index) - endif(familied) - - # ENABLE_c is always ON by construction in plplot_configure.cmake, but - # make a logical test of it in any case just to be consistent with above - # ENABLE_${language} logic where c is one of the languages. - if(PLD_${device} AND ENABLE_c) - #message("DEBUG: OUTPUT filename = x01c${index}.${device}") - add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x01c${index}.${device} - COMMAND ${CMAKE_COMMAND} -E echo "Generate C results for ${device} device" - COMMAND SRC_EXAMPLES_DIR=${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh --verbose --front-end=c --device=${device} - DEPENDS - ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh - ) - list(APPEND output_LIST ${CMAKE_CURRENT_BINARY_DIR}/x01c${index}.${device}) - endif(PLD_${device} AND ENABLE_c) -endforeach(noninteractive_devices_info ${noninteractive_devices_info_LIST}) - -add_custom_target(test_noninteractive - DEPENDS ${output_LIST} - ) -if(noninteractive_targets_LIST) - add_dependencies(test_noninteractive ${noninteractive_targets_LIST}) -endif(noninteractive_targets_LIST) - -set(interactive_targets_LIST ${targets_examples_c}) - -if(targets_examples_tk) - list(APPEND interactive_targets_LIST ${targets_examples_tk}) -endif(targets_examples_tk) - -if(TARGET plplotcanvas_demo) - list(APPEND interactive_targets_LIST plplotcanvas_demo) -endif(TARGET plplotcanvas_demo) - -if(TARGET plplotcanvas_animation) - list(APPEND interactive_targets_LIST plplotcanvas_animation) -endif(TARGET plplotcanvas_animation) - -if(TARGET extXdrawable_demo) - list(APPEND interactive_targets_LIST extXdrawable_demo) -endif(TARGET extXdrawable_demo) - -if(TARGET ext-cairo-test) - list(APPEND interactive_targets_LIST ext-cairo-test) -endif(TARGET ext-cairo-test) - -if(TARGET wxPLplotDemo) - list(APPEND interactive_targets_LIST wxPLplotDemo) -endif(TARGET wxPLplotDemo) - -if(TARGET qt_example) - list(APPEND interactive_targets_LIST qt_example) -endif(TARGET qt_example) - -add_custom_target(test_interactive - COMMAND SRC_EXAMPLES_DIR=${CMAKE_CURRENT_SOURCE_DIR} EXAMPLES_DIR=${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test-interactive.sh - ) - -if(interactive_targets_LIST) - add_dependencies(test_interactive ${interactive_targets_LIST}) -endif(interactive_targets_LIST) - -set(summary_results " -Summary of CMake build system results for the installed examples - -Noninteractive device drivers: - -PLD_pdfcairo: ${PLD_pdfcairo} -PLD_pngcairo: ${PLD_pngcairo} -PLD_pscairo: ${PLD_pscairo} -PLD_svgcairo: ${PLD_svgcairo} -PLD_cgm: ${PLD_cgm} -PLD_dg300: ${PLD_dg300} -PLD_epsqt: ${PLD_epsqt} -PLD_pdfqt: ${PLD_pdfqt} -PLD_bmpqt: ${PLD_bmpqt} -PLD_jpgqt: ${PLD_jpgqt} -PLD_pngqt: ${PLD_pngqt} -PLD_ppmqt: ${PLD_ppmqt} -PLD_tiffqt: ${PLD_tiffqt} -PLD_svgqt: ${PLD_svgqt} -PLD_gif: ${PLD_gif} -PLD_jpeg: ${PLD_jpeg} -PLD_png: ${PLD_png} -PLD_hp7470: ${PLD_hp7470} -PLD_hp7580: ${PLD_hp7580} -PLD_lj_hpgl: ${PLD_lj_hpgl} -PLD_imp: ${PLD_imp} -PLD_ljii: ${PLD_ljii} -PLD_ljiip: ${PLD_ljiip} -PLD_pbm: ${PLD_pbm} -PLD_pdf: ${PLD_pdf} -PLD_ps: ${PLD_ps} -PLD_psc: ${PLD_psc} -PLD_pstex: ${PLD_pstex} -PLD_psttf: ${PLD_psttf} -PLD_psttfc: ${PLD_psttfc} -PLD_svg: ${PLD_svg} -PLD_tek4010f: ${PLD_tek4010f} -PLD_tek4107f: ${PLD_tek4107f} -PLD_wxpng: ${PLD_wxpng} -PLD_xfig: ${PLD_xfig} - -Interactive device drivers: - -PLD_xcairo: ${PLD_xcairo} -PLD_extcairo: ${PLD_extcairo} - -N.B. The above devices are all that are currently configurable by the -installed examples build system. Additional interactive device -drivers are likely supplied by the PLplot core and configured as part -of plplot-test-interactive.sh that is run by - -make test_interactive - - -but the build system for the installed examples cannot configure anything -with those device drivers so we don't bother to retreive them from the -core build system or output them here. - -Noninteractive bindings: - -ENABLE_ada: ${ENABLE_ada} -ENABLE_c: ${ENABLE_c} -ENABLE_cxx: ${ENABLE_cxx} -ENABLE_d: ${ENABLE_d} -ENABLE_f77: ${ENABLE_f77} -ENABLE_f95: ${ENABLE_f95} -ENABLE_java: ${ENABLE_java} -ENABLE_lua: ${ENABLE_lua} -ENABLE_ocaml: ${ENABLE_ocaml} -ENABLE_octave: ${ENABLE_octave} -ENABLE_pdl: ${ENABLE_pdl} -ENABLE_python: ${ENABLE_python} -ENABLE_tcl: ${ENABLE_tcl} - -Interactive bindings: - -ENABLE_tk: ${ENABLE_tk} -ENABLE_gnome2: ${ENABLE_gnome2} -ENABLE_wxwidgets: ${ENABLE_wxwidgets} -ENABLE_qt: ${ENABLE_qt} -") - -message("${summary_results}") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2009-09-15 18:22:21
|
Revision: 10413 http://plplot.svn.sourceforge.net/plplot/?rev=10413&view=rev Author: airwin Date: 2009-09-15 18:22:02 +0000 (Tue, 15 Sep 2009) Log Message: ----------- Put 'remove_definitions("-DHAVE_CONFIG_H")' in examples directory so it applies to all examples rather than specifying it in individual examples subdirectories. Modified Paths: -------------- trunk/examples/CMakeLists.txt trunk/examples/ada/CMakeLists.txt trunk/examples/c/CMakeLists.txt trunk/examples/c++/CMakeLists.txt trunk/examples/d/CMakeLists.txt trunk/examples/f77/CMakeLists.txt trunk/examples/f95/CMakeLists.txt trunk/examples/tk/CMakeLists.txt Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2009-09-15 16:11:51 UTC (rev 10412) +++ trunk/examples/CMakeLists.txt 2009-09-15 18:22:02 UTC (rev 10413) @@ -25,6 +25,10 @@ # BUILD_TEST ON and CORE_BUILD OFF. if(CORE_BUILD) + if(BUILD_TEST) + remove_definitions("-DHAVE_CONFIG_H") + endif(BUILD_TEST) + # Sort out RPATH issues for traditional build of installed examples using # */Makefiles configured in each * subdirectory from */Makefile.examples.in. if(USE_RPATH) Modified: trunk/examples/ada/CMakeLists.txt =================================================================== --- trunk/examples/ada/CMakeLists.txt 2009-09-15 16:11:51 UTC (rev 10412) +++ trunk/examples/ada/CMakeLists.txt 2009-09-15 18:22:02 UTC (rev 10413) @@ -119,7 +119,6 @@ if(BUILD_TEST) if(CORE_BUILD) - remove_definitions("-DHAVE_CONFIG_H") include_directories( ${CMAKE_BINARY_DIR}/examples/ada ${CMAKE_BINARY_DIR}/bindings/ada Modified: trunk/examples/c/CMakeLists.txt =================================================================== --- trunk/examples/c/CMakeLists.txt 2009-09-15 16:11:51 UTC (rev 10412) +++ trunk/examples/c/CMakeLists.txt 2009-09-15 18:22:02 UTC (rev 10413) @@ -114,7 +114,6 @@ if(BUILD_TEST) if(CORE_BUILD) - remove_definitions("-DHAVE_CONFIG_H") include_directories( ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include Modified: trunk/examples/c++/CMakeLists.txt =================================================================== --- trunk/examples/c++/CMakeLists.txt 2009-09-15 16:11:51 UTC (rev 10412) +++ trunk/examples/c++/CMakeLists.txt 2009-09-15 18:22:02 UTC (rev 10413) @@ -94,7 +94,6 @@ if(BUILD_TEST) if(CORE_BUILD) - remove_definitions("-DHAVE_CONFIG_H") include_directories( ${CMAKE_SOURCE_DIR}/bindings/c++ ${CMAKE_SOURCE_DIR}/include Modified: trunk/examples/d/CMakeLists.txt =================================================================== --- trunk/examples/d/CMakeLists.txt 2009-09-15 16:11:51 UTC (rev 10412) +++ trunk/examples/d/CMakeLists.txt 2009-09-15 18:22:02 UTC (rev 10413) @@ -87,7 +87,6 @@ if(BUILD_TEST) if(CORE_BUILD) - remove_definitions("-DHAVE_CONFIG_H") include_directories( ${CMAKE_SOURCE_DIR}/bindings/d ) Modified: trunk/examples/f77/CMakeLists.txt =================================================================== --- trunk/examples/f77/CMakeLists.txt 2009-09-15 16:11:51 UTC (rev 10412) +++ trunk/examples/f77/CMakeLists.txt 2009-09-15 18:22:02 UTC (rev 10413) @@ -126,7 +126,6 @@ if(BUILD_TEST) if(CORE_BUILD) - remove_definitions("-DHAVE_CONFIG_H") include_directories( ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include Modified: trunk/examples/f95/CMakeLists.txt =================================================================== --- trunk/examples/f95/CMakeLists.txt 2009-09-15 16:11:51 UTC (rev 10412) +++ trunk/examples/f95/CMakeLists.txt 2009-09-15 18:22:02 UTC (rev 10413) @@ -107,7 +107,6 @@ if(BUILD_TEST) if(CORE_BUILD) - remove_definitions("-DHAVE_CONFIG_H") # For CMake-2.6.0 and above, the module files are created by # default during the library build in the bindings/f95 directory. Modified: trunk/examples/tk/CMakeLists.txt =================================================================== --- trunk/examples/tk/CMakeLists.txt 2009-09-15 16:11:51 UTC (rev 10412) +++ trunk/examples/tk/CMakeLists.txt 2009-09-15 18:22:02 UTC (rev 10413) @@ -159,7 +159,6 @@ if(BUILD_TEST) if(CORE_BUILD) - remove_definitions("-DHAVE_CONFIG_H") include_directories( ${TCL_INCLUDE_PATH} ${TK_INCLUDE_PATH} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2009-09-20 00:53:38
|
Revision: 10435 http://plplot.svn.sourceforge.net/plplot/?rev=10435&view=rev Author: airwin Date: 2009-09-20 00:22:43 +0000 (Sun, 20 Sep 2009) Log Message: ----------- Implement most of a common testing framework for the build-tree examples and the install-tree examples with full dependency tracking. The current status is the following targets work: ... test_ada_psc ... test_all_diff_psc ... test_c_psc ... test_cxx_psc ... test_d_psc ... test_f77_psc ... test_f95_psc ... test_java_psc ... test_lua_psc ... test_ocaml_psc ... test_octave_psc ... test_pdl_psc ... test_python_psc ... test_some_diff_psc ... test_tcl_psc test_all_diff_psc is an especially useful target for getting a summary report (with all dependencies automatically satisfied) of how stdout and PostScript results for our complete set of standard examples for all non-C languages we have implemented compares with the corresponding C results. This common testing framework is currently incomplete because there are still known issues to be solved for the test_noninteractive and test_interactive targets that are to be used for more comprehensive testing than test_all_diff_psc. Modified Paths: -------------- trunk/examples/CMakeLists.txt trunk/examples/plplot_configure.cmake_installed_examples.in Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2009-09-20 00:10:51 UTC (rev 10434) +++ trunk/examples/CMakeLists.txt 2009-09-20 00:22:43 UTC (rev 10435) @@ -25,118 +25,8 @@ # BUILD_TEST ON and CORE_BUILD OFF. if(CORE_BUILD) - if(BUILD_TEST) - remove_definitions("-DHAVE_CONFIG_H") - endif(BUILD_TEST) - - # Sort out RPATH issues for traditional build of installed examples using - # */Makefiles configured in each * subdirectory from */Makefile.examples.in. - if(USE_RPATH) - get_target_property(_LIB_INSTALL_RPATH plplot${LIB_TAG} INSTALL_RPATH) - string(REGEX REPLACE ";" ":" LIB_INSTALL_RPATH "${_LIB_INSTALL_RPATH}") - set(RPATHCMD "-Wl,-rpath -Wl,${LIB_INSTALL_RPATH}") - if(PLD_extqt) - if(ENABLE_DYNDRIVERS) - get_target_property(_qt_INSTALL_RPATH qt INSTALL_RPATH) - string(REGEX REPLACE ";" ":" qt_INSTALL_RPATH "${_qt_INSTALL_RPATH}") - set(qt_RPATHCMD "-Wl,-rpath -Wl,${qt_INSTALL_RPATH}:${DRV_DIR}") - else(ENABLE_DYNDRIVERS) - set(qt_RPATHCMD ${RPATHCMD}) - endif(ENABLE_DYNDRIVERS) - endif(PLD_extqt) - endif(USE_RPATH) - - # Install lena.pgm in installed examples directory so that all implementations - # of example 20 in the various examples subdirectories can conveniently - # access this file. - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm - DESTINATION ${DATA_DIR}/examples - ) - - # Do the same as above for the build tree for those who want to individually - # run the various example 20 implementations from the examples subdirectories - # of the build tree. - - if(BUILD_TEST) - add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm - ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm - ) - add_custom_target(examples_lena_file ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm - ) - endif(BUILD_TEST) - - # Compiled example directories first. - add_subdirectory(c) - get_property(targets_examples_c GLOBAL PROPERTY TARGETS_examples_c) - - if(ENABLE_ada) - add_subdirectory(ada) - get_property(targets_examples_ada GLOBAL PROPERTY TARGETS_examples_ada) - endif(ENABLE_ada) - - if(ENABLE_cxx) - add_subdirectory(c++) - get_property(targets_examples_cxx GLOBAL PROPERTY TARGETS_examples_cxx) - endif(ENABLE_cxx) - - if(ENABLE_d) - add_subdirectory(d) - get_property(targets_examples_d GLOBAL PROPERTY TARGETS_examples_d) - endif(ENABLE_d) - - if(ENABLE_f77) - add_subdirectory(f77) - get_property(targets_examples_f77 GLOBAL PROPERTY TARGETS_examples_f77) - endif(ENABLE_f77) - - if(ENABLE_f95) - add_subdirectory(f95) - get_property(targets_examples_f95 GLOBAL PROPERTY TARGETS_examples_f95) - endif(ENABLE_f95) - - if(ENABLE_java) - add_subdirectory(java) - get_property(targets_examples_java GLOBAL PROPERTY TARGETS_examples_java) - endif(ENABLE_java) - - if(ENABLE_ocaml) - add_subdirectory(ocaml) - get_property(targets_examples_ocaml GLOBAL PROPERTY TARGETS_examples_ocaml) - endif(ENABLE_ocaml) - - if(ENABLE_tk) - add_subdirectory(tk) - get_property(targets_examples_tk GLOBAL PROPERTY TARGETS_examples_tk) - endif(ENABLE_tk) - - # Non-compiled example directories next. - if(ENABLE_lua) - add_subdirectory(lua) - endif(ENABLE_lua) - - if(ENABLE_pdl) - add_subdirectory(perl) - endif(ENABLE_pdl) - - if(ENABLE_python) - add_subdirectory(python) - endif(ENABLE_python) - - if(ENABLE_octave) - add_subdirectory(octave) - endif(ENABLE_octave) - - if(ENABLE_tcl) - add_subdirectory(tcl) - endif(ENABLE_tcl) - - # Configure Makefile.examples with some specific variables - + # Configure Makefile.examples with some specific variables for the + # traditional Makefile + pkg-config installed examples build. if(PLD_ps) if(NOT ENABLE_ada) set(PSC_ADA_COMMENT "#") @@ -300,12 +190,77 @@ RENAME Makefile ) + # Sort out RPATH issues for traditional build of installed examples using + # */Makefiles configured in each * subdirectory from */Makefile.examples.in. + if(USE_RPATH) + get_target_property(_LIB_INSTALL_RPATH plplot${LIB_TAG} INSTALL_RPATH) + string(REGEX REPLACE ";" ":" LIB_INSTALL_RPATH "${_LIB_INSTALL_RPATH}") + set(RPATHCMD "-Wl,-rpath -Wl,${LIB_INSTALL_RPATH}") + if(PLD_extqt) + if(ENABLE_DYNDRIVERS) + get_target_property(_qt_INSTALL_RPATH qt INSTALL_RPATH) + string(REGEX REPLACE ";" ":" qt_INSTALL_RPATH "${_qt_INSTALL_RPATH}") + set(qt_RPATHCMD "-Wl,-rpath -Wl,${qt_INSTALL_RPATH}:${DRV_DIR}") + else(ENABLE_DYNDRIVERS) + set(qt_RPATHCMD ${RPATHCMD}) + endif(ENABLE_DYNDRIVERS) + endif(PLD_extqt) + endif(USE_RPATH) + + # Install lena.pgm in installed examples directory so that all implementations + # of example 20 in the various examples subdirectories can conveniently + # access this file. + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm + DESTINATION ${DATA_DIR}/examples + ) + +endif(CORE_BUILD) + +if(CORE_BUILD) + # These variables (normally not set or needed for a core build) + # are needed below for the tests of the languages and devices. + # For the installed examples tree case (where CORE_BUILD is not defined), + # these variables are set in the configured file + # (whose template is plplot_configure.cmake_installed_examples.in) that + # is installed as examples/cmake/module/plplot_configure.cmake. + set(ENABLE_c ON) + if(BUILD_TEST) + set(PLD_psc ${PLD_ps}) + set(PLD_psttfc ${PLD_psttf}) + endif(BUILD_TEST) + # Start configuration/installation of CMake-based build system for # installed examples. install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt DESTINATION ${DATA_DIR}/examples ) + # language_info_LIST contains information about the languages used in + # the noninteractive tests. The first field is language (which must be + # consistent with the list of languages configured by set commands in + # examples/plplot_configure.cmake_installed_examples.in). The second + # field is the subdirectory corresponding to the language. The third + # field is the file suffix on plplot-test.sh results for that language. + # N.B. this list is configured in plplot_configure.cmake below and + # is therefore available both for the core build of the tests and + # the installed-examples build of the tests below. + + set(language_info_LIST + ada:ada:a + c:c:c + cxx:c++:cxx + d:d:d + f77:f77:f + f95:f95:f95 + java:java:j + lua:lua:lua + ocaml:ocaml:ocaml + octave:octave:o + pdl:perl:pdl + python:python:p + tcl:tcl:t + ) + configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/plplot_configure.cmake_installed_examples.in ${CMAKE_CURRENT_BINARY_DIR}/plplot_configure.cmake_installed_examples @@ -400,64 +355,31 @@ include(export_plplot) - if(ENABLE_c) - add_subdirectory(c) - get_property(targets_examples_c GLOBAL PROPERTY TARGETS_examples_c) - endif(ENABLE_c) +endif(CORE_BUILD) - if(ENABLE_ada) - add_subdirectory(ada) - get_property(targets_examples_ada GLOBAL PROPERTY TARGETS_examples_ada) - endif(ENABLE_ada) +if(CORE_BUILD AND BUILD_TEST) + remove_definitions("-DHAVE_CONFIG_H") +endif(CORE_BUILD AND BUILD_TEST) - if(ENABLE_cxx) - add_subdirectory(c++) - get_property(targets_examples_cxx GLOBAL PROPERTY TARGETS_examples_cxx) - endif(ENABLE_cxx) +# language_info_LIST excludes the tk subdirectly since noninteractive +# tests and file results do not involve tk. However, the tk +# subdirectory does have to be processed just like the rest +# so add it to this loop. +foreach(language_info ${language_info_LIST} "tk:tk:nothing") + string(REGEX REPLACE "^(.*):.*:.*$" "\\1" language ${language_info}) + string(REGEX REPLACE "^.*:(.*):.*$" "\\1" subdir ${language_info}) + #message(STATUS "DEBUG: language, subdir = ${language},${subdir}") + if(ENABLE_${language}) + add_subdirectory(${subdir}) + get_property(targets_examples_${language} GLOBAL PROPERTY TARGETS_examples_${language}) + get_property(files_examples_${language} GLOBAL PROPERTY FILES_examples_${language}) + endif(ENABLE_${language}) +endforeach(language_info ${language_info_LIST} "tk:tk:nothing") - if(ENABLE_d) - add_subdirectory(d) - get_property(targets_examples_d GLOBAL PROPERTY TARGETS_examples_d) - endif(ENABLE_d) - - if(ENABLE_f77) - add_subdirectory(f77) - get_property(targets_examples_f77 GLOBAL PROPERTY TARGETS_examples_f77) - endif(ENABLE_f77) - - if(ENABLE_f95) - add_subdirectory(f95) - get_property(targets_examples_f95 GLOBAL PROPERTY TARGETS_examples_f95) - endif(ENABLE_f95) - - if(ENABLE_java) - add_subdirectory(java) - get_property(targets_examples_java GLOBAL PROPERTY TARGETS_examples_java) - endif(ENABLE_java) - - if(ENABLE_ocaml) - add_subdirectory(ocaml) - get_property(targets_examples_ocaml GLOBAL PROPERTY TARGETS_examples_ocaml) - endif(ENABLE_ocaml) - - if(ENABLE_tk) - add_subdirectory(tk) - get_property(targets_examples_tk GLOBAL PROPERTY TARGETS_examples_tk) - endif(ENABLE_tk) - - if(ENABLE_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) - +if(BUILD_TEST) + # lena.pgm needed in build tree for the examples that are run from there. + # Done at cmake time without dependencies because cannot see how this + # file will ever change on short time scales. execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm @@ -465,41 +387,104 @@ ) if(PLD_psc) - set(output_LIST) - set(noninteractive_targets_LIST) - # language_info_LIST set in plplot_configure.cmake. Each list - # member consists of a colon-separated language name and the associated - # filename suffix used by plplot-test.sh. + if(CORE_BUILD) + set(custom_test_command ${CMAKE_BINARY_DIR}/plplot_test/plplot-test.sh) + set(custom_env EXAMPLES_DIR=${CMAKE_BINARY_DIR}/examples SRC_EXAMPLES_DIR=${CMAKE_SOURCE_DIR}/examples) + set(java_custom_env ${custom_env} PLPLOT_JAVA_WRAP_DIR=${CMAKE_BINARY_DIR}/bindings/java/ PLPLOT_CLASSPATH=${CMAKE_BINARY_DIR}/examples/java/plplot.jar) + set(compare_command ${CMAKE_BINARY_DIR}/plplot_test/test_diff.sh) + else(CORE_BUILD) + set(custom_test_command ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh) + set(custom_env SRC_EXAMPLES_DIR=${CMAKE_CURRENT_SOURCE_DIR}) + set(java_custom_env ${custom_env}) + set(compare_command ${CMAKE_CURRENT_SOURCE_DIR}/test_diff.sh) + endif(CORE_BUILD) + + set(compare_file_depends ${custom_test_command}) + if(ENABLE_DYNDRIVERS) + list(APPEND compare_file_depends ps) + endif(ENABLE_DYNDRIVERS) + + set(diff_targets_LIST) + set(diff_files_LIST) + # language_info_LIST set above. Each list member consists of a + # colon-separated language name, subdirectory name, + # and the associated filename suffix used by plplot-test.sh. foreach(language_info ${language_info_LIST}) - string(REGEX REPLACE "^(.*):.*$" "\\1" language ${language_info}) - string(REGEX REPLACE "^.*:(.*)$" "\\1" suffix ${language_info}) + string(REGEX REPLACE "^(.*):.*:.*$" "\\1" language ${language_info}) + string(REGEX REPLACE "^.*:.*:(.*)$" "\\1" suffix ${language_info}) if(ENABLE_${language}) + set(compare_file_depends_${language} ${compare_file_depends}) + #message(STATUS "DEBUG: files_examples_${language} = ${file_examples_${language}}") + #message(STATUS "DEBUG: targets_examples_${language} = ${targets_examples_${language}}") + if(files_examples_${language}) + # files_examples_${language} is true if the + # subdirectory created targets with add_custom_target which + # depended on an add_custom_command. For this special case, + # you cannot use the created targets for file dependencies + # because of CMake implementation constraints. Instead you + # must use _files_ (contained in files_examples_${language} + # for file dependencies. + # Another case covered here is when the subdirectory + # contains non-generated files In this case also you must + # (of course) use _files_ for file dependencies. + list(APPEND compare_file_depends_${language} ${files_examples_${language}}) + else(files_examples_${language}) + # files_examples_${language} is only false if the + # subdirectory creates targets with add_executable. For + # this special case, CMake allows use of the created targets + # for file dependencies. + if(targets_examples_${language}) + list(APPEND compare_file_depends_${language} ${targets_examples_${language}}) + endif(targets_examples_${language}) + endif(files_examples_${language}) + #message(STATUS "DEBUG: compare_file_depends_${language} = ${compare_file_depends_${language}}") + + if(language STREQUAL "java") + set(environment ${java_custom_env}) + else(language STREQUAL "java") + set(environment ${custom_env}) + endif(language STREQUAL "java") + add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x01${suffix}.psc COMMAND ${CMAKE_COMMAND} -E echo "Generate ${language} results for psc device" - COMMAND SRC_EXAMPLES_DIR=${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh --verbose --front-end=${language} --device=psc - DEPENDS - ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test.sh + COMMAND ${environment} ${custom_test_command} --verbose --front-end=${language} --device=psc + DEPENDS ${compare_file_depends_${language}} ) - list(APPEND output_LIST ${CMAKE_CURRENT_BINARY_DIR}/x01${suffix}.psc) - if(targets_examples_${language}) - list(APPEND noninteractive_targets_LIST ${targets_examples_${language}}) - endif(targets_examples_${language}) + add_custom_target(test_${language}_psc + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/x01${suffix}.psc + ) + list(APPEND diff_targets_LIST test_${language}_psc) + list(APPEND diff_files_LIST ${CMAKE_CURRENT_BINARY_DIR}/x01${suffix}.psc) + + # If the subdirectory used an add_custom_target (as indicated + # by both files_examples_${language} and targets_examples_${language} + # being true), then for that special case must add a target-level + # dependency as demanded by the CMake implementation. + if(files_examples_${language} AND targets_examples_${language}) + #message(STATUS "DEBUG: targets_examples_${language} = ${targets_examples_${language}}") + add_dependencies(test_${language}_psc ${targets_examples_${language}}) + endif(files_examples_${language} AND targets_examples_${language}) endif(ENABLE_${language}) 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} + # Note no target or file dependencies for test_some_diff_psc since + # we want to execute this target like it is done in ctest, i.e., + # whenever we like for whatever test_${language}_psc targets we + # have run first. + add_custom_target(test_some_diff_psc COMMAND ${compare_command}) + + # Note this target does have complete file and target dependencies to + # force a complete comparison of stdout and PostScript results. + add_custom_target(test_all_diff_psc COMMAND ${compare_command} + DEPENDS ${diff_files_LIST} ) - set(output_LIST ${CMAKE_CURRENT_BINARY_DIR}/compare) - else(PLD_psc) - set(output_LIST) + add_dependencies(test_all_diff_psc ${diff_targets_LIST}) + endif(PLD_psc) + set(output_LIST) # noninteractive_devices_info_LIST set in plplot_configure.cmake. Each list # member consists of a colon-separated device name and a Boolean variable # that indicates if device has familied output in plplot-test.sh. @@ -578,6 +563,9 @@ add_dependencies(test_interactive ${interactive_targets_LIST}) endif(interactive_targets_LIST) +endif(BUILD_TEST) + +if(NOT CORE_BUILD) set(summary_results " Summary of CMake build system results for the installed examples @@ -662,4 +650,4 @@ message("${summary_results}") -endif(CORE_BUILD) +endif(NOT CORE_BUILD) Modified: trunk/examples/plplot_configure.cmake_installed_examples.in =================================================================== --- trunk/examples/plplot_configure.cmake_installed_examples.in 2009-09-20 00:10:51 UTC (rev 10434) +++ trunk/examples/plplot_configure.cmake_installed_examples.in 2009-09-20 00:22:43 UTC (rev 10435) @@ -17,32 +17,14 @@ set(INCLUDE_DIR @INCLUDE_DIR@) set(MATH_LIB @MATH_LIB@) -# language_info_LIST contains information about the languages used -# in the noninteractive tests. -# First field is language (which must be consistent with following -# configured set commands). -# Second field is suffix on plplot-test.sh results for that language. +set(language_info_LIST @language_info_LIST@) -set(language_info_LIST - ada:a - c:c - cxx:cxx - d:d - f77:f - f95:f95 - java:j - lua:lua - ocaml:ocaml - octave:o - pdl:pdl - python:p - tcl:t - ) - -# This list of set commands must be consistent with the above list which -# potentially is a maintenance issue. However, cannot make this list -# automatically with a foreach loop because explicit configuration of -# each name is required. +# This list of set commands must be consistent with language_info_LIST +# set in examples/CMakeLists.txt and configured just above. Thus, +# some consistent maintenance of that list and the current list of set +# commands must be done on the rare occasions when a language is added +# to PLplot. Cannot make the list of set commands automatically with +# a foreach loop because explicit configuration of each name is required. set(CORE_ENABLE_ada @ENABLE_ada@) # N.B. The core never sets ENABLE_c since C is always on for the core. set(CORE_ENABLE_c ON) @@ -79,7 +61,7 @@ # Add interactive bindings to list for option processing foreach(language_info tk:? gnome2:? wxwidgets:? qt:? ${language_info_LIST}) - string(REGEX REPLACE "^(.*):.*$" "\\1" language ${language_info}) + string(REGEX REPLACE "^(.*):.*:.*$" "\\1" language ${language_info}) #message("DEBUG: language = ${language}") if(language STREQUAL "c") #special case where the build system requires C. @@ -268,6 +250,7 @@ set(CORE_QT_VERSION_PATCH @QT_VERSION_PATCH@) endif(ENABLE_qt) +set(ENABLE_DYNDRIVERS @ENABLE_DYNDRIVERS@) # List of all devices that will be used for noninteractive device tests. # Exclude some devices (linuxvga, conex?) in plplot-test.sh # where it is likely they are interactive. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2009-09-30 17:00:56
|
Revision: 10495 http://plplot.svn.sourceforge.net/plplot/?rev=10495&view=rev Author: airwin Date: 2009-09-30 17:00:35 +0000 (Wed, 30 Sep 2009) Log Message: ----------- if(TARGET ...) signature is not implemented for CMake-2.6.0 so replace by equivalent but more complicated logic using GLOBAL properties. Note, we will probably want to move back to the if(TARGET ...) approach once we bump our minimum version from 2.6.0 to 2.6.4. Modified Paths: -------------- trunk/examples/CMakeLists.txt trunk/examples/c/CMakeLists.txt trunk/examples/c++/CMakeLists.txt Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2009-09-29 23:01:18 UTC (rev 10494) +++ trunk/examples/CMakeLists.txt 2009-09-30 17:00:35 UTC (rev 10495) @@ -491,6 +491,7 @@ # noninteractive_devices_info_LIST set in plplot_configure.cmake. Each list # member consists of a colon-separated device name and a Boolean variable # that indicates if device has familied output in plplot-test.sh. + foreach(noninteractive_devices_info ${noninteractive_devices_info_LIST}) string(REGEX REPLACE "^(.*):.*$" "\\1" device ${noninteractive_devices_info}) string(REGEX REPLACE "^.*:(.*)$" "\\1" familied ${noninteractive_devices_info}) @@ -534,29 +535,35 @@ list(APPEND interactive_targets_LIST ${targets_examples_tk}) endif(targets_examples_tk) - if(TARGET plplotcanvas_demo) - list(APPEND interactive_targets_LIST plplotcanvas_demo) - endif(TARGET plplotcanvas_demo) + get_property(target_plplotcanvas_demo GLOBAL PROPERTY TARGET_plplotcanvas_demo) + if(target_plplotcanvas_demo) + list(APPEND interactive_targets_LIST ${target_plplotcanvas_demo}) + endif(target_plplotcanvas_demo) - if(TARGET plplotcanvas_animation) - list(APPEND interactive_targets_LIST plplotcanvas_animation) - endif(TARGET plplotcanvas_animation) + get_property(target_plplotcanvas_animation GLOBAL PROPERTY TARGET_plplotcanvas_animation) + if(target_plplotcanvas_animation) + list(APPEND interactive_targets_LIST ${target_plplotcanvas_animation}) + endif(target_plplotcanvas_animation) - if(TARGET extXdrawable_demo) - list(APPEND interactive_targets_LIST extXdrawable_demo) - endif(TARGET extXdrawable_demo) + get_property(target_extXdrawable_demo GLOBAL PROPERTY TARGET_extXdrawable_demo) + if(target_extXdrawable_demo) + list(APPEND interactive_targets_LIST ${target_extXdrawable_demo}) + endif(target_extXdrawable_demo) - if(TARGET ext-cairo-test) - list(APPEND interactive_targets_LIST ext-cairo-test) - endif(TARGET ext-cairo-test) + get_property(target_ext-cairo-test GLOBAL PROPERTY TARGET_ext-cairo-test) + if(target_ext-cairo-test) + list(APPEND interactive_targets_LIST ${target_ext-cairo-test}) + endif(target_ext-cairo-test) - if(TARGET wxPLplotDemo) - list(APPEND interactive_targets_LIST wxPLplotDemo) - endif(TARGET wxPLplotDemo) + get_property(target_wxPLplotDemo GLOBAL PROPERTY TARGET_wxPLplotDemo) + if(target_wxPLplotDemo) + list(APPEND interactive_targets_LIST ${target_wxPLplotDemo}) + endif(target_wxPLplotDemo) - if(TARGET qt_example) - list(APPEND interactive_targets_LIST qt_example) - endif(TARGET qt_example) + get_property(target_qt_example GLOBAL PROPERTY TARGET_qt_example) + if(target_qt_example) + list(APPEND interactive_targets_LIST ${target_qt_example}) + endif(target_qt_example) add_custom_target(test_interactive COMMAND SRC_EXAMPLES_DIR=${CMAKE_CURRENT_SOURCE_DIR} EXAMPLES_DIR=${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/plplot-test-interactive.sh Modified: trunk/examples/c/CMakeLists.txt =================================================================== --- trunk/examples/c/CMakeLists.txt 2009-09-29 23:01:18 UTC (rev 10494) +++ trunk/examples/c/CMakeLists.txt 2009-09-30 17:00:35 UTC (rev 10495) @@ -156,6 +156,7 @@ ) add_executable(plplotcanvas_demo plplotcanvas_demo.c) target_link_libraries(plplotcanvas_demo ${GNOMEPRINTUI_LINK_FLAGS} plplotgnome2${LIB_TAG}) + set_property(GLOBAL PROPERTY TARGET_plplotcanvas_demo plplotcanvas_demo) # plplotcanvas_animation.c contains a reference to gthread_init and also # contains '#include <glib.h>'. Analysis shows both these issues are @@ -171,6 +172,7 @@ ) add_executable(plplotcanvas_animation plplotcanvas_animation.c) target_link_libraries(plplotcanvas_animation ${GNOMEPRINTUI_LINK_FLAGS} ${GTHREAD_2.0_LINK_FLAGS} plplotgnome2${LIB_TAG} ${MATH_LIB}) + set_property(GLOBAL PROPERTY TARGET_plplotcanvas_animation plplotcanvas_animation) else(linkflags2) message(STATUS "WARNING: gthread-2.0 not found. plplotcanvas_animation not built") endif(linkflags2) @@ -191,6 +193,7 @@ ) add_executable(extXdrawable_demo extXdrawable_demo.c) target_link_libraries(extXdrawable_demo ${GTK_X11_LINK_FLAGS} plplot${LIB_TAG}) + set_property(GLOBAL PROPERTY TARGET_extXdrawable_demo extXdrawable_demo) else(linkflags3) message(STATUS "WARNING: gtk+-x11-2.0 not found. extXdrawable_demo not built.") endif(linkflags3) @@ -208,6 +211,7 @@ ) add_executable(ext-cairo-test ext-cairo-test.c) target_link_libraries(ext-cairo-test ${CAIRO_LINK_FLAGS} plplot${LIB_TAG}) + set_property(GLOBAL PROPERTY TARGET_ext-cairo-test ext-cairo-test) else(linkflags4) message(STATUS "WARNING: cairo not found. ext-cairo-test not built.") endif(linkflags4) Modified: trunk/examples/c++/CMakeLists.txt =================================================================== --- trunk/examples/c++/CMakeLists.txt 2009-09-29 23:01:18 UTC (rev 10494) +++ trunk/examples/c++/CMakeLists.txt 2009-09-30 17:00:35 UTC (rev 10495) @@ -138,6 +138,7 @@ endif(CORE_BUILD) add_executable(wxPLplotDemo WIN32 wxPLplotDemo.cpp) target_link_libraries(wxPLplotDemo plplotwxwidgets${LIB_TAG} plplotcxx${LIB_TAG} ${MATH_LIB}) + set_property(GLOBAL PROPERTY TARGET_wxPLplotDemo wxPLplotDemo) endif(ENABLE_wxwidgets) if(ENABLE_qt) @@ -183,6 +184,7 @@ ) add_executable(qt_example qt_example.cpp qt_PlotWindow.cpp ${QT_MOC_OUTFILES}) target_link_libraries(qt_example ${QT_LIBRARIES} plplotqt${LIB_TAG} plplot${LIB_TAG}) + set_property(GLOBAL PROPERTY TARGET_qt_example qt_example) endif(BUILD_qt_example) endif(ENABLE_qt) endif(BUILD_TEST) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2009-11-19 12:05:17
|
Revision: 10613 http://plplot.svn.sourceforge.net/plplot/?rev=10613&view=rev Author: andrewross Date: 2009-11-19 12:05:09 +0000 (Thu, 19 Nov 2009) Log Message: ----------- Fix comment in example 3 - call to plsori makes the plot portrait and not landscape. Modified Paths: -------------- trunk/examples/ada/x03a.adb.cmake trunk/examples/c/x03c.c trunk/examples/c++/x03.cc trunk/examples/d/x03d.d trunk/examples/f77/x03f.fm4 trunk/examples/f95/x03f.f90 trunk/examples/java/x03.java trunk/examples/lua/x03.lua trunk/examples/ocaml/x03.ml trunk/examples/octave/x03c.m trunk/examples/perl/x03.pl trunk/examples/python/x03 Modified: trunk/examples/ada/x03a.adb.cmake =================================================================== --- trunk/examples/ada/x03a.adb.cmake 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/ada/x03a.adb.cmake 2009-11-19 12:05:09 UTC (rev 10613) @@ -53,7 +53,7 @@ -- Parse and process command line arguments. plparseopts(PL_PARSE_FULL); - -- Set orientation to landscape. Note not all device drivers + -- Set orientation to portrait. Note not all device drivers -- support this, in particular most interactive drivers do not. plsori(Portrait); Modified: trunk/examples/c/x03c.c =================================================================== --- trunk/examples/c/x03c.c 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/c/x03c.c 2009-11-19 12:05:09 UTC (rev 10613) @@ -31,7 +31,7 @@ (void) plparseopts( &argc, argv, PL_PARSE_FULL ); -/* Set orientation to landscape - note not all device drivers +/* Set orientation to portrait - note not all device drivers * support this, in particular most interactive drivers do not */ plsori( 1 ); Modified: trunk/examples/c++/x03.cc =================================================================== --- trunk/examples/c++/x03.cc 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/c++/x03.cc 2009-11-19 12:05:09 UTC (rev 10613) @@ -68,7 +68,7 @@ // Parse and process command line arguments. pls->parseopts( &argc, argv, PL_PARSE_FULL ); - // Set orientation to landscape - note not all device drivers + // Set orientation to portrait - note not all device drivers // support this, in particular most interactive drivers do not. pls->sori( 1 ); Modified: trunk/examples/d/x03d.d =================================================================== --- trunk/examples/d/x03d.d 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/d/x03d.d 2009-11-19 12:05:09 UTC (rev 10613) @@ -26,7 +26,7 @@ /* Parse and process command line arguments */ plparseopts(args, PL_PARSE_FULL); - /* Set orientation to landscape - note not all device drivers + /* Set orientation to portrait - note not all device drivers * support this, in particular most interactive drivers do not */ plsori(1); Modified: trunk/examples/f77/x03f.fm4 =================================================================== --- trunk/examples/f77/x03f.fm4 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/f77/x03f.fm4 2009-11-19 12:05:09 UTC (rev 10613) @@ -32,7 +32,7 @@ c Process command-line arguments call plparseopts(PL_PARSE_FULL) -c Set orientation to landscape - note not all device drivers +c Set orientation to portrait - note not all device drivers c support this, in particular most interactive drivers do not. call plsori(1) Modified: trunk/examples/f95/x03f.f90 =================================================================== --- trunk/examples/f95/x03f.f90 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/f95/x03f.f90 2009-11-19 12:05:09 UTC (rev 10613) @@ -29,7 +29,7 @@ ! Process command-line arguments call plparseopts(PL_PARSE_FULL) -! Set orientation to landscape - note not all device drivers +! Set orientation to portrait - note not all device drivers ! support this, in particular most interactive drivers do not. call plsori(1) Modified: trunk/examples/java/x03.java =================================================================== --- trunk/examples/java/x03.java 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/java/x03.java 2009-11-19 12:05:09 UTC (rev 10613) @@ -65,7 +65,7 @@ pls.parseopts( args, PLStream.PL_PARSE_FULL | PLStream.PL_PARSE_NOPROGRAM ); - // Set orientation to landscape - note not all device drivers + // Set orientation to portrait - note not all device drivers // support this, in particular most interactive drivers do not. pls.sori(1); Modified: trunk/examples/lua/x03.lua =================================================================== --- trunk/examples/lua/x03.lua 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/lua/x03.lua 2009-11-19 12:05:09 UTC (rev 10613) @@ -45,7 +45,7 @@ pl.parseopts(arg, pl.PL_PARSE_FULL) --- Set orientation to landscape - note not all device drivers +-- Set orientation to portrait - note not all device drivers -- support this, in particular most interactive drivers do not pl.sori(1) Modified: trunk/examples/ocaml/x03.ml =================================================================== --- trunk/examples/ocaml/x03.ml 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/ocaml/x03.ml 2009-11-19 12:05:09 UTC (rev 10613) @@ -38,7 +38,7 @@ (* Parse and process command line arguments *) plparseopts Sys.argv [PL_PARSE_FULL]; - (* Set orientation to landscape - note not all device drivers + (* Set orientation to portrait - note not all device drivers * support this, in particular most interactive drivers do not *) plsori 1; Modified: trunk/examples/octave/x03c.m =================================================================== --- trunk/examples/octave/x03c.m 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/octave/x03c.m 2009-11-19 12:05:09 UTC (rev 10613) @@ -27,7 +27,7 @@ plsdev("xwin"); endif - ## Set orientation to landscape - note not all device drivers + ## Set orientation to portrait - note not all device drivers ## support this, in particular most interactive drivers do not */ plsori(1); Modified: trunk/examples/perl/x03.pl =================================================================== --- trunk/examples/perl/x03.pl 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/perl/x03.pl 2009-11-19 12:05:09 UTC (rev 10613) @@ -37,7 +37,7 @@ plParseOpts (\@ARGV, PL_PARSE_SKIP | PL_PARSE_NOPROGRAM); -# Set orientation to landscape - note not all device drivers +# Set orientation to portrait - note not all device drivers # support this, in particular most interactive drivers do not plsori(1); Modified: trunk/examples/python/x03 =================================================================== --- trunk/examples/python/x03 2009-11-19 08:13:30 UTC (rev 10612) +++ trunk/examples/python/x03 2009-11-19 12:05:09 UTC (rev 10613) @@ -30,7 +30,7 @@ # Parse and process command line arguments plparseopts(sys.argv, PL_PARSE_FULL) -# Set orientation to landscape - note not all device drivers +# Set orientation to portrait - note not all device drivers # support this, in particular most interactive drivers do not plsori(1) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2009-11-20 19:17:41
|
Revision: 10618 http://plplot.svn.sourceforge.net/plplot/?rev=10618&view=rev Author: airwin Date: 2009-11-20 19:17:35 +0000 (Fri, 20 Nov 2009) Log Message: ----------- Get rid of trailing semicolons on fortran statements. I guess all the compilers we have tested accepted these, but traditional Fortran compilers did not accept them. Furthermore, most of our example Fortran statements don't have trailing semicolons so it is worth removing them simply for consistent style. Modified Paths: -------------- trunk/examples/f77/x21f.fm4 trunk/examples/f77/x22f.fm4 trunk/examples/f77/x24f.fm4 trunk/examples/f77/x29f.fm4 trunk/examples/f77/x30f.fm4 trunk/examples/f95/x21f.f90 trunk/examples/f95/x22f.f90 trunk/examples/f95/x24f.f90 trunk/examples/f95/x29f.f90 trunk/examples/f95/x30f.f90 Modified: trunk/examples/f77/x21f.fm4 =================================================================== --- trunk/examples/f77/x21f.fm4 2009-11-20 00:29:03 UTC (rev 10617) +++ trunk/examples/f77/x21f.fm4 2009-11-20 19:17:35 UTC (rev 10618) @@ -69,7 +69,7 @@ real*8 xg(xp), yg(yp), zg(xp,yp) real*8 zmin, zmax, lzmin, lzmax integer i, j, k - integer alg; + integer alg character*80 title(6) data title /'Cubic Spline Approximation', & 'Delaunay Linear Interpolation', @@ -95,11 +95,11 @@ ymax = 0.6d0 c call plMergeOpts(options, "x21c options", NULL); - call plparseopts(PL_PARSE_FULL); + call plparseopts(PL_PARSE_FULL) - opt(3) = wmin; - opt(4) = dble(knn_order); - opt(5) = threshold; + opt(3) = wmin + opt(4) = dble(knn_order) + opt(5) = threshold c Initialize plplot @@ -150,7 +150,7 @@ call plssub(3,2) do k=1,2 - call pladv(0); + call pladv(0) do alg=1,6 call plgriddata(x, y, z, pts, xg, xp, yg, yp, zg, alg, @@ -219,7 +219,7 @@ if (k.eq.1) then do i=1,nl - clev(i) = lzmin + (lzmax-lzmin)/(nl-1.d0)*(i-1.d0); + clev(i) = lzmin + (lzmax-lzmin)/(nl-1.d0)*(i-1.d0) enddo call plenv0(xmin, xmax, ymin, ymax, 2, 0) call plcol0(15) @@ -230,7 +230,7 @@ else do i = 1,nl - clev(i) = lzmin + (lzmax-lzmin)/(nl-1.d0)*(i-1.d0); + clev(i) = lzmin + (lzmax-lzmin)/(nl-1.d0)*(i-1.d0) enddo call cmap1_init() call plvpor(0.d0, 1.d0, 0.d0, 0.9d0) Modified: trunk/examples/f77/x22f.fm4 =================================================================== --- trunk/examples/f77/x22f.fm4 2009-11-20 00:29:03 UTC (rev 10617) +++ trunk/examples/f77/x22f.fm4 2009-11-20 19:17:35 UTC (rev 10618) @@ -179,17 +179,17 @@ eps = 2.0d0 - q1 = 1.0d0; - d1 = rmax/4.0d0; + q1 = 1.0d0 + d1 = rmax/4.0d0 - q1i = - q1*rmax/d1; - d1i = rmax**2.0d0/d1; + q1i = - q1*rmax/d1 + d1i = rmax**2.0d0/d1 - q2 = -1.0d0; - d2 = rmax/4.0d0; + q2 = -1.0d0 + d2 = rmax/4.0d0 - q2i = - q2*rmax/d2; - d2i = rmax**2.0d0/d2; + q2i = - q2*rmax/d2 + d2i = rmax**2.0d0/d2 do i = 1, nr r = 0.5 + dble(i-1) Modified: trunk/examples/f77/x24f.fm4 =================================================================== --- trunk/examples/f77/x24f.fm4 2009-11-20 00:29:03 UTC (rev 10617) +++ trunk/examples/f77/x24f.fm4 2009-11-20 19:17:35 UTC (rev 10618) @@ -154,7 +154,7 @@ do 120 i = 1,4 - call plcol0 (i); + call plcol0 (i) call plfill (4, px, py) do 110 j = 1,4 Modified: trunk/examples/f77/x29f.fm4 =================================================================== --- trunk/examples/f77/x29f.fm4 2009-11-20 00:29:03 UTC (rev 10617) +++ trunk/examples/f77/x29f.fm4 2009-11-20 19:17:35 UTC (rev 10618) @@ -146,7 +146,7 @@ c "A Model Comparison for Daylength as a Function of Latitude and c Day of the Year", 1995, Ecological Modelling, 80, pp 87-95. do j=1,npts - x(j) = (j-1)*60.0d0*60.0d0*24.0d0; + x(j) = (j-1)*60.0d0*60.0d0*24.0d0 p = asin(0.39795d0*cos(0.2163108d0 + 2.0d0*atan(0.9671396d0* & tan(0.00860d0*(j-187))))) d = 24.0d0 - (24.0d0/PI)* @@ -182,7 +182,7 @@ integer i, npts real*8 xmin, xmax, ymin, ymax integer tstart, t1, t2 - real*8 toff; + real*8 toff real*8 x(365), y(365), xerr1(365), xerr2(365), yerr1(365), & yerr2(365) common /plotdat/ x, y, xerr1, xerr2, yerr1, yerr2 @@ -255,10 +255,10 @@ character*100 xtitle character*100 title real*8 x(1001), y(1001) - integer tai_year, tai_month, tai_day, tai_hour, tai_min; - real*8 tai_sec, tai; - integer utc_year, utc_month, utc_day, utc_hour, utc_min; - real*8 utc_sec, utc; + integer tai_year, tai_month, tai_day, tai_hour, tai_min + real*8 tai_sec, tai + integer utc_year, utc_month, utc_day, utc_hour, utc_min + real*8 utc_sec, utc c Use the definition given in http://en.wikipedia.org/wiki/Besselian_epoch c B = 1900. + (JD -2415020.31352)/365.242198781 @@ -338,7 +338,7 @@ x(i+1) = xmin + i*(xmax-xmin)/(dble(npts-1)) call plconfigtime(scale, offset1, offset2, z'0', 0, 0, 0, 0, 1 0, 0, 0.d0) - tai = x(i+1); + tai = x(i+1) call plbtime(tai_year, tai_month, tai_day, tai_hour, 1 tai_min, tai_sec, tai) call plconfigtime(scale, offset1, offset2, z'2', 0, 0, 0, Modified: trunk/examples/f77/x30f.fm4 =================================================================== --- trunk/examples/f77/x30f.fm4 2009-11-20 00:29:03 UTC (rev 10617) +++ trunk/examples/f77/x30f.fm4 2009-11-20 19:17:35 UTC (rev 10618) @@ -121,7 +121,7 @@ c the transparencies back to completely opaque. icol = mod(i-1,3) + 1 call plgcol0a (icol, r, g, b, a) - call plscol0a (icol, r, g, b, 1.0d0); + call plscol0a (icol, r, g, b, 1.0d0) call plcol0 (icol) do j = 1, 5 c Set box y position and draw the box. Modified: trunk/examples/f95/x21f.f90 =================================================================== --- trunk/examples/f95/x21f.f90 2009-11-20 00:29:03 UTC (rev 10617) +++ trunk/examples/f95/x21f.f90 2009-11-20 19:17:35 UTC (rev 10618) @@ -62,7 +62,7 @@ real(kind=plflt) xg(xp), yg(yp), zg(xp,yp) real(kind=plflt) zmin, zmax, lzmin, lzmax integer i, j, k - integer alg; + integer alg character*80 title(6) data title /'Cubic Spline Approximation', & 'Delaunay Linear Interpolation', & @@ -88,11 +88,11 @@ ymax = 0.6_plflt ! call plMergeOpts(options, "x21c options", NULL); - call plparseopts(PL_PARSE_FULL); + call plparseopts(PL_PARSE_FULL) - opt(3) = wmin; - opt(4) = dble(knn_order); - opt(5) = threshold; + opt(3) = wmin + opt(4) = dble(knn_order) + opt(5) = threshold ! Initialize plplot @@ -143,7 +143,7 @@ call plssub(3,2) do k=1,2 - call pladv(0); + call pladv(0) do alg=1,6 call plgriddata(x, y, z, xg, yg, zg, alg, opt(alg)) @@ -211,7 +211,7 @@ if (k.eq.1) then do i=1,nl - clev(i) = lzmin + (lzmax-lzmin)/(nl-1._plflt)*(i-1._plflt); + clev(i) = lzmin + (lzmax-lzmin)/(nl-1._plflt)*(i-1._plflt) enddo call plenv0(xmin, xmax, ymin, ymax, 2, 0) call plcol0(15) @@ -222,7 +222,7 @@ else do i = 1,nl - clev(i) = lzmin + (lzmax-lzmin)/(nl-1._plflt)*(i-1._plflt); + clev(i) = lzmin + (lzmax-lzmin)/(nl-1._plflt)*(i-1._plflt) enddo call cmap1_init() call plvpor(0._plflt, 1._plflt, 0._plflt, 0.9_plflt) Modified: trunk/examples/f95/x22f.f90 =================================================================== --- trunk/examples/f95/x22f.f90 2009-11-20 00:29:03 UTC (rev 10617) +++ trunk/examples/f95/x22f.f90 2009-11-20 19:17:35 UTC (rev 10618) @@ -176,17 +176,17 @@ eps = 2.0_plflt - q1 = 1.0_plflt; - d1 = rmax/4.0_plflt; + q1 = 1.0_plflt + d1 = rmax/4.0_plflt - q1i = - q1*rmax/d1; - d1i = rmax**2.0_plflt/d1; + q1i = - q1*rmax/d1 + d1i = rmax**2.0_plflt/d1 - q2 = -1.0_plflt; - d2 = rmax/4.0_plflt; + q2 = -1.0_plflt + d2 = rmax/4.0_plflt - q2i = - q2*rmax/d2; - d2i = rmax**2.0_plflt/d2; + q2i = - q2*rmax/d2 + d2i = rmax**2.0_plflt/d2 do i = 1, nr r = 0.5 + dble(i-1) Modified: trunk/examples/f95/x24f.f90 =================================================================== --- trunk/examples/f95/x24f.f90 2009-11-20 00:29:03 UTC (rev 10617) +++ trunk/examples/f95/x24f.f90 2009-11-20 19:17:35 UTC (rev 10618) @@ -154,7 +154,7 @@ do i = 1,4 - call plcol0 (i); + call plcol0 (i) call plfill (px, py) do j = 1,4 Modified: trunk/examples/f95/x29f.f90 =================================================================== --- trunk/examples/f95/x29f.f90 2009-11-20 00:29:03 UTC (rev 10617) +++ trunk/examples/f95/x29f.f90 2009-11-20 19:17:35 UTC (rev 10618) @@ -139,7 +139,7 @@ ! "A Model Comparison for Daylength as a Function of Latitude and ! Day of the Year", 1995, Ecological Modelling, 80, pp 87-95. do j=1,npts - x(j) = (j-1)*60.0_plflt*60.0_plflt*24.0_plflt; + x(j) = (j-1)*60.0_plflt*60.0_plflt*24.0_plflt p = asin(0.39795_plflt*cos(0.2163108_plflt + 2.0_plflt* & atan(0.9671396_plflt*tan(0.00860_plflt*(j-187))))) d = 24.0_plflt - (24.0_plflt/PI)* & @@ -177,7 +177,7 @@ integer :: i, npts real(kind=plflt) :: xmin, xmax, ymin, ymax integer :: tstart, t1, t2 -! real(kind=plflt) :: toff; +! real(kind=plflt) :: toff real(kind=plflt), dimension(365) :: x, y, xerr1, xerr2, yerr1, yerr2 common /plotdat/ x, y, xerr1, xerr2, yerr1, yerr2 @@ -217,7 +217,7 @@ call plcol0(3) call pllab("Date", "Hours of television watched", & "@frPLplot Example 29 - Hours of television watched in " // & - "Dec 2005 / Jan 2006"); + "Dec 2005 / Jan 2006") call plcol0(4) @@ -247,10 +247,10 @@ character(len=100) :: xtitle character(len=100) :: title real(kind=plflt) :: x(1001), y(1001) - integer :: tai_year, tai_month, tai_day, tai_hour, tai_min; - real(kind=plflt) :: tai_sec, tai; - integer :: utc_year, utc_month, utc_day, utc_hour, utc_min; - real(kind=plflt) :: utc_sec, utc; + integer :: tai_year, tai_month, tai_day, tai_hour, tai_min + real(kind=plflt) :: tai_sec, tai + integer :: utc_year, utc_month, utc_day, utc_hour, utc_min + real(kind=plflt) :: utc_sec, utc ! Use the definition given in http://en.wikipedia.org/wiki/Besselian_epoch ! B = 1900. + (JD -2415020.31352)/365.242198781 @@ -330,7 +330,7 @@ x(i+1) = xmin + i*(xmax-xmin)/(dble(npts-1)) call plconfigtime(scale, offset1, offset2, z'0', 0, 0, 0, 0, & 0, 0, 0._plflt) - tai = x(i+1); + tai = x(i+1) call plbtime(tai_year, tai_month, tai_day, tai_hour, & tai_min, tai_sec, tai) call plconfigtime(scale, offset1, offset2, z'2', 0, 0, 0, & Modified: trunk/examples/f95/x30f.f90 =================================================================== --- trunk/examples/f95/x30f.f90 2009-11-20 00:29:03 UTC (rev 10617) +++ trunk/examples/f95/x30f.f90 2009-11-20 19:17:35 UTC (rev 10618) @@ -119,7 +119,7 @@ ! the transparencies back to completely opaque. icol = mod(i-1,3) + 1 call plgcol0a (icol, r, g, b, a) - call plscol0a (icol, r, g, b, 1.0_plflt); + call plscol0a (icol, r, g, b, 1.0_plflt) call plcol0 (icol) do j = 1, 5 ! Set box y position and draw the box. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2009-12-02 01:10:20
|
Revision: 10659 http://plplot.svn.sourceforge.net/plplot/?rev=10659&view=rev Author: airwin Date: 2009-12-02 01:10:08 +0000 (Wed, 02 Dec 2009) Log Message: ----------- Spelling tweak. Modified Paths: -------------- trunk/examples/c/x30c.c trunk/examples/python/xw30.py Modified: trunk/examples/c/x30c.c =================================================================== --- trunk/examples/c/x30c.c 2009-12-02 00:33:49 UTC (rev 10658) +++ trunk/examples/c/x30c.c 2009-12-02 01:10:08 UTC (rev 10659) @@ -134,7 +134,7 @@ } /* Create the color map with 128 colors and use plscmap1la to initialize */ - /* the color values with a linear varying red transparency (or alpha) */ + /* the color values with a linearly varying red transparency (or alpha) */ plscmap1n( 128 ); plscmap1la( 1, 2, pos, rcoord, gcoord, bcoord, acoord, rev ); Modified: trunk/examples/python/xw30.py =================================================================== --- trunk/examples/python/xw30.py 2009-12-02 00:33:49 UTC (rev 10658) +++ trunk/examples/python/xw30.py 2009-12-02 01:10:08 UTC (rev 10659) @@ -113,7 +113,7 @@ plfill(px, py) # Create the color map with 128 colors and use plscmap1la to initialize - # the color values with a linear varying red transparency (or alpha) + # the color values with a linearly varying red transparency (or alpha) plscmap1n(128) plscmap1la(1, pos, rcoord, gcoord, bcoord, acoord, rev) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2009-12-08 03:03:25
|
Revision: 10708 http://plplot.svn.sourceforge.net/plplot/?rev=10708&view=rev Author: airwin Date: 2009-12-08 03:03:06 +0000 (Tue, 08 Dec 2009) Log Message: ----------- Propagate C changes to example 28 to the corresponding f77 and f95 examples. Modified Paths: -------------- trunk/examples/f77/x28f.fm4 trunk/examples/f95/x28f.f90 Modified: trunk/examples/f77/x28f.fm4 =================================================================== --- trunk/examples/f77/x28f.fm4 2009-12-08 00:05:05 UTC (rev 10707) +++ trunk/examples/f77/x28f.fm4 2009-12-08 03:03:06 UTC (rev 10708) @@ -49,8 +49,19 @@ parameter(zmax = 1.d0) parameter(zmid = 0.5d0*(zmax+zmin)) parameter(zrange = zmax-zmin) - - + real*8 ysmin, ysmax, ysrange, dysrot, dysshear + parameter(ysmin = ymin + 0.1 * yrange) + parameter(ysmax = ymax - 0.1 * yrange) + parameter(ysrange = ysmax - ysmin) + parameter(dysrot = ysrange / ( NROTATION - 1 )) + parameter(dysshear = ysrange / ( NSHEAR - 1 )) + real*8 zsmin, zsmax, zsrange, dzsrot, dzsshear + parameter(zsmin = zmin + 0.1 * zrange) + parameter(zsmax = zmax - 0.1 * zrange) + parameter(zsrange = zsmax - zsmin) + parameter(dzsrot = zsrange / ( NROTATION - 1 )) + parameter(dzsshear = zsrange / ( NSHEAR - 1 )) + real*8 ys, zs real*8 x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & omega, sin_omega, cos_omega, domega @@ -184,10 +195,9 @@ cos_omega = cos(omega) y_shear = 0.5d0*yrange*sin_omega z_shear = 0.5d0*zrange*cos_omega + zs = zsmax - dzsrot * dble(i-1) call plptex3( - & xmid, - & ymax, - & zmax -(zmax-0.2d0)*(dble(i-1)/dble(NROTATION-1)), + & xmid, ymax, zs, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5d0, "rotation for y = y#dmax#u") @@ -205,10 +215,9 @@ cos_omega = cos(omega) x_shear = 0.5d0*xrange*sin_omega z_shear = 0.5d0*zrange*cos_omega + zs = zsmax - dzsrot * dble(i-1) call plptex3( - & xmax, - & ymid, - & zmax -(zmax-0.2d0)*(dble(i-1)/dble(NROTATION-1)), + & xmax, ymid, zs, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5d0, "rotation for x = x#dmax#u") @@ -226,10 +235,9 @@ cos_omega = cos(omega) y_shear = 0.5d0*yrange*cos_omega z_shear = 0.5d0*zrange*sin_omega + ys = ysmax - dysrot * dble(i-1) call plptex3( - & xmid, - & ymax -(zmax-0.2d0)*(dble(i-1)/dble(NROTATION-1)), - & zmin, + & xmid, ys, zmin, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5d0, "rotation for z = z#dmin#u") @@ -266,10 +274,9 @@ cos_omega = cos(omega) x_shear = 0.5d0*xrange*sin_omega z_shear = 0.5d0*zrange*cos_omega + zs = zsmax - dzsshear * dble(i-1) call plptex3( - & xmid, - & ymax, - & zmax -(zmax-0.2d0)*(dble(i-1)/dble(NSHEAR-1)), + & xmid, ymax, zs, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5d0, "shear for y = y#dmax#u") @@ -287,10 +294,9 @@ cos_omega = cos(omega) y_shear = -0.5d0*yrange*sin_omega z_shear = 0.5d0*zrange*cos_omega + zs = zsmax - dzsshear * dble(i-1) call plptex3( - & xmax, - & ymid, - & zmax -(zmax-0.2d0)*(dble(i-1)/dble(NSHEAR-1)), + & xmax, ymid, zs, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5d0, "shear for x = x#dmax#u") @@ -308,10 +314,9 @@ cos_omega = cos(omega) y_shear = 0.5d0*yrange*cos_omega x_shear = 0.5d0*xrange*sin_omega + ys = ysmax - dysshear * dble(i-1) call plptex3( - & xmid, - & ymax -(ymax-0.2d0)*(dble(i-1)/dble(NSHEAR-1)), - & zmin, + & xmid, ys, zmin, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5d0, "shear for z = z#dmin#u") Modified: trunk/examples/f95/x28f.f90 =================================================================== --- trunk/examples/f95/x28f.f90 2009-12-08 00:05:05 UTC (rev 10707) +++ trunk/examples/f95/x28f.f90 2009-12-08 03:03:06 UTC (rev 10708) @@ -39,7 +39,18 @@ xmid = 0.5*(xmax + xmin), xrange = xmax - xmin, & ymin=0., ymax=1.0, ymid = 0.5*(ymax + ymin), yrange = ymax - ymin, & zmin=0., zmax=1.0, zmid = 0.5*(zmax + zmin), zrange = zmax - zmin - real(PLFLT) :: y_location, z_location, & + real(PLFLT), parameter :: & + ysmin = ymin + 0.1 * yrange, & + ysmax = ymax - 0.1 * yrange, & + ysrange = ysmax - ysmin, & + dysrot = ysrange / ( NROTATION - 1 ), & + dysshear = ysrange / ( NSHEAR - 1 ), & + zsmin = zmin + 0.1 * zrange, & + zsmax = zmax - 0.1 * zrange, & + zsrange = zsmax - zsmin, & + dzsrot = zsrange / ( NROTATION - 1 ), & + dzsshear = zsrange / ( NSHEAR - 1 ) + real(PLFLT) :: ys, zs, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & omega, sin_omega, cos_omega, domega @@ -183,9 +194,9 @@ cos_omega = cos(omega) y_shear = 0.5*yrange*sin_omega z_shear = 0.5*zrange*cos_omega - z_location = zmax -(zmax-0.2)*(dble(i-1)/dble(NROTATION-1)) + zs = zsmax - dzsrot * dble(i-1) call plptex3( & - xmid, ymax, z_location, & + xmid, ymax, zs, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "rotation for y = y#dmax#u") @@ -203,9 +214,9 @@ cos_omega = cos(omega) x_shear = 0.5*xrange*sin_omega z_shear = 0.5*zrange*cos_omega - z_location = zmax -(zmax-0.2)*((i-1)/dble(NROTATION-1)) + zs = zsmax - dzsrot * dble(i-1) call plptex3( & - xmax, ymid, z_location, & + xmax, ymid, zs, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "rotation for x = x#dmax#u") @@ -223,9 +234,9 @@ cos_omega = cos(omega) y_shear = 0.5*yrange*cos_omega z_shear = 0.5*zrange*sin_omega - y_location = ymax -(ymax-0.2)*(dble(i-1)/dble(NROTATION-1)) + ys = ysmax - dysrot * dble(i-1) call plptex3( & - xmid, y_location, zmin, & + xmid, ys, zmin, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "rotation for z = z#dmin#u") @@ -261,9 +272,9 @@ cos_omega = cos(omega) x_shear = 0.5*xrange*sin_omega z_shear = 0.5*zrange*cos_omega - z_location = zmax -(zmax-0.2)*(dble(i-1)/dble(NSHEAR-1)) + zs = zsmax - dzsshear * dble(i-1) call plptex3( & - xmid, ymax, z_location, & + xmid, ymax, zs, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "shear for y = y#dmax#u") @@ -281,9 +292,9 @@ cos_omega = cos(omega) y_shear = -0.5*yrange*sin_omega z_shear = 0.5*zrange*cos_omega - z_location = zmax -(zmax-0.2)*((i-1)/dble(NSHEAR-1)) + zs = zsmax - dzsshear * dble(i-1) call plptex3( & - xmax, ymid, z_location, & + xmax, ymid, zs, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "shear for x = x#dmax#u") @@ -301,9 +312,9 @@ cos_omega = cos(omega) y_shear = 0.5*yrange*cos_omega x_shear = 0.5*xrange*sin_omega - y_location = ymax -(ymax-0.2)*(dble(i-1)/dble(NSHEAR-1)) + ys = ysmax - dysshear * dble(i-1) call plptex3( & - xmid, y_location, zmin, & + xmid, ys, zmin, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "shear for z = z#dmin#u") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2010-03-03 23:32:48
|
Revision: 10840 http://plplot.svn.sourceforge.net/plplot/?rev=10840&view=rev Author: airwin Date: 2010-03-03 23:32:41 +0000 (Wed, 03 Mar 2010) Log Message: ----------- Add the test_tk_plgrid interactive target that tests the plgrid.tcl example under plserver. This works for both the build tree and the CMake-based build system for the installed examples tree. Modified Paths: -------------- trunk/examples/CMakeLists.txt trunk/examples/tk/CMakeLists.txt Added Paths: ----------- trunk/examples/tk/plgrid.in Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2010-03-03 12:44:08 UTC (rev 10839) +++ trunk/examples/CMakeLists.txt 2010-03-03 23:32:41 UTC (rev 10840) @@ -708,6 +708,27 @@ ) list(APPEND targets_examples_tk test_tk_03) + if(CORE_BUILD) + add_custom_target(test_tk_plgrid + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tk/plgrid + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tcl + ) + else(CORE_BUILD) + add_custom_target(test_tk_plgrid + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tk/plgrid + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tcl + ) + endif(CORE_BUILD) + + add_dependencies(test_tk_plgrid + plserver + tcl_examples + tclIndex_tcl + tclIndex_tk + xwin + ) + list(APPEND targets_examples_tk test_tk_plgrid) + if(ENABLE_itk) add_custom_target(test_tk_02 COMMAND xtk02 -f ${CMAKE_CURRENT_BINARY_DIR}/tk/tk02 Modified: trunk/examples/tk/CMakeLists.txt =================================================================== --- trunk/examples/tk/CMakeLists.txt 2010-03-03 12:44:08 UTC (rev 10839) +++ trunk/examples/tk/CMakeLists.txt 2010-03-03 23:32:41 UTC (rev 10840) @@ -164,7 +164,9 @@ # xtk02, and xtk04. # The third example is run with the configured shell script, tk03, which # invokes plserver. -set(tk_SCRIPTS tk01.in tk03.in) +# plgrid is a configured shell script that runs the plgrid.tcl example +# (N.B., in the tcl directory) using plserver. +set(tk_SCRIPTS tk01.in tk03.in plgrid.in) get_target_property(xtk01_LOCATION xtk01 LOCATION) get_target_property(plserver_LOCATION plserver LOCATION) @@ -178,6 +180,11 @@ ${CMAKE_CURRENT_BINARY_DIR}/tk03 @ONLY ) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/plgrid.in + ${CMAKE_CURRENT_BINARY_DIR}/plgrid + @ONLY +) # The second and fourth Tk examples depend on Itk to work. if(ENABLE_itk) list(APPEND tk_SCRIPTS tk02.in tk04.in) Copied: trunk/examples/tk/plgrid.in (from rev 10838, trunk/examples/tk/tk03.in) =================================================================== --- trunk/examples/tk/plgrid.in (rev 0) +++ trunk/examples/tk/plgrid.in 2010-03-03 23:32:41 UTC (rev 10840) @@ -0,0 +1,10 @@ +#!/bin/sh +# Run plserver example for plgrid.tcl. N.B. must be run in ../tcl directory. +@plserver_LOCATION@ <<EOF +plstdwin . +plxframe .plw +pack append . .plw {left expand fill} +source plgrid.tcl +proc 1 {} "plgrid .plw.plwin" +1 +EOF This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2010-03-04 01:08:06
|
Revision: 10842 http://plplot.svn.sourceforge.net/plplot/?rev=10842&view=rev Author: airwin Date: 2010-03-04 01:08:00 +0000 (Thu, 04 Mar 2010) Log Message: ----------- Implement the interactive test_tk_standard_examples test target to run all the standard examples under plserver. This target works both for the build tree and also the installed examples tree when built using CMake. Modified Paths: -------------- trunk/examples/CMakeLists.txt trunk/examples/tk/CMakeLists.txt Added Paths: ----------- trunk/examples/tk/standard_examples.in Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2010-03-04 00:48:36 UTC (rev 10841) +++ trunk/examples/CMakeLists.txt 2010-03-04 01:08:00 UTC (rev 10842) @@ -719,7 +719,6 @@ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tcl ) endif(CORE_BUILD) - add_dependencies(test_tk_plgrid plserver tcl_examples @@ -729,6 +728,27 @@ ) list(APPEND targets_examples_tk test_tk_plgrid) + if(CORE_BUILD) + add_custom_target(test_tk_standard_examples + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tk/standard_examples + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tk + ) + else(CORE_BUILD) + add_custom_target(test_tk_standard_examples + COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tk/standard_examples + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tk + ) + endif(CORE_BUILD) + add_dependencies(test_tk_standard_examples + plserver + tcl_examples + tclIndex_tcl + tclIndex_tk + tclIndex_examples_tk + xwin + ) + list(APPEND targets_examples_tk test_tk_standard_examples) + if(ENABLE_itk) add_custom_target(test_tk_02 COMMAND xtk02 -f ${CMAKE_CURRENT_BINARY_DIR}/tk/tk02 Modified: trunk/examples/tk/CMakeLists.txt =================================================================== --- trunk/examples/tk/CMakeLists.txt 2010-03-04 00:48:36 UTC (rev 10841) +++ trunk/examples/tk/CMakeLists.txt 2010-03-04 01:08:00 UTC (rev 10842) @@ -55,6 +55,7 @@ "28" "29" "30" + "31" ) set(tk_SRC_FILES @@ -166,7 +167,9 @@ # invokes plserver. # plgrid is a configured shell script that runs the plgrid.tcl example # (N.B., in the tcl directory) using plserver. -set(tk_SCRIPTS tk01.in tk03.in plgrid.in) +# standard_examples is a configured shell script that runs all the standard +# examples under plserver. +set(tk_SCRIPTS tk01.in tk03.in plgrid.in standard_examples.in) get_target_property(xtk01_LOCATION xtk01 LOCATION) get_target_property(plserver_LOCATION plserver LOCATION) @@ -185,6 +188,11 @@ ${CMAKE_CURRENT_BINARY_DIR}/plgrid @ONLY ) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/standard_examples.in + ${CMAKE_CURRENT_BINARY_DIR}/standard_examples + @ONLY +) # The second and fourth Tk examples depend on Itk to work. if(ENABLE_itk) list(APPEND tk_SCRIPTS tk02.in tk04.in) Copied: trunk/examples/tk/standard_examples.in (from rev 10840, trunk/examples/tk/plgrid.in) =================================================================== --- trunk/examples/tk/standard_examples.in (rev 0) +++ trunk/examples/tk/standard_examples.in 2010-03-04 01:08:00 UTC (rev 10842) @@ -0,0 +1,37 @@ +#!/bin/sh +# Run plserver example for standard examples. +# Drop examples 14 and 31 because querying for devices does not +# seem to work in this context. +# Drop example 19 because of "invalid command name "plslabelfunc" +@plserver_LOCATION@ <<EOF +source tkdemos.tcl +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +15 +16 +17 +18 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +exit +EOF This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2010-04-05 04:58:19
|
Revision: 10887 http://plplot.svn.sourceforge.net/plplot/?rev=10887&view=rev Author: airwin Date: 2010-04-05 04:58:13 +0000 (Mon, 05 Apr 2010) Log Message: ----------- Fix build system logic for case when diff and/or tail not available. Modified Paths: -------------- trunk/examples/CMakeLists.txt trunk/examples/plplot_configure.cmake_installed_examples.in Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2010-04-05 02:56:03 UTC (rev 10886) +++ trunk/examples/CMakeLists.txt 2010-04-05 04:58:13 UTC (rev 10887) @@ -481,13 +481,17 @@ endif(ENABLE_${language}) endforeach(language_info ${language_info_LIST}) - # Note this target has complete file and target dependencies for - # a comparison of stdout and PostScript results. - add_custom_target(test_diff_psc COMMAND ${compare_command} - DEPENDS ${diff_files_LIST} - ) - add_dependencies(test_diff_psc ${diff_targets_LIST}) - set(noninteractive_targets_LIST test_diff_psc) + if(DIFF_EXECUTABLE AND TAIL_EXECUTABLE) + # Note this target has complete file and target dependencies for + # a comparison of stdout and PostScript results. + add_custom_target(test_diff_psc COMMAND ${compare_command} + DEPENDS ${diff_files_LIST} + ) + add_dependencies(test_diff_psc ${diff_targets_LIST}) + set(noninteractive_targets_LIST test_diff_psc) + else(DIFF_EXECUTABLE AND TAIL_EXECUTABLE) + set(noninteractive_targets_LIST) + endif(DIFF_EXECUTABLE AND TAIL_EXECUTABLE) else(PLD_psc) set(noninteractive_targets_LIST) endif(PLD_psc) Modified: trunk/examples/plplot_configure.cmake_installed_examples.in =================================================================== --- trunk/examples/plplot_configure.cmake_installed_examples.in 2010-04-05 02:56:03 UTC (rev 10886) +++ trunk/examples/plplot_configure.cmake_installed_examples.in 2010-04-05 04:58:13 UTC (rev 10887) @@ -211,3 +211,8 @@ # Set external devices that are needed to build certain examples. set(PLD_extcairo @PLD_extcairo@) set(PLD_extqt @PLD_extqt@) + +# Needed to check if diff and tail on system for test_diff_psc target. + +set(DIFF_EXECUTABLE @DIFF_EXECUTABLE@) +set(TAIL_EXECUTABLE @TAIL_EXECUTABLE@) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arj...@us...> - 2010-06-16 07:15:32
|
Revision: 11070 http://plplot.svn.sourceforge.net/plplot/?rev=11070&view=rev Author: arjenmarkus Date: 2010-06-16 07:15:26 +0000 (Wed, 16 Jun 2010) Log Message: ----------- Provide a script to run all Tcl examples in the same way as we do for the Tk examples. The script properly resets PLplot so that each example displays correctly (with the exception of x21). Reformatted the Tk script, as the list of commands to reset PLplot got fairly long. Currently, the script (standard_examples) can not be used as a proper shell script, in the same way as the Tk equivalent. This is a first version to get the basic functionality. Re x21: this example does something to upset PLplot on my machine, so that the next example complains that I should call plinit() again. I have commented it out for now. Modified Paths: -------------- trunk/examples/tcl/CMakeLists.txt trunk/examples/tcl/tcldemos.tcl trunk/examples/tk/tkdemos.tcl Added Paths: ----------- trunk/examples/tcl/standard_examples.in Modified: trunk/examples/tcl/CMakeLists.txt =================================================================== --- trunk/examples/tcl/CMakeLists.txt 2010-06-16 07:10:00 UTC (rev 11069) +++ trunk/examples/tcl/CMakeLists.txt 2010-06-16 07:15:26 UTC (rev 11070) @@ -74,6 +74,14 @@ set(tcl_SCRIPTS ${tcl_SCRIPTS} x${STRING_INDEX}) endforeach(STRING_INDEX ${tcl_STRING_INDICES}) +# Configure the standard examples file. It is always copied +get_target_property(pltcl_LOCATION pltcl LOCATION) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/standard_examples.in + ${CMAKE_CURRENT_BINARY_DIR}/standard_examples + @ONLY +) + if(CORE_BUILD) # Copy file and scripts to the binary directory if different to the # source directory. Needed for ctest, but also so the tclIndex file @@ -110,7 +118,7 @@ install(FILES ${tcl_FILES} DESTINATION ${DATA_DIR}/examples/tcl) install(PROGRAMS ${tcl_SCRIPTS} DESTINATION ${DATA_DIR}/examples/tcl) - install(FILES CMakeLists.txt + install(FILES CMakeLists.txt DESTINATION ${DATA_DIR}/examples/tcl ) @@ -127,9 +135,9 @@ if(CORE_BUILD) set_property(GLOBAL PROPERTY TARGETS_examples_tcl tcl_examples - tclIndex_examples_tcl + tclIndex_examples_tcl plplottcltk${LIB_TAG} - pltcl + pltcl plplot.tcl_target tclIndex_tcl ) @@ -137,9 +145,9 @@ get_property(files_tclIndex_tcl GLOBAL PROPERTY FILES_tclIndex_tcl) set_property(GLOBAL PROPERTY FILES_examples_tcl ${tclIndex_DEPENDS} - ${CMAKE_CURRENT_BINARY_DIR}/tclIndex + ${CMAKE_CURRENT_BINARY_DIR}/tclIndex plplottcltk${LIB_TAG} - pltcl + pltcl ${files_plplot.tcl_target} ${files_tclIndex_tcl} ) Added: trunk/examples/tcl/standard_examples.in =================================================================== --- trunk/examples/tcl/standard_examples.in (rev 0) +++ trunk/examples/tcl/standard_examples.in 2010-06-16 07:15:26 UTC (rev 11070) @@ -0,0 +1,39 @@ +# Examples 14 and 31 left out - see Tk standard_examples.in +# +# Problem in x22: crash - but not if run standalone +# Interference from x21? According to the messages I need to call plinit again +# Yes, leaving out x21 makes x22 behave correctly +# +# +source tcldemos.tcl +plinit +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +15 +16 +17 +18 +19 +20 +#21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +exit Modified: trunk/examples/tcl/tcldemos.tcl =================================================================== --- trunk/examples/tcl/tcldemos.tcl 2010-06-16 07:10:00 UTC (rev 11069) +++ trunk/examples/tcl/tcldemos.tcl 2010-06-16 07:15:26 UTC (rev 11070) @@ -7,12 +7,9 @@ # IFS, University of Texas at Austin # 23-Jun-1994 # -# To plot these, start up pltcl and type plinit to get a selection of -# device types. Choose one of the devices then type -# "source tcldemos.tcl", then type "1" for the first demo, "2" for the -# second, and so on. Not all examples are fully implemented yet. -# Note if you use xwin for the device type, you must type CR in the -# xwin window to move from one plot to the next. +# To plot these, start up pltcl with the argument "standard_examples". +# Choose one of the devices to start the demo. Press the space bar +# to move to the next window or to the next example # # Note: each demo proc is supplied a widget argument if run from a widget, # or "loopback" if being run from pltcl. In the latter case, the @@ -24,6 +21,13 @@ set demo x[format "%02d" $i] source $demo.tcl # restore defaults - plcol0 1 - proc $i {} "$demo" + proc $i {} " + $demo + loopback cmd pleop + loopback cmd plcol0 1 + loopback cmd plsori 0 + loopback cmd plspal0 cmap0_default.pal + loopback cmd plspal1 cmap1_default.pal 1 + loopback cmd plstransform NULL + " } Modified: trunk/examples/tk/tkdemos.tcl =================================================================== --- trunk/examples/tk/tkdemos.tcl 2010-06-16 07:10:00 UTC (rev 11069) +++ trunk/examples/tk/tkdemos.tcl 2010-06-16 07:15:26 UTC (rev 11070) @@ -2,7 +2,7 @@ # $Id$ # # PLplot TK demos -# +# # Maurice LeBrun # IFS, University of Texas at Austin # 26-Jan-1995 @@ -24,5 +24,12 @@ for {set i 1} {$i <= 31} {incr i} { set demo x[format "%02d" $i] source $demo.tcl - proc $i {} "$demo .plw.plwin; .plw.plwin cmd plspal0 cmap0_default.pal; .plw.plwin cmd plspal1 cmap1_default.pal 1" + proc $i {} " + $demo .plw.plwin + .plw.plwin cmd plcol0 1 + .plw.plwin cmd plsori 0 + .plw.plwin cmd plspal0 cmap0_default.pal + .plw.plwin cmd plspal1 cmap1_default.pal 1 + .plw.plwin cmd plstransform NULL + " } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Alan W. I. <ir...@be...> - 2010-06-16 18:39:13
|
On 2010-06-16 07:15-0000 arj...@us... wrote: > Revision: 11070 > http://plplot.svn.sourceforge.net/plplot/?rev=11070&view=rev > Author: arjenmarkus > Date: 2010-06-16 07:15:26 +0000 (Wed, 16 Jun 2010) > > Log Message: > ----------- > Provide a script to run all Tcl examples in the same way as we do for the Tk examples. The script properly > resets PLplot so that each example displays correctly (with the exception of x21). Reformatted the Tk script, > as the list of commands to reset PLplot got fairly long. > > Currently, the script (standard_examples) can not be used as a proper shell script, in the same way as the > Tk equivalent. This is a first version to get the basic functionality. > > Re x21: this example does something to upset PLplot on my machine, so that the next example complains that > I should call plinit() again. I have commented it out for now. > > Modified Paths: > -------------- > trunk/examples/tcl/CMakeLists.txt > trunk/examples/tcl/tcldemos.tcl > trunk/examples/tk/tkdemos.tcl > > Added Paths: > ----------- > trunk/examples/tcl/standard_examples.in > Hi Arjen: Many thanks for this work on mass runs of the Tcl examples. I have followed up with some additional changes (revision 11077) including implementation of the test_tcl_standard_examples target. Please run "make test_tcl_standard_examples" there to make sure it works properly on your platform(s). It exercises examples/tcl/standard_examples without showstopper issues here (Debian Lenny). I agree something funny is going on for example 21 because after that example the convenient "-np" option which is passed to pltcl no longer works so you have to go back to hitting the enter key numerous times to get through the rest of the examples. I will look into that and if I find a solution I will check whether that solution allows me to reinstate example 22 as well. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: <arj...@us...> - 2010-06-17 07:21:35
|
Revision: 11079 http://plplot.svn.sourceforge.net/plplot/?rev=11079&view=rev Author: arjenmarkus Date: 2010-06-17 07:21:29 +0000 (Thu, 17 Jun 2010) Log Message: ----------- Adjust the standard examples scripts: they can now be used as regular Tcl/Tk script as well as shell scripts. Added the "plspause 0" command before running the demo. Note however that this does not work well with interactive devices (solve that via a command-line option?) Modified Paths: -------------- trunk/examples/tcl/standard_examples.in trunk/examples/tk/standard_examples.in trunk/examples/tk/tkdemos.tcl Modified: trunk/examples/tcl/standard_examples.in =================================================================== --- trunk/examples/tcl/standard_examples.in 2010-06-16 20:41:58 UTC (rev 11078) +++ trunk/examples/tcl/standard_examples.in 2010-06-17 07:21:29 UTC (rev 11079) @@ -1,6 +1,9 @@ #!@SH_EXECUTABLE@ # Examples 14 and 31 left out - see Tk standard_examples.in -# +# Note the backslash at the end - this causes Tcl to ignore +# the next line. It becomes a valid Tcl script as well as +# valid shell script +# \ @pltcl_LOCATION@ $* <<EOF source tcldemos.tcl plinit Modified: trunk/examples/tk/standard_examples.in =================================================================== --- trunk/examples/tk/standard_examples.in 2010-06-16 20:41:58 UTC (rev 11078) +++ trunk/examples/tk/standard_examples.in 2010-06-17 07:21:29 UTC (rev 11079) @@ -2,6 +2,10 @@ # Run plserver example for standard examples. # Drop examples 14 and 31 because querying for devices does not # seem to work in this context. +# Note the backslash at the end - this causes Tcl to ignore +# the next line. It becomes a valid Tcl script as well as +# valid shell script +# \ @plserver_LOCATION@ <<EOF source tkdemos.tcl 1 Modified: trunk/examples/tk/tkdemos.tcl =================================================================== --- trunk/examples/tk/tkdemos.tcl 2010-06-16 20:41:58 UTC (rev 11078) +++ trunk/examples/tk/tkdemos.tcl 2010-06-17 07:21:29 UTC (rev 11079) @@ -25,6 +25,7 @@ set demo x[format "%02d" $i] source $demo.tcl proc $i {} " + .plw.plwin cmd plspause 0 $demo .plw.plwin .plw.plwin cmd plcol0 1 .plw.plwin cmd plsori 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2010-10-27 02:02:18
|
Revision: 11279 http://plplot.svn.sourceforge.net/plplot/?rev=11279&view=rev Author: airwin Date: 2010-10-27 02:02:12 +0000 (Wed, 27 Oct 2010) Log Message: ----------- Replace strange quotes by ordinary ascii single quotes. Modified Paths: -------------- trunk/examples/tcl/README.tcldemos trunk/examples/tk/README.tkdemos Modified: trunk/examples/tcl/README.tcldemos =================================================================== --- trunk/examples/tcl/README.tcldemos 2010-10-27 01:59:59 UTC (rev 11278) +++ trunk/examples/tcl/README.tcldemos 2010-10-27 02:02:12 UTC (rev 11279) @@ -3,7 +3,7 @@ PLplot doesn't need to be installed to run these demos. However, different commands might be needed to run the demos when PLplot is installed or not; in these cases, the first command must be used for -the installed situation, while the second, separeted by a `|\xB4, is for the +the installed situation, while the second, separeted by a '|', is for the uninstalled situation. To run individual examples, run the x?? script corresponding to the x??.tcl Modified: trunk/examples/tk/README.tkdemos =================================================================== --- trunk/examples/tk/README.tkdemos 2010-10-27 01:59:59 UTC (rev 11278) +++ trunk/examples/tk/README.tkdemos 2010-10-27 02:02:12 UTC (rev 11279) @@ -3,7 +3,7 @@ PLplot doesn't need to be installed to run these demos. However, different commands might be needed to run the demos when PLplot is installed or not; in these cases, the first command must be used for -the installed situation, while the second, separated by a `|\xB4, is for the +the installed situation, while the second, separated by a '|', is for the uninstalled situation. To run the plot.tcl demo follow the directions in that file to run it This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2010-12-17 01:42:13
|
Revision: 11372 http://plplot.svn.sourceforge.net/plplot/?rev=11372&view=rev Author: airwin Date: 2010-12-17 01:42:06 +0000 (Fri, 17 Dec 2010) Log Message: ----------- Change from a maximum length of 80 (which I have overflowed recently) to 256 for full pathname of file. Modified Paths: -------------- trunk/examples/c/x31c.c trunk/examples/c++/x31.cc trunk/examples/f77/x31f.fm4 trunk/examples/f95/x31f.f90 trunk/examples/java/x31.java Modified: trunk/examples/c/x31c.c =================================================================== --- trunk/examples/c/x31c.c 2010-12-14 17:57:35 UTC (rev 11371) +++ trunk/examples/c/x31c.c 2010-12-17 01:42:06 UTC (rev 11372) @@ -48,7 +48,7 @@ PLINT b1[] = { 0, 0 }; PLFLT a1[] = { 1.0, 1.0 }; int status; - char fnam[80]; + char fnam[256]; // Parse and process command line arguments Modified: trunk/examples/c++/x31.cc =================================================================== --- trunk/examples/c++/x31.cc 2010-12-14 17:57:35 UTC (rev 11371) +++ trunk/examples/c++/x31.cc 2010-12-17 01:42:06 UTC (rev 11372) @@ -64,7 +64,7 @@ PLINT b1[] = { 0, 0 }; PLFLT a1[] = { 1.0, 1.0 }; int status; - char fnam[80]; + char fnam[256]; pls = new plstream(); Modified: trunk/examples/f77/x31f.fm4 =================================================================== --- trunk/examples/f77/x31f.fm4 2010-12-14 17:57:35 UTC (rev 11371) +++ trunk/examples/f77/x31f.fm4 2010-12-17 01:42:06 UTC (rev 11372) @@ -43,7 +43,7 @@ data b1 /0, 0/ real*8 a1(2) data a1 /1.0d0, 1.0d0/ - character*80 fnam + character*256 fnam integer stderr integer status integer lnblnk Modified: trunk/examples/f95/x31f.f90 =================================================================== --- trunk/examples/f95/x31f.f90 2010-12-14 17:57:35 UTC (rev 11371) +++ trunk/examples/f95/x31f.f90 2010-12-17 01:42:06 UTC (rev 11372) @@ -45,7 +45,7 @@ data b1 /0, 0/ real(kind=plflt) a1(2) data a1 /1.0_plflt, 1.0_plflt/ - character*80 fnam + character*256 fnam integer stderr integer status Modified: trunk/examples/java/x31.java =================================================================== --- trunk/examples/java/x31.java 2010-12-14 17:57:35 UTC (rev 11371) +++ trunk/examples/java/x31.java 2010-12-17 01:42:06 UTC (rev 11372) @@ -63,7 +63,7 @@ int g1[] = { 255, 0 }; int b1[] = { 0, 0 }; double a1[] = { 1.0, 1.0 }; - StringBuffer fnam = new StringBuffer( 80 ); + StringBuffer fnam = new StringBuffer( 256 ); int status; // Create NumberFormat to format floating point numbers This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arj...@us...> - 2011-01-11 08:22:55
|
Revision: 11477 http://plplot.svn.sourceforge.net/plplot/?rev=11477&view=rev Author: arjenmarkus Date: 2011-01-11 08:22:48 +0000 (Tue, 11 Jan 2011) Log Message: ----------- Add the workaround for Tcl 8.4 (wrt encoding issues on Windows) to the overall demonstration programs. Modified Paths: -------------- trunk/examples/tcl/tcldemos.tcl trunk/examples/tk/tkdemos.tcl Modified: trunk/examples/tcl/tcldemos.tcl =================================================================== --- trunk/examples/tcl/tcldemos.tcl 2011-01-11 07:57:04 UTC (rev 11476) +++ trunk/examples/tcl/tcldemos.tcl 2011-01-11 08:22:48 UTC (rev 11477) @@ -17,9 +17,45 @@ # Tcl scripts compatible. #---------------------------------------------------------------------------- +proc sourceUtf8 {sourceFile} { + + if { [encoding system] != "utf-8" } { + if { [package vsatisfies [info patch] 8.5] } { + + source -encoding utf-8 $sourceFile + + } else { + + # + # Pre-Tcl 8.5 + # + set infile [open $sourceFile] + set contents [read $infile] + close $infile + eval [encoding convertfrom utf-8 \ + [encoding convertto [encoding system] $contents]] + } + } else { + source $sourceFile + } +} + +set utf8_examples {4 18 24 26 33} + for {set i 1} {$i <= 31} {incr i} { set demo x[format "%02d" $i] - source $demo.tcl + + # + # If the source code contains UTF-8 characters (beyond the + # ASCII-7 encoding), take special measures + # + + if { [lsearch $utf8_examples $i] < 0 } { + source $demo.tcl + } else { + sourceUtf8 $demo.tcl + } + # restore defaults proc $i {} " $demo Modified: trunk/examples/tk/tkdemos.tcl =================================================================== --- trunk/examples/tk/tkdemos.tcl 2011-01-11 07:57:04 UTC (rev 11476) +++ trunk/examples/tk/tkdemos.tcl 2011-01-11 08:22:48 UTC (rev 11477) @@ -17,13 +17,49 @@ # Tcl scripts compatible. #---------------------------------------------------------------------------- +proc sourceUtf8 {sourceFile} { + + if { [encoding system] != "utf-8" } { + if { [package vsatisfies [info patch] 8.5] } { + + source -encoding utf-8 $sourceFile + + } else { + + # + # Pre-Tcl 8.5 + # + set infile [open $sourceFile] + set contents [read $infile] + close $infile + eval [encoding convertfrom utf-8 \ + [encoding convertto [encoding system] $contents]] + } + } else { + source $sourceFile + } +} + +set utf8_examples {4 18 24 26 33} + plstdwin . plxframe .plw pack append . .plw {left expand fill} for {set i 1} {$i <= 31} {incr i} { set demo x[format "%02d" $i] - source $demo.tcl + + # + # If the source code contains UTF-8 characters (beyond the + # ASCII-7 encoding), take special measures + # + + if { [lsearch $utf8_examples $i] < 0 } { + source $demo.tcl + } else { + sourceUtf8 $demo.tcl + } + proc $i {} " .plw.plwin cmd plspause 0 $demo .plw.plwin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arj...@us...> - 2011-02-04 09:57:55
|
Revision: 11545 http://plplot.svn.sourceforge.net/plplot/?rev=11545&view=rev Author: arjenmarkus Date: 2011-02-04 09:57:49 +0000 (Fri, 04 Feb 2011) Log Message: ----------- Updated examples for Fortran 77 and Fortran 95. Example 33 still needs work (differences in colours). API for Fortran 95 requires some additional work, but it does do the job. Modified Paths: -------------- trunk/examples/f77/x04f.fm4 trunk/examples/f77/x26f.fm4 trunk/examples/f77/x33f.fm4 trunk/examples/f95/x04f.f90 trunk/examples/f95/x26f.f90 Modified: trunk/examples/f77/x04f.fm4 =================================================================== --- trunk/examples/f77/x04f.fm4 2011-02-03 08:19:52 UTC (rev 11544) +++ trunk/examples/f77/x04f.fm4 2011-02-04 09:57:49 UTC (rev 11545) @@ -44,8 +44,8 @@ & line_styles(2), line_widths(2), symbol_colors(2), & symbol_numbers(2) real*8 symbol_scales(2) - integer box_colors(1), box_patterns(1), box_scales(1) - real*8 box_line_widths(1) + integer box_colors(1), box_patterns(1), box_line_widths(1) + real*8 box_scales(1) character*20 text(2) character*1 symbols(2) Modified: trunk/examples/f77/x26f.fm4 =================================================================== --- trunk/examples/f77/x26f.fm4 2011-02-03 08:19:52 UTC (rev 11544) +++ trunk/examples/f77/x26f.fm4 2011-02-04 09:57:49 UTC (rev 11545) @@ -164,8 +164,8 @@ integer symbol_colors(local_nlegend) real*8 symbol_scales(local_nlegend) character*20 symbols(local_nlegend) - integer box_colors(1), box_patterns(1), box_scales(1) - real*8 box_line_widths(1) + integer box_colors(1), box_patterns(1), box_line_widths(1) + real*8 box_scales(1) real*8 legend_width, legend_height c Sanity check. Modified: trunk/examples/f77/x33f.fm4 =================================================================== --- trunk/examples/f77/x33f.fm4 2011-02-03 08:19:52 UTC (rev 11544) +++ trunk/examples/f77/x33f.fm4 2011-02-04 09:57:49 UTC (rev 11545) @@ -156,10 +156,10 @@ do 110 k = 1,16 position = position_options(k) opt = opt_base - text_colors(1) = 1 + mod( k, 8 ) - line_colors(1) = 1 + mod( k, 8 ) - symbol_colors(1) = 1 + mod( k, 8 ) - call write_number( text(1), k ) + text_colors(1) = 1 + mod( k-1, 8 ) + line_colors(1) = 1 + mod( k-1, 8 ) + symbol_colors(1) = 1 + mod( k-1, 8 ) + call write_number( text(1), k-1 ) call pllegend( legend_width, legend_height, position, opt, & 0.05d0, 0.05d0, @@ -197,10 +197,10 @@ symbol_scales(k) = 1.d0 symbol_numbers(k) = 2 symbols(k) = '*' - call write_number( text(k), k ) - text_colors(k) = 1 + mod( k, 8 ) - line_colors(k) = 1 + mod( k, 8 ) - symbol_colors(k) = 1 + mod( k, 8 ) + call write_number( text(k), k-1 ) + text_colors(k) = 1 + mod( k-1, 8 ) + line_colors(k) = 1 + mod( k-1, 8 ) + symbol_colors(k) = 1 + mod( k-1, 8 ) 120 continue c Use monotype fonts so that all legends are the same size. @@ -294,10 +294,6 @@ & line_colors, line_styles, line_widths, & symbol_colors, symbol_scales, symbol_numbers, symbols ) -c -c This causes an access violation? -c - position = PL_POSITION_BOTTOM + PL_POSITION_INSIDE opt = opt_base + PL_LEGEND_ROW_MAJOR x = 0.d0 @@ -349,10 +345,10 @@ symbol_scales(k) = 1.d0 symbol_numbers(k) = 2 symbols(k) = '*' - call write_number( text(k), k ) - text_colors(k) = 1 + mod( k, 8 ) - line_colors(k) = 1 + mod( k, 8 ) - symbol_colors(k) = 1 + mod( k, 8 ) + call write_number( text(k), k-1 ) + text_colors(k) = 1 + mod( k-1, 8 ) + line_colors(k) = 1 + mod( k-1, 8 ) + symbol_colors(k) = 1 + mod( k-1, 8 ) 130 continue c Use monotype fonts so that all legends are the same size. @@ -465,8 +461,8 @@ do 150 i = 1,nlegend opt_array(i) = PL_LEGEND_SYMBOL text(i) = 'Symbol ' // special_symbols(i) - text_colors(i) = i + 1 - symbol_colors(i) = i + 1 + text_colors(i) = i + symbol_colors(i) = i symbol_scales(i) = text_scale symbol_numbers(i) = 4 symbols(i) = special_symbols(i) @@ -490,8 +486,8 @@ do 160 i = 1,nlegend opt_array(i) = PL_LEGEND_SYMBOL call write_text_number( text(i), 'Symbol Number', i + 1 ) - text_colors(i) = i + 1 - symbol_colors(i) = i + 1 + text_colors(i) = i + symbol_colors(i) = i symbol_scales(i) = text_scale symbol_numbers(i) = i + 2 symbols(i) = special_symbols(3) @@ -544,7 +540,7 @@ do 180 i = 1,nlegend opt_array(i) = PL_LEGEND_COLOR_BOX - call write_text_number( text(i), 'Box Pattern', i ) + call write_text_number( text(i), 'Box Pattern', i-1 ) text_colors(i) = 2 box_colors(i) = 2 box_patterns(i) = i - 1 @@ -626,7 +622,7 @@ call write_text_number( text(i), 'Line Style', i ) text_colors(i) = 2 line_colors(i) = 2 - line_styles(i) = i + 1 + line_styles(i) = i line_widths(i) = 1 210 continue @@ -651,7 +647,7 @@ text_colors(i) = 2 line_colors(i) = 2 line_styles(i) = 1 - line_widths(i) = i + 1 + line_widths(i) = i 220 continue opt = opt_base Modified: trunk/examples/f95/x04f.f90 =================================================================== --- trunk/examples/f95/x04f.f90 2011-02-03 08:19:52 UTC (rev 11544) +++ trunk/examples/f95/x04f.f90 2011-02-04 09:57:49 UTC (rev 11545) @@ -73,7 +73,7 @@ ! Plot ampl vs freq. call plcol0(2) call plline(freql,ampl) - call plcol0(1) + call plcol0(2) call plptex(1.6_plflt, -30.0_plflt, 1.0_plflt, -20.0_plflt, 0.5_plflt, & '-20 dB/decade') ! Put labels on. Modified: trunk/examples/f95/x26f.f90 =================================================================== --- trunk/examples/f95/x26f.f90 2011-02-03 08:19:52 UTC (rev 11544) +++ trunk/examples/f95/x26f.f90 2011-02-04 09:57:49 UTC (rev 11545) @@ -1,6 +1,6 @@ ! -*- coding: utf-8; -*- ! -! $Id:$ +! $Id$ ! ! Multi-lingual version of the first page of example 4. ! @@ -74,16 +74,17 @@ use plplot, PI => PL_PI implicit none - integer nolangs - parameter ( nolangs = 2 ) + integer, parameter :: nolangs = 2 + integer, parameter :: nlegend = 2 character*80 x_label(nolangs) character*80 y_label(nolangs) + character*80 legend_text(2,nolangs) character*80 alty_label(nolangs) character*80 title_label(nolangs) character*80 line_label(nolangs) - integer i + integer i, j data (x_label(i) ,i=1,nolangs) / & 'Frequency', & @@ -97,6 +98,11 @@ 'Phase shift (degrees)', & 'Фазовый сдвиг (градусы)'/ + ! Short rearranged versions of y_label and alty_label. + data ((legend_text(j,i), j=1, nlegend), i=1,nolangs) / & + 'Amplitude', 'Phase shift' , & + 'Амплитуда', 'Фазовый сдвиг' / + data (title_label(i) ,i=1,nolangs) / & 'Single Pole Low-Pass Filter', & 'Однополюсный Низко-Частотный Фильтр'/ @@ -117,8 +123,8 @@ ! Make log plots using two different styles. do i = 1,nolangs - call plot1(0, x_label(i), y_label(i), alty_label(i), & - title_label(i), line_label(i)) + call plot1(nlegend, 0, x_label(i), y_label(i), alty_label(i), & + legend_text(:,i), title_label(i), line_label(i)) end do call plend() @@ -130,19 +136,34 @@ ! Log-linear plot. ! -------------------------------------------------------------------------- - subroutine plot1( type, x_label, y_label, alty_label, & - title_label, line_label ) + subroutine plot1( nlegend, type, x_label, y_label, alty_label, & + legend_text, title_label, line_label ) use plplot, PI => PL_PI implicit none - integer type + integer type, nlegend character(*) x_label, y_label, alty_label, title_label, line_label integer i real(kind=plflt) freql(101), ampl(101), phase(101) real(kind=plflt) f0, freq + character(*) legend_text(nlegend) + + integer opt_array(nlegend) + integer text_colors(nlegend) + integer line_colors(nlegend) + integer line_styles(nlegend) + integer line_widths(nlegend) + integer symbol_numbers(nlegend) + integer symbol_colors(nlegend) + real(kind=plflt) symbol_scales(nlegend) + character*20 symbols(nlegend) + integer box_colors(0), box_patterns(0), box_line_widths(0) + real(kind=plflt) box_scales(0) + real(kind=plflt) legend_width, legend_height + call pladv(0) ! Set up data for log plot @@ -156,9 +177,9 @@ end do call plvpor(0.15_plflt, 0.85_plflt, 0.1_plflt, 0.9_plflt) call plwind(-2.0_plflt, 3.0_plflt, -80.0_plflt, 0.0_plflt) - + ! Try different axis and labelling styles. - + call plcol0(1) if ( type .eq. 0 ) then call plbox("bclnst", 0.0_plflt, 0, "bnstv", 0.0_plflt, 0) @@ -166,31 +187,77 @@ if ( type .eq. 1 ) then call plbox("bcfghlnst", 0.0_plflt, 0, "bcghnstv", 0.0_plflt, 0) endif - + ! Plot ampl vs freq - + call plcol0(2) call plline(freql, ampl) - call plcol0(1) + call plcol0(2) call plptex(1.6_plflt, -30.0_plflt, 1.0_plflt, -20.0_plflt, 0.5_plflt, line_label) ! Put labels on - + call plcol0(1) call plmtex("b", 3.2_plflt, 0.5_plflt, 0.5_plflt, x_label) call plmtex("t", 2.0_plflt, 0.5_plflt, 0.5_plflt, title_label) call plcol0(2) call plmtex("l", 5.0_plflt, 0.5_plflt, 0.5_plflt, y_label) - + ! For the gridless case, put phase vs freq on same plot - + if (type .eq. 0) then call plcol0(1) call plwind(-2.0_plflt, 3.0_plflt, -100.0_plflt, 0.0_plflt) call plbox("", 0.0_plflt, 0, "cmstv", 30.0_plflt, 3) call plcol0(3) call plline(freql, phase) + call plstring(freql, phase, '*') call plcol0(3) call plmtex("r", 5.0_plflt, 0.5_plflt, 0.5_plflt, alty_label) endif + + ! Draw a legend + ! First legend entry. + + opt_array(1) = PL_LEGEND_LINE + text_colors(1) = 2 + line_colors(1) = 2 + line_styles(1) = 1 + line_widths(1) = 1 + ! defining this makes the Fortran to C transformation of + ! symbols(1) work on defined values which makes valgrind + ! happier (even if that transformed string is not used inside the + ! C version of pllegend) + symbols(1) = "" + + ! note from the above opt_array the first symbol (and box) indices + ! do not have to be specified + + ! Second legend entry. + + opt_array(2) = PL_LEGEND_LINE + PL_LEGEND_SYMBOL + text_colors(2) = 3 + line_colors(2) = 3 + line_styles(2) = 1 + line_widths(2) = 1 + symbol_colors(2) = 3 + symbol_scales(2) = 1. + symbol_numbers(2) = 4 + symbols(2) = "*" + + ! from the above opt_arrays we can completely ignore everything + ! to do with boxes. + + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + call pllegend( legend_width, legend_height, & + 0, PL_LEGEND_BACKGROUND + PL_LEGEND_BOUNDING_BOX, & + 0.0_plflt, 0.0_plflt, 0.10_plflt, 15, & + 1, 1, 0, 0, & + nlegend, opt_array, & + 1.0_plflt, 1.0_plflt, 2.0_plflt, & + 1.0_plflt, text_colors, legend_text, & + box_colors, box_patterns, box_scales, box_line_widths, & + line_colors, line_styles, line_widths, & + symbol_colors, symbol_scales, symbol_numbers, symbols ) + end subroutine plot1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2011-02-10 20:09:55
|
Revision: 11556 http://plplot.svn.sourceforge.net/plplot/?rev=11556&view=rev Author: airwin Date: 2011-02-10 20:09:47 +0000 (Thu, 10 Feb 2011) Log Message: ----------- Update properties to be consistent with other Fortran examples. Modified Paths: -------------- trunk/examples/f77/x33f.fm4 trunk/examples/f95/x33f.f90 Property Changed: ---------------- trunk/examples/f77/x33f.fm4 trunk/examples/f95/x33f.f90 Modified: trunk/examples/f77/x33f.fm4 =================================================================== --- trunk/examples/f77/x33f.fm4 2011-02-10 19:21:06 UTC (rev 11555) +++ trunk/examples/f77/x33f.fm4 2011-02-10 20:09:47 UTC (rev 11556) @@ -1,889 +1,889 @@ -c -*- coding: utf-8; -*- -c -c $Id: x33c.c 11465 2011-01-10 21:59:30Z andrewross $ -c -c Demonstrate most pllegend capability including unicode symbols. -c -c Copyright (C) 2010 Alan Irwin -c -c This file is part of PLplot. -c -c PLplot is free software; you can redistribute it and/or modify -c it under the terms of the GNU General Library Public License as published -c by the Free Software Foundation; either version 2 of the License, or -c (at your option) any later version. -c -c PLplot is distributed in the hope that it will be useful, -c but WITHOUT ANY WARRANTY; without even the implied warranty of -c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -c GNU Library General Public License for more details. -c -c You should have received a copy of the GNU Library General Public License -c along with PLplot; if not, write to the Free Software -c Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -c -c -c This example designed just for devices (e.g., the cairo-related and -c qt-related devices) where the best choice of glyph is automatically -c selected by the related libraries (pango/cairo or Qt4) for each -c unicode character depending on what system fonts are installed. Of -c course, you must have the appropriate TrueType fonts installed to -c have access to all the required glyphs. - - -c-------------------------------------------------------------------------- -c main -c -c Demonstrate most pllegend capability including unicode symbols. -c -------------------------------------------------------------------------- - - implicit none - - include 'plplot_parameters.h' - - integer MAX_NLEGEND - parameter (MAX_NLEGEND = 7) - - integer i, k - integer opt, position - integer nlegend, nturn - integer opt_array(MAX_NLEGEND) - integer text_colors(MAX_NLEGEND) - integer box_colors(MAX_NLEGEND) - integer box_patterns(MAX_NLEGEND) - real*8 box_scales(MAX_NLEGEND) - integer box_line_widths(MAX_NLEGEND) - integer line_colors(MAX_NLEGEND) - integer line_styles(MAX_NLEGEND) - integer line_widths(MAX_NLEGEND) - integer symbol_numbers(MAX_NLEGEND), symbol_colors(MAX_NLEGEND) - real*8 symbol_scales(MAX_NLEGEND) - character*200 text(MAX_NLEGEND) - character*3 symbols(MAX_NLEGEND) - real*8 legend_width, legend_height, x, y, xstart, ystart - real*8 max_height, text_scale - integer opt_base, nrow, ncolumn - - integer position_options(16) - character*3 special_symbols(5) - - real*8 values_small(2) - real*8 values_uneven(9) - real*8 values_even(9) - - -c Pick 5 arbitrary UTF-8 symbols useful for plotting points (✠✚✱✪✽✺✰✴✦). - data special_symbols / - & '✰', - & '✴', - & '✱', - & '✽', - & '✦' - &/ - - data values_small / 0.0d0, 1.0d0 / - data values_uneven - &/ 0.0d0, 2.0d0, 2.6d0, 3.4d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0 / - data values_even - &/ 0.0d0, 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0 / - - position_options(1) = - & PL_POSITION_LEFT + PL_POSITION_TOP + PL_POSITION_OUTSIDE - position_options(2) = - & PL_POSITION_TOP + PL_POSITION_OUTSIDE - position_options(3) = - & PL_POSITION_RIGHT + PL_POSITION_TOP + PL_POSITION_OUTSIDE - position_options(4) = - & PL_POSITION_RIGHT + PL_POSITION_OUTSIDE - position_options(5) = - & PL_POSITION_RIGHT + PL_POSITION_BOTTOM + PL_POSITION_OUTSIDE - position_options(6) = - & PL_POSITION_BOTTOM + PL_POSITION_OUTSIDE - position_options(7) = - & PL_POSITION_LEFT + PL_POSITION_BOTTOM + PL_POSITION_OUTSIDE - position_options(8) = - & PL_POSITION_LEFT + PL_POSITION_OUTSIDE - position_options(9) = - & PL_POSITION_LEFT + PL_POSITION_TOP + PL_POSITION_INSIDE - position_options(10) = - & PL_POSITION_TOP + PL_POSITION_INSIDE - position_options(11) = - & PL_POSITION_RIGHT + PL_POSITION_TOP + PL_POSITION_INSIDE - position_options(12) = - & PL_POSITION_RIGHT + PL_POSITION_INSIDE - position_options(13) = - & PL_POSITION_RIGHT + PL_POSITION_BOTTOM + PL_POSITION_INSIDE - position_options(14) = - & PL_POSITION_BOTTOM + PL_POSITION_INSIDE - position_options(15) = - & PL_POSITION_LEFT + PL_POSITION_BOTTOM + PL_POSITION_INSIDE - position_options(16) = - & PL_POSITION_LEFT + PL_POSITION_INSIDE - -c Parse and process command line arguments - - call plparseopts(PL_PARSE_FULL) - -c Initialize plplot - call plinit - -c First page illustrating the 16 standard positions. - call pladv( 0 ) - call plvpor( 0.25d0, 0.75d0, 0.25d0, 0.75d0 ) - call plwind( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) - call plbox( 'bc', 0.0d0, 0, 'bc', 0.0d0, 0 ) - call plsfont( PL_FCI_SANS, -1, -1 ) - call plmtex( 't', 8.0d0, 0.5d0, 0.5d0, - & 'The 16 standard legend positions with' ) - call plmtex( 't', 6.0d0, 0.5d0, 0.5d0, - & 'the same (0.05) offset in x and y' ) - - nlegend = 1 -c Only specify legend data that are required according to the -c value of opt_array for that entry. - opt_base = PL_LEGEND_BACKGROUND + PL_LEGEND_BOUNDING_BOX - opt_array(1) = PL_LEGEND_LINE + PL_LEGEND_SYMBOL - line_styles(1) = 1 - line_widths(1) = 1 - symbol_scales(1) = 1.d0 - symbol_numbers(1) = 4 - symbols(1) = '*' - -c Use monotype fonts so that all legends are the same size. - call plsfont( PL_FCI_MONO, -1, -1 ) - call plscol0a( 15, 32, 32, 32, 0.70d0 ) - - do 110 k = 1,16 - position = position_options(k) - opt = opt_base - text_colors(1) = 1 + mod( k-1, 8 ) - line_colors(1) = 1 + mod( k-1, 8 ) - symbol_colors(1) = 1 + mod( k-1, 8 ) - call write_number( text(1), k-1 ) - - call pllegend( legend_width, legend_height, position, opt, - & 0.05d0, 0.05d0, - & 0.1d0, 15, 1, 1, 0, 0, - & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, - & 1.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - 110 continue - -c Second page illustrating effect of nrow, ncolumn for the same legend -c data. - - call pladv( 0 ) - call plvpor( 0.25d0, 0.75d0, 0.25d0, 0.75d0 ) - call plwind( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) - call plbox( 'bc', 0.0d0, 0, 'bc', 0.0d0, 0 ) - call plsfont( PL_FCI_SANS, -1, -1 ) - call plmtex( 't', 8.0d0, 0.5d0, 0.5d0, - & 'The effect of nrow, ncolumn, PL_LEGEND_ROW_MAJOR,' ) - call plmtex( 't', 6.0d0, 0.5d0, 0.5d0, - & 'and position for the same legend data' ) - - nlegend = 7 - -c Only specify legend data that are required according to the -c value of opt_array for that entry. - - opt_base = PL_LEGEND_BACKGROUND + PL_LEGEND_BOUNDING_BOX - do 120 k = 1,nlegend - opt_array(k) = PL_LEGEND_LINE + PL_LEGEND_SYMBOL - line_styles(k) = 1 - line_widths(k) = 1 - symbol_scales(k) = 1.d0 - symbol_numbers(k) = 2 - symbols(k) = '*' - call write_number( text(k), k-1 ) - text_colors(k) = 1 + mod( k-1, 8 ) - line_colors(k) = 1 + mod( k-1, 8 ) - symbol_colors(k) = 1 + mod( k-1, 8 ) - 120 continue - -c Use monotype fonts so that all legends are the same size. - - call plsfont( PL_FCI_MONO, -1, -1 ) - call plscol0a( 15, 32, 32, 32, 0.70d0 ) - - position = PL_POSITION_TOP + PL_POSITION_OUTSIDE - opt = opt_base - x = 0.d0 - y = 0.1d0 - nrow = 1 - ncolumn = nlegend - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.05d0, 15, 1, 1, nrow, ncolumn, - & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, - & 1.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - - position = PL_POSITION_BOTTOM + PL_POSITION_OUTSIDE - opt = opt_base - x = 0.d0 - y = 0.1d0 - nrow = 1 - ncolumn = nlegend - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.05d0, 15, 1, 1, nrow, ncolumn, - & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, - & 1.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - - position = PL_POSITION_LEFT + PL_POSITION_OUTSIDE - opt = opt_base - x = 0.1d0 - y = 0.d0 - nrow = nlegend - ncolumn = 1 - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.05d0, 15, 1, 1, nrow, ncolumn, - & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, - & 1.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - - position = PL_POSITION_RIGHT + PL_POSITION_OUTSIDE - opt = opt_base - x = 0.1d0 - y = 0.d0 - nrow = nlegend - ncolumn = 1 - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.05d0, 15, 1, 1, nrow, ncolumn, - & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, - & 1.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - - position = PL_POSITION_LEFT + PL_POSITION_TOP + - & PL_POSITION_INSIDE - opt = opt_base - x = 0.d0 - y = 0.d0 - nrow = 6 - ncolumn = 2 - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.05d0, 15, 1, 1, nrow, ncolumn, - & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, - & 1.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - - position = PL_POSITION_RIGHT + PL_POSITION_TOP + - & PL_POSITION_INSIDE - opt = opt_base + PL_LEGEND_ROW_MAJOR - x = 0.d0 - y = 0.d0 - nrow = 6 - ncolumn = 2 - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.05d0, 15, 1, 1, nrow, ncolumn, - & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, - & 1.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - - position = PL_POSITION_BOTTOM + PL_POSITION_INSIDE - opt = opt_base + PL_LEGEND_ROW_MAJOR - x = 0.d0 - y = 0.d0 - nrow = 3 - ncolumn = 3 - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.05d0, 15, 1, 1, nrow, ncolumn, - & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, - & 1.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - -c Third page demonstrating legend alignment - - call pladv( 0 ) - call plvpor( 0.d0, 1.d0, 0.d0, 1.d0 ) - call plwind( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) - call plsfont( PL_FCI_SANS, -1, -1 ) - call plmtex( 't', -2.0d0, 0.5d0, 0.5d0, - & 'Demonstrate legend alignment' ) - - x = 0.1d0 - y = 0.1d0 - nturn = 5 - nlegend = 0 - position = PL_POSITION_TOP + PL_POSITION_LEFT - opt_base = PL_LEGEND_BACKGROUND + PL_LEGEND_BOUNDING_BOX - opt = opt_base - do 140 i = 1,9 - -c Set up legend arrays with the correct size, type. - - if ( i .le. nturn ) then - nlegend = nlegend + 1 - else - nlegend = nlegend - 1 - endif - nlegend = max( 1, nlegend ) - -c nly specify legend data that are required according to the -c value of opt_array for that entry. - - do 130 k = 1,nlegend - opt_array(k) = PL_LEGEND_LINE + PL_LEGEND_SYMBOL - line_styles(k) = 1 - line_widths(k) = 1 - symbol_scales(k) = 1.d0 - symbol_numbers(k) = 2 - symbols(k) = '*' - call write_number( text(k), k-1 ) - text_colors(k) = 1 + mod( k-1, 8 ) - line_colors(k) = 1 + mod( k-1, 8 ) - symbol_colors(k) = 1 + mod( k-1, 8 ) - 130 continue - -c Use monotype fonts so that all legends are the same size. - - call plsfont( PL_FCI_MONO, -1, -1 ) - call plscol0a( 15, 32, 32, 32, 0.70d0 ) - - nrow = MIN( 3, nlegend ) - ncolumn = 0 - - call pllegend( legend_width, legend_height, position, opt, - & x, y, - & 0.025d0, 15, 1, 1, nrow, ncolumn, - & nlegend, opt_array, 1.0d0, 1.0d0, 1.5d0, - & 1.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - - if ( i .eq. nturn ) then - position = PL_POSITION_TOP + PL_POSITION_RIGHT - opt = opt_base - x = 1.d0 - x - y = y + legend_height - else - x = x + legend_width - y = y + legend_height - endif - 140 continue - -c Fourth page illustrating various kinds of legends - - max_height = 0.d0 - xstart = 0.0d0 - ystart = 0.1d0 - x = xstart - y = ystart - text_scale = 0.90d0 - call pladv( 0 ) - call plvpor( 0.0d0, 1.d0, 0.0d0, 0.90d0 ) - call plwind( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) -c call plbox('bc', 0.0, 0, 'bc', 0.0d0, 0) - call plsfont( PL_FCI_SANS, -1, -1 ) - call plmtex( 't', 2.0d0, 0.5d0, 0.5d0, - & 'Demonstrate Various Kinds of Legends' ) - - nlegend = 5 - -c Only specify legend data that are required according to the -c value of opt_array for that entry. - - position = PL_POSITION_LEFT + PL_POSITION_TOP - opt_base = PL_LEGEND_BACKGROUND + PL_LEGEND_BOUNDING_BOX + - & PL_LEGEND_TEXT_LEFT - -c Set up None, Box, Line, Symbol, and Line & Symbol legend entries. - - opt_array(1) = PL_LEGEND_NONE - text(1) = 'None' - text_colors(1) = 1 - - opt_array(2) = PL_LEGEND_COLOR_BOX - text(2) = 'Box' - text_colors(2) = 2 - box_colors(2) = 2 - box_patterns(2) = 0 - box_scales(2) = 0.8d0 - box_line_widths(2) = 1 - - opt_array(3) = PL_LEGEND_LINE - text(3) = 'Line' - text_colors(3) = 3 - line_colors(3) = 3 - line_styles(3) = 1 - line_widths(3) = 1 - - opt_array(4) = PL_LEGEND_SYMBOL - text(4) = 'Symbol' - text_colors(4) = 4 - symbol_colors(4) = 4 - symbol_scales(4) = text_scale - symbol_numbers(4) = 4 - symbols(4) = special_symbols(3) - - opt_array(5) = PL_LEGEND_SYMBOL + PL_LEGEND_LINE - text(5) = 'L & S' - text_colors(5) = 5 - line_colors(5) = 5 - line_styles(5) = 1 - line_widths(5) = 1 - symbol_colors(5) = 5 - symbol_scales(5) = text_scale - symbol_numbers(5) = 4 - symbols(5) = special_symbols(3) - - opt = opt_base - call plscol0a( 15, 32, 32, 32, 0.70d0 ) - - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.1d0, 15, 1, 1, 0, 0, - & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, - & 0.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - max_height = max( max_height, legend_height ) - -c Set up symbol legend entries with various symbols. - - do 150 i = 1,nlegend - opt_array(i) = PL_LEGEND_SYMBOL - text(i) = 'Symbol ' // special_symbols(i) - text_colors(i) = i - symbol_colors(i) = i - symbol_scales(i) = text_scale - symbol_numbers(i) = 4 - symbols(i) = special_symbols(i) - 150 continue - - opt = opt_base - x = x + legend_width - call plscol0a( 15, 32, 32, 32, 0.70d0 ) - - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.1d0, 15, 1, 1, 0, 0, - & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, - & 0.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - max_height = max( max_height, legend_height ) - -c Set up symbol legend entries with various numbers of symbols. - - do 160 i = 1,nlegend - opt_array(i) = PL_LEGEND_SYMBOL - call write_text_number( text(i), 'Symbol Number', i + 1 ) - text_colors(i) = i - symbol_colors(i) = i - symbol_scales(i) = text_scale - symbol_numbers(i) = i + 1 - symbols(i) = special_symbols(3) - 160 continue - - opt = opt_base - x = x + legend_width - call plscol0a( 15, 32, 32, 32, 0.70d0 ) - - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.1d0, 15, 1, 1, 0, 0, - & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, - & 0.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - max_height = max( max_height, legend_height ) - -c Set up box legend entries with various colours. - - do 170 i = 1,nlegend - opt_array(i) = PL_LEGEND_COLOR_BOX - call write_text_number( text(i), 'Box Color', i ) - text_colors(i) = i - box_colors(i) = i - box_patterns(i) = 0 - box_scales(i) = 0.8d0 - box_line_widths(i) = 1 - 170 continue - - opt = opt_base - -c Use new origin - - x = xstart - y = y + max_height - max_height = 0.d0 - call plscol0a( 15, 32, 32, 32, 0.70d0) - - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.1d0, 15, 1, 1, 0, 0, - & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, - & 0.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - max_height = max( max_height, legend_height ) - -c Set up box legend entries with various patterns. - - do 180 i = 1,nlegend - opt_array(i) = PL_LEGEND_COLOR_BOX - call write_text_number( text(i), 'Box Pattern', i-1 ) - text_colors(i) = 2 - box_colors(i) = 2 - box_patterns(i) = i - 1 - box_scales(i) = 0.8d0 - box_line_widths(i) = 1 - 180 continue - - opt = opt_base - x = x + legend_width - call plscol0a( 15, 32, 32, 32, 0.70d0 ) - - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.1d0, 15, 1, 1, 0, 0, - & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, - & 0.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - max_height = max( max_height, legend_height ) - -c Set up box legend entries with various box pattern line widths. - - do 190 i = 1,nlegend - opt_array(i) = PL_LEGEND_COLOR_BOX - call write_text_number( text(i), 'Box Line Width', i ) - text_colors(i) = 2 - box_colors(i) = 2 - box_patterns(i) = 3 - box_scales(i) = 0.8d0 - box_line_widths(i) = i - 190 continue - - opt = opt_base - x = x + legend_width - call plscol0a( 15, 32, 32, 32, 0.70d0 ) - - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.1d0, 15, 1, 1, 0, 0, - & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, - & 0.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - max_height = max( max_height, legend_height ) - -c Set up line legend entries with various colours. - - do 200 i =1,nlegend - opt_array(i) = PL_LEGEND_LINE - call write_text_number( text(i), 'Line Color', i ) - text_colors(i) = i - line_colors(i) = i - line_styles(i) = 1 - line_widths(i) = 1 - 200 continue - - opt = opt_base - -c Use new origin - - x = xstart - y = y + max_height - max_height = 0.d0 - call plscol0a( 15, 32, 32, 32, 0.70d0 ) - - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.1d0, 15, 1, 1, 0, 0, - & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, - & 0.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - max_height = max( max_height, legend_height ) - -c Set up line legend entries with various styles. - - do 210 i = 1,nlegend - opt_array(i) = PL_LEGEND_LINE - call write_text_number( text(i), 'Line Style', i ) - text_colors(i) = 2 - line_colors(i) = 2 - line_styles(i) = i - line_widths(i) = 1 - 210 continue - - opt = opt_base - x = x + legend_width - call plscol0a( 15, 32, 32, 32, 0.70d0 ) - - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.1d0, 15, 1, 1, 0, 0, - & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, - & 0.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - max_height = max( max_height, legend_height ) - -c Set up line legend entries with various widths. - - do 220 i =1,nlegend - opt_array(i) = PL_LEGEND_LINE - call write_text_number( text(i), 'Line Width', i ) - text_colors(i) = 2 - line_colors(i) = 2 - line_styles(i) = 1 - line_widths(i) = i - 220 continue - - opt = opt_base - x = x + legend_width - call plscol0a( 15, 32, 32, 32, 0.70d0 ) - - call pllegend( legend_width, legend_height, position, opt, x, y, - & 0.1d0, 15, 1, 1, 0, 0, - & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, - & 0.d0, text_colors, text, - & box_colors, box_patterns, box_scales, box_line_widths, - & line_colors, line_styles, line_widths, - & symbol_colors, symbol_scales, symbol_numbers, symbols ) - max_height = max( max_height, legend_height ) - -c Color bar examples - -c -c Note: commented until plcolorbar is ready! -c -c call plcolorbar_example_1( PL_COLORBAR_IMAGE, 0.0d0, 0, 2, -c & values_small, 'Image Color Bars' ) -c call plcolorbar_example_2( PL_COLORBAR_IMAGE, 0.0d0, 0, 2, -c & values_small, 'Image Color Bars' ) -c call plcolorbar_example_1( -c & PL_COLORBAR_SHADE + PL_COLORBAR_SHADE_LABEL, -c & 0.0d0, 0, 9, values_uneven, -c & 'Shade Color Bars - Uneven Steps' ) -c call plcolorbar_example_2( PL_COLORBAR_SHADE, 3.0d0, 3, 9, -c & values_even, 'Shade Color Bars - Even Steps' ) -c call plcolorbar_example_1( PL_COLORBAR_GRADIENT, 0.5d0, 5, 2, -c & values_small, 'Gradient Color Bars' ) -c call plcolorbar_example_2( PL_COLORBAR_GRADIENT, 0.5d0, 5, 2, -c & values_small, 'Gradient Color Bars' ) - - call plend() - end - -c -c Auxiliary routines -c - subroutine write_number( text, number ) - - implicit none - - character(*) text - integer number - - write( text, '(i2)') number - if ( text(1:1) .eq. ' ' ) text(1:1) = '0' - end - - subroutine write_text_number( text, string, number ) - - implicit none - - character(*) text - character(*) string - integer number - - if ( number .lt. 10 ) then - write( text, '(a,1x,i1)' ) string, number - else - write( text, '(a,1x,i2)' ) string, number - endif - end - -c Color bar routines -c -c subroutine plcolorbar_example_1( bar_type, ticks, sub_ticks, n, -c & values, title ) -c -c implicit none -c -c include 'plplot_parameters.h' -c -c integer bar_type, position -c real*8 ticks -c integer sub_ticks -c integer n -c real*8 values(*) -c character(*) title -c -c -c FORTRAN 77: array fixed -c -c real*8 colors(20) -c real*8 color_step -c integer i -c integer opt -c character(10) axis_opts_1, axis_opts_2 -c -c call pladv( 0 ) -c -c Setup color palette 1 -c call plspal1( 'cmap1_blue_red.pal', 1 ) -c -c color_step = 1.0d0 / ( n - 1 ) -c do 110 i = 1,n -c colors(i) = 0.0d0 + color_step * i -c 110 continue -c -c position = PL_POSITION_LEFT -c opt = bar_type + PL_COLORBAR_LABEL_LEFT + -c & PL_COLORBAR_CAP_HIGH -c -c if ( mod( bar_type, 2*PL_COLORBAR_SHADE_LABEL ) / -c & PL_COLORBAR_SHADE_LABEL .eq. 1 ) then -c axis_opts_1 = 'iv' -c axis_opts_2 = 'i' -c else -c if ( sub_ticks .ne. 0 ) then -c axis_opts_1 = 'stv' -c axis_opts_2 = 'st' -c else -c axis_opts_1 = 'tv' -c axis_opts_2 = 't' -c endif -c endif -c -c call plcolorbar( opt, 0.1d0, 0.1d0, 0.5d0, 0.1d0, -c & ticks, sub_ticks, -c & axis_opts_1, 'Test label - Left, High Cap', -c & n, colors, values ) -c -c position = PL_POSITION_RIGHT -c opt = bar_type + PL_COLORBAR_LABEL_RIGHT + -c & PL_COLORBAR_CAP_LOW -c -c call plcolorbar( opt, 0.1d0, 0.4d0, 0.5d0, 0.1d0, -c & ticks, sub_ticks, -c & axis_opts_1, 'Test label - Right, Low Cap', -c & n, colors, values ) -c -c position = PL_POSITION_TOP -c opt = bar_type + PL_COLORBAR_LABEL_TOP + -c & PL_COLORBAR_CAP_HIGH -c -c call plcolorbar( opt, 0.1d0, 0.1d0, 0.5d0, 0.1d0, -c & ticks, sub_ticks, -c & axis_opts_2, 'Test label - Upper, High Cap', -c & n, colors, values ) -c -c position = PL_POSITION_TOP -c opt = bar_type + PL_COLORBAR_LABEL_BOTTOM + -c & PL_COLORBAR_CAP_LOW -c -c call plcolorbar( opt, 0.4d0, 0.1d0, 0.5d0, 0.1d0, -c & ticks, sub_ticks, -c & axis_opts_2, 'Test label - Lower, Low Cap', -c & n, colors, values ) -c -c call plvpor( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) -c call plwind( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) -c call plptex( 0.5d0, 0.5d0, 0.0d0, 0.0d0, 0.5d0, title ) -c end -c -c subroutine plcolorbar_example_2( bar_type, ticks, sub_ticks, n, -c & values, title ) -c -c implicit none -c -c include 'plplot_parameters.h' -c -c integer bar_type, position -c real*8 ticks -c integer sub_ticks -c integer n -c real*8 values(*) -c character(*) title -c -c real*8 colors(20) -c integer i -c real*8 color_step -c integer opt -c character(10) axis_opts_1, axis_opts_2 -c -c call pladv( 0 ) -c Setup color palette 1 -c call plspal1( 'cmap1_blue_yellow.pal', 1 ) -c -c color_step = 1.0d0 / ( n - 1 ) -c do 110 i = 1,n -c colors(i) = 0.0d0 + color_step * i -c 110 continue -c -c position = PL_POSITION_LEFT -c opt = bar_type + PL_COLORBAR_LABEL_LEFT + -c & PL_COLORBAR_CAP_LOW -c -c if ( bar_type .eq. PL_COLORBAR_SHADE_LABEL ) then -c axis_opts_1 = '' -c axis_opts_2 = '' -c else -c if ( sub_ticks .ne. 0 ) then -c axis_opts_1 = 'stv' -c axis_opts_2 = 'st' -c else -c axis_opts_1 = 'tv' -c axis_opts_2 = 't' -c endif -c endif -c -c call plcolorbar( opt, 0.1d0, 0.1d0, 0.5d0, 0.1d0, -c & ticks, sub_ticks, -c & axis_opts_1, 'Test label - Left, Low Cap', -c & n, colors, values ) -c -c position = PL_POSITION_RIGHT -c opt = bar_type + PL_COLORBAR_LABEL_RIGHT + -c & PL_COLORBAR_CAP_HIGH -c -c call plcolorbar( opt, 0.1d0, 0.4d0, 0.5d0, 0.1d0, -c & ticks, sub_ticks, -c & axis_opts_1, 'Test label - Right, High Cap', -c & n, colors, values ) -c -c position = PL_POSITION_TOP -c opt = bar_type + PL_COLORBAR_LABEL_TOP + -c & PL_COLORBAR_CAP_LOW -c -c call plcolorbar( opt, 0.1d0, 0.1d0, 0.5d0, 0.1d0, -c & ticks, sub_ticks, -c & axis_opts_2, 'Test label - Upper, Low Cap', -c & n, colors, values ) -c -c position = PL_POSITION_BOTTOM -c opt = bar_type + PL_COLORBAR_LABEL_BOTTOM + -c & PL_COLORBAR_CAP_HIGH -c -c call plcolorbar( opt, 0.4d0, 0.1d0, 0.5d0, 0.1d0, -c & ticks, sub_ticks, -c & axis_opts_2, 'Test label - Lower, High Cap', -c & n, colors, values ) -c -c call plvpor( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) -c call plwind( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) -c call plptex( 0.5d0, 0.5d0, 0.0d0, 0.0d0, 0.5d0, title ) -c end +c -*- coding: utf-8; -*- +c +c $Id$ +c +c Demonstrate most pllegend capability including unicode symbols. +c +c Copyright (C) 2010 Alan Irwin +c +c This file is part of PLplot. +c +c PLplot is free software; you can redistribute it and/or modify +c it under the terms of the GNU General Library Public License as published +c by the Free Software Foundation; either version 2 of the License, or +c (at your option) any later version. +c +c PLplot is distributed in the hope that it will be useful, +c but WITHOUT ANY WARRANTY; without even the implied warranty of +c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +c GNU Library General Public License for more details. +c +c You should have received a copy of the GNU Library General Public License +c along with PLplot; if not, write to the Free Software +c Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +c +c +c This example designed just for devices (e.g., the cairo-related and +c qt-related devices) where the best choice of glyph is automatically +c selected by the related libraries (pango/cairo or Qt4) for each +c unicode character depending on what system fonts are installed. Of +c course, you must have the appropriate TrueType fonts installed to +c have access to all the required glyphs. + + +c-------------------------------------------------------------------------- +c main +c +c Demonstrate most pllegend capability including unicode symbols. +c -------------------------------------------------------------------------- + + implicit none + + include 'plplot_parameters.h' + + integer MAX_NLEGEND + parameter (MAX_NLEGEND = 7) + + integer i, k + integer opt, position + integer nlegend, nturn + integer opt_array(MAX_NLEGEND) + integer text_colors(MAX_NLEGEND) + integer box_colors(MAX_NLEGEND) + integer box_patterns(MAX_NLEGEND) + real*8 box_scales(MAX_NLEGEND) + integer box_line_widths(MAX_NLEGEND) + integer line_colors(MAX_NLEGEND) + integer line_styles(MAX_NLEGEND) + integer line_widths(MAX_NLEGEND) + integer symbol_numbers(MAX_NLEGEND), symbol_colors(MAX_NLEGEND) + real*8 symbol_scales(MAX_NLEGEND) + character*200 text(MAX_NLEGEND) + character*3 symbols(MAX_NLEGEND) + real*8 legend_width, legend_height, x, y, xstart, ystart + real*8 max_height, text_scale + integer opt_base, nrow, ncolumn + + integer position_options(16) + character*3 special_symbols(5) + + real*8 values_small(2) + real*8 values_uneven(9) + real*8 values_even(9) + + +c Pick 5 arbitrary UTF-8 symbols useful for plotting points (✠✚✱✪✽✺✰✴✦). + data special_symbols / + & '✰', + & '✴', + & '✱', + & '✽', + & '✦' + &/ + + data values_small / 0.0d0, 1.0d0 / + data values_uneven + &/ 0.0d0, 2.0d0, 2.6d0, 3.4d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0 / + data values_even + &/ 0.0d0, 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0 / + + position_options(1) = + & PL_POSITION_LEFT + PL_POSITION_TOP + PL_POSITION_OUTSIDE + position_options(2) = + & PL_POSITION_TOP + PL_POSITION_OUTSIDE + position_options(3) = + & PL_POSITION_RIGHT + PL_POSITION_TOP + PL_POSITION_OUTSIDE + position_options(4) = + & PL_POSITION_RIGHT + PL_POSITION_OUTSIDE + position_options(5) = + & PL_POSITION_RIGHT + PL_POSITION_BOTTOM + PL_POSITION_OUTSIDE + position_options(6) = + & PL_POSITION_BOTTOM + PL_POSITION_OUTSIDE + position_options(7) = + & PL_POSITION_LEFT + PL_POSITION_BOTTOM + PL_POSITION_OUTSIDE + position_options(8) = + & PL_POSITION_LEFT + PL_POSITION_OUTSIDE + position_options(9) = + & PL_POSITION_LEFT + PL_POSITION_TOP + PL_POSITION_INSIDE + position_options(10) = + & PL_POSITION_TOP + PL_POSITION_INSIDE + position_options(11) = + & PL_POSITION_RIGHT + PL_POSITION_TOP + PL_POSITION_INSIDE + position_options(12) = + & PL_POSITION_RIGHT + PL_POSITION_INSIDE + position_options(13) = + & PL_POSITION_RIGHT + PL_POSITION_BOTTOM + PL_POSITION_INSIDE + position_options(14) = + & PL_POSITION_BOTTOM + PL_POSITION_INSIDE + position_options(15) = + & PL_POSITION_LEFT + PL_POSITION_BOTTOM + PL_POSITION_INSIDE + position_options(16) = + & PL_POSITION_LEFT + PL_POSITION_INSIDE + +c Parse and process command line arguments + + call plparseopts(PL_PARSE_FULL) + +c Initialize plplot + call plinit + +c First page illustrating the 16 standard positions. + call pladv( 0 ) + call plvpor( 0.25d0, 0.75d0, 0.25d0, 0.75d0 ) + call plwind( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) + call plbox( 'bc', 0.0d0, 0, 'bc', 0.0d0, 0 ) + call plsfont( PL_FCI_SANS, -1, -1 ) + call plmtex( 't', 8.0d0, 0.5d0, 0.5d0, + & 'The 16 standard legend positions with' ) + call plmtex( 't', 6.0d0, 0.5d0, 0.5d0, + & 'the same (0.05) offset in x and y' ) + + nlegend = 1 +c Only specify legend data that are required according to the +c value of opt_array for that entry. + opt_base = PL_LEGEND_BACKGROUND + PL_LEGEND_BOUNDING_BOX + opt_array(1) = PL_LEGEND_LINE + PL_LEGEND_SYMBOL + line_styles(1) = 1 + line_widths(1) = 1 + symbol_scales(1) = 1.d0 + symbol_numbers(1) = 4 + symbols(1) = '*' + +c Use monotype fonts so that all legends are the same size. + call plsfont( PL_FCI_MONO, -1, -1 ) + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + + do 110 k = 1,16 + position = position_options(k) + opt = opt_base + text_colors(1) = 1 + mod( k-1, 8 ) + line_colors(1) = 1 + mod( k-1, 8 ) + symbol_colors(1) = 1 + mod( k-1, 8 ) + call write_number( text(1), k-1 ) + + call pllegend( legend_width, legend_height, position, opt, + & 0.05d0, 0.05d0, + & 0.1d0, 15, 1, 1, 0, 0, + & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, + & 1.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + 110 continue + +c Second page illustrating effect of nrow, ncolumn for the same legend +c data. + + call pladv( 0 ) + call plvpor( 0.25d0, 0.75d0, 0.25d0, 0.75d0 ) + call plwind( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) + call plbox( 'bc', 0.0d0, 0, 'bc', 0.0d0, 0 ) + call plsfont( PL_FCI_SANS, -1, -1 ) + call plmtex( 't', 8.0d0, 0.5d0, 0.5d0, + & 'The effect of nrow, ncolumn, PL_LEGEND_ROW_MAJOR,' ) + call plmtex( 't', 6.0d0, 0.5d0, 0.5d0, + & 'and position for the same legend data' ) + + nlegend = 7 + +c Only specify legend data that are required according to the +c value of opt_array for that entry. + + opt_base = PL_LEGEND_BACKGROUND + PL_LEGEND_BOUNDING_BOX + do 120 k = 1,nlegend + opt_array(k) = PL_LEGEND_LINE + PL_LEGEND_SYMBOL + line_styles(k) = 1 + line_widths(k) = 1 + symbol_scales(k) = 1.d0 + symbol_numbers(k) = 2 + symbols(k) = '*' + call write_number( text(k), k-1 ) + text_colors(k) = 1 + mod( k-1, 8 ) + line_colors(k) = 1 + mod( k-1, 8 ) + symbol_colors(k) = 1 + mod( k-1, 8 ) + 120 continue + +c Use monotype fonts so that all legends are the same size. + + call plsfont( PL_FCI_MONO, -1, -1 ) + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + + position = PL_POSITION_TOP + PL_POSITION_OUTSIDE + opt = opt_base + x = 0.d0 + y = 0.1d0 + nrow = 1 + ncolumn = nlegend + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.05d0, 15, 1, 1, nrow, ncolumn, + & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, + & 1.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + + position = PL_POSITION_BOTTOM + PL_POSITION_OUTSIDE + opt = opt_base + x = 0.d0 + y = 0.1d0 + nrow = 1 + ncolumn = nlegend + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.05d0, 15, 1, 1, nrow, ncolumn, + & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, + & 1.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + + position = PL_POSITION_LEFT + PL_POSITION_OUTSIDE + opt = opt_base + x = 0.1d0 + y = 0.d0 + nrow = nlegend + ncolumn = 1 + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.05d0, 15, 1, 1, nrow, ncolumn, + & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, + & 1.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + + position = PL_POSITION_RIGHT + PL_POSITION_OUTSIDE + opt = opt_base + x = 0.1d0 + y = 0.d0 + nrow = nlegend + ncolumn = 1 + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.05d0, 15, 1, 1, nrow, ncolumn, + & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, + & 1.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + + position = PL_POSITION_LEFT + PL_POSITION_TOP + + & PL_POSITION_INSIDE + opt = opt_base + x = 0.d0 + y = 0.d0 + nrow = 6 + ncolumn = 2 + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.05d0, 15, 1, 1, nrow, ncolumn, + & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, + & 1.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + + position = PL_POSITION_RIGHT + PL_POSITION_TOP + + & PL_POSITION_INSIDE + opt = opt_base + PL_LEGEND_ROW_MAJOR + x = 0.d0 + y = 0.d0 + nrow = 6 + ncolumn = 2 + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.05d0, 15, 1, 1, nrow, ncolumn, + & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, + & 1.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + + position = PL_POSITION_BOTTOM + PL_POSITION_INSIDE + opt = opt_base + PL_LEGEND_ROW_MAJOR + x = 0.d0 + y = 0.d0 + nrow = 3 + ncolumn = 3 + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.05d0, 15, 1, 1, nrow, ncolumn, + & nlegend, opt_array, 1.0d0, 1.0d0, 2.0d0, + & 1.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + +c Third page demonstrating legend alignment + + call pladv( 0 ) + call plvpor( 0.d0, 1.d0, 0.d0, 1.d0 ) + call plwind( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) + call plsfont( PL_FCI_SANS, -1, -1 ) + call plmtex( 't', -2.0d0, 0.5d0, 0.5d0, + & 'Demonstrate legend alignment' ) + + x = 0.1d0 + y = 0.1d0 + nturn = 5 + nlegend = 0 + position = PL_POSITION_TOP + PL_POSITION_LEFT + opt_base = PL_LEGEND_BACKGROUND + PL_LEGEND_BOUNDING_BOX + opt = opt_base + do 140 i = 1,9 + +c Set up legend arrays with the correct size, type. + + if ( i .le. nturn ) then + nlegend = nlegend + 1 + else + nlegend = nlegend - 1 + endif + nlegend = max( 1, nlegend ) + +c nly specify legend data that are required according to the +c value of opt_array for that entry. + + do 130 k = 1,nlegend + opt_array(k) = PL_LEGEND_LINE + PL_LEGEND_SYMBOL + line_styles(k) = 1 + line_widths(k) = 1 + symbol_scales(k) = 1.d0 + symbol_numbers(k) = 2 + symbols(k) = '*' + call write_number( text(k), k-1 ) + text_colors(k) = 1 + mod( k-1, 8 ) + line_colors(k) = 1 + mod( k-1, 8 ) + symbol_colors(k) = 1 + mod( k-1, 8 ) + 130 continue + +c Use monotype fonts so that all legends are the same size. + + call plsfont( PL_FCI_MONO, -1, -1 ) + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + + nrow = MIN( 3, nlegend ) + ncolumn = 0 + + call pllegend( legend_width, legend_height, position, opt, + & x, y, + & 0.025d0, 15, 1, 1, nrow, ncolumn, + & nlegend, opt_array, 1.0d0, 1.0d0, 1.5d0, + & 1.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + + if ( i .eq. nturn ) then + position = PL_POSITION_TOP + PL_POSITION_RIGHT + opt = opt_base + x = 1.d0 - x + y = y + legend_height + else + x = x + legend_width + y = y + legend_height + endif + 140 continue + +c Fourth page illustrating various kinds of legends + + max_height = 0.d0 + xstart = 0.0d0 + ystart = 0.1d0 + x = xstart + y = ystart + text_scale = 0.90d0 + call pladv( 0 ) + call plvpor( 0.0d0, 1.d0, 0.0d0, 0.90d0 ) + call plwind( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) +c call plbox('bc', 0.0, 0, 'bc', 0.0d0, 0) + call plsfont( PL_FCI_SANS, -1, -1 ) + call plmtex( 't', 2.0d0, 0.5d0, 0.5d0, + & 'Demonstrate Various Kinds of Legends' ) + + nlegend = 5 + +c Only specify legend data that are required according to the +c value of opt_array for that entry. + + position = PL_POSITION_LEFT + PL_POSITION_TOP + opt_base = PL_LEGEND_BACKGROUND + PL_LEGEND_BOUNDING_BOX + + & PL_LEGEND_TEXT_LEFT + +c Set up None, Box, Line, Symbol, and Line & Symbol legend entries. + + opt_array(1) = PL_LEGEND_NONE + text(1) = 'None' + text_colors(1) = 1 + + opt_array(2) = PL_LEGEND_COLOR_BOX + text(2) = 'Box' + text_colors(2) = 2 + box_colors(2) = 2 + box_patterns(2) = 0 + box_scales(2) = 0.8d0 + box_line_widths(2) = 1 + + opt_array(3) = PL_LEGEND_LINE + text(3) = 'Line' + text_colors(3) = 3 + line_colors(3) = 3 + line_styles(3) = 1 + line_widths(3) = 1 + + opt_array(4) = PL_LEGEND_SYMBOL + text(4) = 'Symbol' + text_colors(4) = 4 + symbol_colors(4) = 4 + symbol_scales(4) = text_scale + symbol_numbers(4) = 4 + symbols(4) = special_symbols(3) + + opt_array(5) = PL_LEGEND_SYMBOL + PL_LEGEND_LINE + text(5) = 'L & S' + text_colors(5) = 5 + line_colors(5) = 5 + line_styles(5) = 1 + line_widths(5) = 1 + symbol_colors(5) = 5 + symbol_scales(5) = text_scale + symbol_numbers(5) = 4 + symbols(5) = special_symbols(3) + + opt = opt_base + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.1d0, 15, 1, 1, 0, 0, + & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, + & 0.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + max_height = max( max_height, legend_height ) + +c Set up symbol legend entries with various symbols. + + do 150 i = 1,nlegend + opt_array(i) = PL_LEGEND_SYMBOL + text(i) = 'Symbol ' // special_symbols(i) + text_colors(i) = i + symbol_colors(i) = i + symbol_scales(i) = text_scale + symbol_numbers(i) = 4 + symbols(i) = special_symbols(i) + 150 continue + + opt = opt_base + x = x + legend_width + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.1d0, 15, 1, 1, 0, 0, + & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, + & 0.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + max_height = max( max_height, legend_height ) + +c Set up symbol legend entries with various numbers of symbols. + + do 160 i = 1,nlegend + opt_array(i) = PL_LEGEND_SYMBOL + call write_text_number( text(i), 'Symbol Number', i + 1 ) + text_colors(i) = i + symbol_colors(i) = i + symbol_scales(i) = text_scale + symbol_numbers(i) = i + 1 + symbols(i) = special_symbols(3) + 160 continue + + opt = opt_base + x = x + legend_width + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.1d0, 15, 1, 1, 0, 0, + & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, + & 0.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + max_height = max( max_height, legend_height ) + +c Set up box legend entries with various colours. + + do 170 i = 1,nlegend + opt_array(i) = PL_LEGEND_COLOR_BOX + call write_text_number( text(i), 'Box Color', i ) + text_colors(i) = i + box_colors(i) = i + box_patterns(i) = 0 + box_scales(i) = 0.8d0 + box_line_widths(i) = 1 + 170 continue + + opt = opt_base + +c Use new origin + + x = xstart + y = y + max_height + max_height = 0.d0 + call plscol0a( 15, 32, 32, 32, 0.70d0) + + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.1d0, 15, 1, 1, 0, 0, + & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, + & 0.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + max_height = max( max_height, legend_height ) + +c Set up box legend entries with various patterns. + + do 180 i = 1,nlegend + opt_array(i) = PL_LEGEND_COLOR_BOX + call write_text_number( text(i), 'Box Pattern', i-1 ) + text_colors(i) = 2 + box_colors(i) = 2 + box_patterns(i) = i - 1 + box_scales(i) = 0.8d0 + box_line_widths(i) = 1 + 180 continue + + opt = opt_base + x = x + legend_width + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.1d0, 15, 1, 1, 0, 0, + & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, + & 0.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + max_height = max( max_height, legend_height ) + +c Set up box legend entries with various box pattern line widths. + + do 190 i = 1,nlegend + opt_array(i) = PL_LEGEND_COLOR_BOX + call write_text_number( text(i), 'Box Line Width', i ) + text_colors(i) = 2 + box_colors(i) = 2 + box_patterns(i) = 3 + box_scales(i) = 0.8d0 + box_line_widths(i) = i + 190 continue + + opt = opt_base + x = x + legend_width + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.1d0, 15, 1, 1, 0, 0, + & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, + & 0.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + max_height = max( max_height, legend_height ) + +c Set up line legend entries with various colours. + + do 200 i =1,nlegend + opt_array(i) = PL_LEGEND_LINE + call write_text_number( text(i), 'Line Color', i ) + text_colors(i) = i + line_colors(i) = i + line_styles(i) = 1 + line_widths(i) = 1 + 200 continue + + opt = opt_base + +c Use new origin + + x = xstart + y = y + max_height + max_height = 0.d0 + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.1d0, 15, 1, 1, 0, 0, + & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, + & 0.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + max_height = max( max_height, legend_height ) + +c Set up line legend entries with various styles. + + do 210 i = 1,nlegend + opt_array(i) = PL_LEGEND_LINE + call write_text_number( text(i), 'Line Style', i ) + text_colors(i) = 2 + line_colors(i) = 2 + line_styles(i) = i + line_widths(i) = 1 + 210 continue + + opt = opt_base + x = x + legend_width + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.1d0, 15, 1, 1, 0, 0, + & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, + & 0.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + max_height = max( max_height, legend_height ) + +c Set up line legend entries with various widths. + + do 220 i =1,nlegend + opt_array(i) = PL_LEGEND_LINE + call write_text_number( text(i), 'Line Width', i ) + text_colors(i) = 2 + line_colors(i) = 2 + line_styles(i) = 1 + line_widths(i) = i + 220 continue + + opt = opt_base + x = x + legend_width + call plscol0a( 15, 32, 32, 32, 0.70d0 ) + + call pllegend( legend_width, legend_height, position, opt, x, y, + & 0.1d0, 15, 1, 1, 0, 0, + & nlegend, opt_array, 1.0d0, text_scale, 2.0d0, + & 0.d0, text_colors, text, + & box_colors, box_patterns, box_scales, box_line_widths, + & line_colors, line_styles, line_widths, + & symbol_colors, symbol_scales, symbol_numbers, symbols ) + max_height = max( max_height, legend_height ) + +c Color bar examples + +c +c Note: commented until plcolorbar is ready! +c +c call plcolorbar_example_1( PL_COLORBAR_IMAGE, 0.0d0, 0, 2, +c & values_small, 'Image Color Bars' ) +c call plcolorbar_example_2( PL_COLORBAR_IMAGE, 0.0d0, 0, 2, +c & values_small, 'Image Color Bars' ) +c call plcolorbar_example_1( +c & PL_COLORBAR_SHADE + PL_COLORBAR_SHADE_LABEL, +c & 0.0d0, 0, 9, values_uneven, +c & 'Shade Color Bars - Uneven Steps' ) +c call plcolorbar_example_2( PL_COLORBAR_SHADE, 3.0d0, 3, 9, +c & values_even, 'Shade Color Bars - Even Steps' ) +c call plcolorbar_example_1( PL_COLORBAR_GRADIENT, 0.5d0, 5, 2, +c & values_small, 'Gradient Color Bars' ) +c call plcolorbar_example_2( PL_COLORBAR_GRADIENT, 0.5d0, 5, 2, +c & values_small, 'Gradient Color Bars' ) + + call plend() + end + +c +c Auxiliary routines +c + subroutine write_number( text, number ) + + implicit none + + character(*) text + integer number + + write( text, '(i2)') number + if ( text(1:1) .eq. ' ' ) text(1:1) = '0' + end + + subroutine write_text_number( text, string, number ) + + implicit none + + character(*) text + character(*) string + integer number + + if ( number .lt. 10 ) then + write( text, '(a,1x,i1)' ) string, number + else + write( text, '(a,1x,i2)' ) string, number + endif + end + +c Color bar routines +c +c subroutine plcolorbar_example_1( bar_type, ticks, sub_ticks, n, +c & values, title ) +c +c implicit none +c +c include 'plplot_parameters.h' +c +c integer bar_type, position +c real*8 ticks +c integer sub_ticks +c integer n +c real*8 values(*) +c character(*) title +c +c +c FORTRAN 77: array fixed +c +c real*8 colors(20) +c real*8 color_step +c integer i +c integer opt +c character(10) axis_opts_1, axis_opts_2 +c +c call pladv( 0 ) +c +c Setup color palette 1 +c call plspal1( 'cmap1_blue_red.pal', 1 ) +c +c color_step = 1.0d0 / ( n - 1 ) +c do 110 i = 1,n +c colors(i) = 0.0d0 + color_step * i +c 110 continue +c +c position = PL_POSITION_LEFT +c opt = bar_type + PL_COLORBAR_LABEL_LEFT + +c & PL_COLORBAR_CAP_HIGH +c +c if ( mod( bar_type, 2*PL_COLORBAR_SHADE_LABEL ) / +c & PL_COLORBAR_SHADE_LABEL .eq. 1 ) then +c axis_opts_1 = 'iv' +c axis_opts_2 = 'i' +c else +c if ( sub_ticks .ne. 0 ) then +c axis_opts_1 = 'stv' +c axis_opts_2 = 'st' +c else +c axis_opts_1 = 'tv' +c axis_opts_2 = 't' +c endif +c endif +c +c call plcolorbar( opt, 0.1d0, 0.1d0, 0.5d0, 0.1d0, +c & ticks, sub_ticks, +c & axis_opts_1, 'Test label - Left, High Cap', +c & n, colors, values ) +c +c position = PL_POSITION_RIGHT +c opt = bar_type + PL_COLORBAR_LABEL_RIGHT + +c & PL_COLORBAR_CAP_LOW +c +c call plcolorbar( opt, 0.1d0, 0.4d0, 0.5d0, 0.1d0, +c & ticks, sub_ticks, +c & axis_opts_1, 'Test label - Right, Low Cap', +c & n, colors, values ) +c +c position = PL_POSITION_TOP +c opt = bar_type + PL_COLORBAR_LABEL_TOP + +c & PL_COLORBAR_CAP_HIGH +c +c call plcolorbar( opt, 0.1d0, 0.1d0, 0.5d0, 0.1d0, +c & ticks, sub_ticks, +c & axis_opts_2, 'Test label - Upper, High Cap', +c & n, colors, values ) +c +c position = PL_POSITION_TOP +c opt = bar_type + PL_COLORBAR_LABEL_BOTTOM + +c & PL_COLORBAR_CAP_LOW +c +c call plcolorbar( opt, 0.4d0, 0.1d0, 0.5d0, 0.1d0, +c & ticks, sub_ticks, +c & axis_opts_2, 'Test label - Lower, Low Cap', +c & n, colors, values ) +c +c call plvpor( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) +c call plwind( 0.0d0, 1.0d0, 0.0d0, 1.0d0 ) +c call plptex( 0.5d0, 0.5d0, 0.0d0, 0.0d0, 0.5d0, title ) +c end +c +c subroutine plcolorbar_example_2( bar_type, ticks, sub_ticks, n, +c & values, title ) +c +c implicit none +c +c include 'plplot_parameters.h' +c +c integer bar_type, position +c real*8 ticks +c integer sub_ticks +c integer n +c real*8 values(*) +c character(*) title +c +c real*8 colors(20) +c integer i +c real*8 color_step +c integer opt +c character(10) axis_opts_1, axis_opts_2 +c +c call pladv( 0 ) +c Setup color palette 1 +c call plspal1( 'cmap1_blue_yellow.pal', 1 ) +c +c color_step = 1.0d0 / ( n - 1 ) +c do 110 i = 1,n +c colors(i) = 0.0d0 + color_step * i +c 110 continue +c +c position = PL_POSITION_LEFT +c opt = bar_type + PL_COLORBAR_LABEL_LEFT + +c & PL_COLORBAR_CAP_LOW +c +c if ( bar_type .eq. PL_COLORBAR_SHADE_LABEL ) then +c axis_opts_1 = '' +c axis_opts_2 = '' +... [truncated message content] |
From: <ai...@us...> - 2011-03-04 21:03:07
|
Revision: 11594 http://plplot.svn.sourceforge.net/plplot/?rev=11594&view=rev Author: airwin Date: 2011-03-04 21:03:00 +0000 (Fri, 04 Mar 2011) Log Message: ----------- Update C and python versions of example 27 so that fills work correctly both for -eofill (even-odd fill) and with that option dropped (non-zero winding rule fill). All the previous fill issues for self-intersecting boundaries were an artifact of the incorrect angle termination condition (via windings). The correct windings must be calculated such that _both_ phi and phiw are the minimum possible integer multiple of 2 pi. It is easy to show that this condition leads to windings = params[1]/gcd(params[0], params[1]) (with appropriate adjustments to convert to integers and use absolute values). With this change to the maximum phi and phiw, the results look beautiful for both -eofill and not. I ascribe the previous bad filling results for the -eofill case as due to the boundaries of certain areas being duplicated an even number of times (which reverses the decision about whether a given area will be filled or not for the even-odd fill rule). I ascribe the previous slightly bad fill results for the non-zero winding number fill rule to the last large boundary segment that was required to close the boundary for the previous case. A side benefit of no longer using an excessive number of windings is that NPTS can be divided by 10 and yet still have a smooth result. I also changed the xmin, xmax, ymin, ymax logic so that it worked reliably for all cases. For the python case I also took advantage of numpy array capabilities. The resulting C and python results are consistent. Please propagate these windings, NPT, and min/max changes to all other languages. Modified Paths: -------------- trunk/examples/c/x27c.c trunk/examples/python/xw27.py Modified: trunk/examples/c/x27c.c =================================================================== --- trunk/examples/c/x27c.c 2011-03-03 22:46:14 UTC (rev 11593) +++ trunk/examples/c/x27c.c 2011-03-04 21:03:00 UTC (rev 11594) @@ -28,6 +28,7 @@ void cycloid( void ); void spiro( PLFLT data[], int fill ); +PLINT gcd (PLINT a, PLINT b); //-------------------------------------------------------------------------- // main @@ -41,6 +42,10 @@ main( int argc, const char *argv[] ) { // R, r, p, N + // R and r should be integers to give correct termination of the + // angle loop using gcd. + // N.B. N is just a place holder since it is no longer used + // (because we now have proper termination of the angle loop). PLFLT params[9][4] = { 21.0, 7.0, 7.0, 3.0, // Deltoid 21.0, 7.0, 10.0, 3.0, @@ -113,7 +118,25 @@ } //-------------------------------------------------------------------------- +// Calculate greatest common divisor following pseudo-code for the +// Euclidian algorithm at http://en.wikipedia.org/wiki/Euclidean_algorithm +PLINT gcd (PLINT a, PLINT b) +{ + PLINT t; + a = abs(a); + b = abs(b); + while ( b != 0 ) + { + t = b; + b = a % b; + a = t; + } + return a; +} + +//-------------------------------------------------------------------------- + void cycloid( void ) { @@ -125,7 +148,7 @@ void spiro( PLFLT params[], int fill ) { -#define NPNT 20000 +#define NPNT 2000 static PLFLT xcoord[NPNT + 1]; static PLFLT ycoord[NPNT + 1]; @@ -139,26 +162,29 @@ PLFLT xmax; PLFLT ymin; PLFLT ymax; - PLFLT scale; // Fill the coordinates - windings = (int) params[3]; + // Proper termination of the angle loop very near the beginning + // point, see + // http://mathforum.org/mathimages/index.php/Hypotrochoid. + windings = (PLINT) abs(params[1])/gcd((PLINT) params[0], (PLINT) params[1]); steps = NPNT / windings; - dphi = 8.0 * acos( -1.0 ) / (PLFLT) steps; + dphi = 2.0 * PI / (PLFLT) steps; - xmin = 0.0; // This initialisation is safe! - xmax = 0.0; - ymin = 0.0; - ymax = 0.0; - for ( i = 0; i <= windings * steps; i++ ) { phi = (PLFLT) i * dphi; phiw = ( params[0] - params[1] ) / params[1] * phi; xcoord[i] = ( params[0] - params[1] ) * cos( phi ) + params[2] * cos( phiw ); ycoord[i] = ( params[0] - params[1] ) * sin( phi ) - params[2] * sin( phiw ); - + if ( i == 0) + { + xmin = xcoord[i]; + xmax = xcoord[i]; + ymin = ycoord[i]; + ymax = ycoord[i]; + } if ( xmin > xcoord[i] ) xmin = xcoord[i]; if ( xmax < xcoord[i] ) @@ -169,18 +195,10 @@ ymax = ycoord[i]; } - if ( xmax - xmin > ymax - ymin ) - { - scale = xmax - xmin; - } - else - { - scale = ymax - ymin; - } - xmin = -0.65 * scale; - xmax = 0.65 * scale; - ymin = -0.65 * scale; - ymax = 0.65 * scale; + xmin -= 0.15 * (xmax - xmin); + xmax += 0.15 * (xmax - xmin); + ymin -= 0.15 * (ymax - ymin); + ymax += 0.15 * (ymax - ymin); plwind( xmin, xmax, ymin, ymax ); Modified: trunk/examples/python/xw27.py =================================================================== --- trunk/examples/python/xw27.py 2011-03-03 22:46:14 UTC (rev 11593) +++ trunk/examples/python/xw27.py 2011-03-04 21:03:00 UTC (rev 11594) @@ -23,6 +23,7 @@ # from plplot_py_demos import * +import types # main # @@ -32,7 +33,11 @@ def main(): - # R, r, p, N + # R, r, p, N + # R and r should be integers to give correct termination of the + # angle loop using gcd. + # N.B. N is just a place holder since it is no longer used + # (because we now have proper termination of the angle loop). params = [ [21.0, 7.0, 7.0, 3.0], # Deltoid [21.0, 7.0, 10.0, 3.0], [21.0, -7.0, 10.0, 3.0], @@ -74,48 +79,41 @@ plvpor( 0.0, 1.0, 0.0, 1.0 ) spiro( params[i], 1 ) +def gcd(a, b): + if not (type(a) is types.IntType and type(b) is types.IntType): + raise RuntimeError, "gcd arguments must be integers" + a = abs(a); + b = abs(b); + while(b != 0): + t = b + b = a % b + a = t + return a def spiro(params, fill): # Fill the coordinates - NPNT = 20000 + NPNT = 2000 - windings = int(params[3]) + # Proper termination of the angle loop very near the beginning + # point, see + # http://mathforum.org/mathimages/index.php/Hypotrochoid. + windings = int(abs(params[1])/gcd(int(params[0]), int(params[1]))) steps = int(NPNT/windings) - dphi = 8.0*arccos(-1.0)/steps + dphi = 2.0*pi/float(steps) - xmin = 0.0 # This initialisation is safe! - xmax = 0.0 - ymin = 0.0 - ymax = 0.0 - - # Add 0. to convert to real array for Numeric. numpy does not require this. - xcoord = 0. + zeros(windings*steps+1) - ycoord = 0. + zeros(windings*steps+1) - - for i in range(windings*steps+1) : - phi = i * dphi - phiw = (params[0]-params[1])/params[1]*phi - xcoord[i] = (params[0]-params[1])*cos(phi) + params[2]*cos(phiw) - ycoord[i] = (params[0]-params[1])*sin(phi) - params[2]*sin(phiw) - - if ( xmin > xcoord[i] ) : - xmin = xcoord[i] - if ( xmax < xcoord[i] ) : - xmax = xcoord[i] - if ( ymin > ycoord[i] ) : - ymin = ycoord[i] - if ( ymax < ycoord[i] ) : - ymax = ycoord[i] - - if ( xmax-xmin > ymax-ymin ) : - scale = xmax - xmin - else : - scale = ymax - ymin + phi = arange(windings*steps+1)*dphi + phiw = (params[0]-params[1])/params[1]*phi + xcoord = (params[0]-params[1])*cos(phi) + params[2]*cos(phiw) + ycoord = (params[0]-params[1])*sin(phi) - params[2]*sin(phiw) + xmin = min(xcoord) + xmax = max(xcoord) + ymin = min(ycoord) + ymax = max(ycoord) - xmin = - 0.65 * scale - xmax = 0.65 * scale - ymin = - 0.65 * scale - ymax = 0.65 * scale + xmin -= 0.15 * (xmax - xmin) + xmax += 0.15 * (xmax - xmin) + ymin -= 0.15 * (ymax - ymin) + ymax += 0.15 * (ymax - ymin) plwind( xmin, xmax, ymin, ymax ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2011-03-08 23:54:32
|
Revision: 11613 http://plplot.svn.sourceforge.net/plplot/?rev=11613&view=rev Author: airwin Date: 2011-03-08 23:54:25 +0000 (Tue, 08 Mar 2011) Log Message: ----------- Consistently adjust range calculation to be more rational. Modified Paths: -------------- trunk/examples/c/x27c.c trunk/examples/c++/x27.cc trunk/examples/d/x27d.d trunk/examples/f77/x27f.fm4 trunk/examples/f95/x27f.f90 trunk/examples/java/x27.java trunk/examples/lua/x27.lua trunk/examples/ocaml/x27.ml trunk/examples/octave/x27c.m trunk/examples/python/xw27.py trunk/examples/tcl/x27.tcl Modified: trunk/examples/c/x27c.c =================================================================== --- trunk/examples/c/x27c.c 2011-03-08 18:45:21 UTC (rev 11612) +++ trunk/examples/c/x27c.c 2011-03-08 23:54:25 UTC (rev 11613) @@ -160,8 +160,10 @@ PLFLT dphi; PLFLT xmin; PLFLT xmax; + PLFLT xrange_adjust; PLFLT ymin; PLFLT ymax; + PLFLT yrange_adjust; // Fill the coordinates @@ -195,10 +197,12 @@ ymax = ycoord[i]; } - xmin -= 0.15 * (xmax - xmin); - xmax += 0.15 * (xmax - xmin); - ymin -= 0.15 * (ymax - ymin); - ymax += 0.15 * (ymax - ymin); + xrange_adjust = 0.15 * (xmax - xmin); + xmin -= xrange_adjust; + xmax += xrange_adjust; + yrange_adjust = 0.15 * (ymax - ymin); + ymin -= yrange_adjust; + ymax += yrange_adjust; plwind( xmin, xmax, ymin, ymax ); Modified: trunk/examples/c++/x27.cc =================================================================== --- trunk/examples/c++/x27.cc 2011-03-08 18:45:21 UTC (rev 11612) +++ trunk/examples/c++/x27.cc 2011-03-08 23:54:25 UTC (rev 11613) @@ -166,8 +166,10 @@ PLFLT dphi; PLFLT xmin; PLFLT xmax; + PLFLT xrange_adjust; PLFLT ymin; PLFLT ymax; + PLFLT yrange_adjust; // Fill the coordinates @@ -202,10 +204,12 @@ ymax = ycoord[i]; } - xmin -= 0.15 * (xmax - xmin); - xmax += 0.15 * (xmax - xmin); - ymin -= 0.15 * (ymax - ymin); - ymax += 0.15 * (ymax - ymin); + xrange_adjust = 0.15 * (xmax - xmin); + xmin -= xrange_adjust; + xmax += xrange_adjust; + yrange_adjust = 0.15 * (ymax - ymin); + ymin -= yrange_adjust; + ymax += yrange_adjust; pls->wind( xmin, xmax, ymin, ymax ); Modified: trunk/examples/d/x27d.d =================================================================== --- trunk/examples/d/x27d.d 2011-03-08 18:45:21 UTC (rev 11612) +++ trunk/examples/d/x27d.d 2011-03-08 23:54:25 UTC (rev 11613) @@ -136,7 +136,9 @@ const int npnt = 2000; PLFLT[] xcoord, ycoord; int windings, steps; - PLFLT dphi, phi, phiw, xmin, xmax, ymin, ymax; + PLFLT dphi, phi, phiw; + PLFLT xmin, xmax, xrange_adjust; + PLFLT ymin, ymax, yrange_adjust; // Fill the coordinates @@ -173,10 +175,12 @@ ymax = ycoord[i]; } - xmin -= 0.15 * (xmax - xmin); - xmax += 0.15 * (xmax - xmin); - ymin -= 0.15 * (ymax - ymin); - ymax += 0.15 * (ymax - ymin); + xrange_adjust = 0.15*(xmax-xmin); + xmin = xmin - xrange_adjust; + xmax = xmax + xrange_adjust; + yrange_adjust = 0.15*(ymax-ymin); + ymin = ymin - yrange_adjust; + ymax = ymax + yrange_adjust; plwind( xmin, xmax, ymin, ymax ); Modified: trunk/examples/f77/x27f.fm4 =================================================================== --- trunk/examples/f77/x27f.fm4 2011-03-08 18:45:21 UTC (rev 11612) +++ trunk/examples/f77/x27f.fm4 2011-03-08 23:54:25 UTC (rev 11613) @@ -152,8 +152,10 @@ real*8 dphi real*8 xmin real*8 xmax + real*8 xrange_adjust real*8 ymin real*8 ymax + real*8 yrange_adjust integer gcd c Fill the coordinates @@ -183,10 +185,12 @@ if ( ymax < ycoord(i) ) ymax = ycoord(i) 110 continue - xmin = xmin - 0.15d0 * (xmax - xmin) - xmax = xmax + 0.15d0 * (xmax - xmin) - ymin = ymin - 0.15d0 * (ymax - ymin) - ymax = ymax + 0.15d0 * (ymax - ymin) + xrange_adjust = 0.15d0 * (xmax - xmin) + xmin = xmin - xrange_adjust + xmax = xmax + xrange_adjust + yrange_adjust = 0.15d0 * (ymax - ymin) + ymin = ymin - yrange_adjust + ymax = ymax + yrange_adjust call plwind( xmin, xmax, ymin, ymax ) Modified: trunk/examples/f95/x27f.f90 =================================================================== --- trunk/examples/f95/x27f.f90 2011-03-08 18:45:21 UTC (rev 11612) +++ trunk/examples/f95/x27f.f90 2011-03-08 23:54:25 UTC (rev 11613) @@ -153,8 +153,10 @@ real(kind=plflt) dphi real(kind=plflt) xmin real(kind=plflt) xmax + real(kind=plflt) xrange_adjust real(kind=plflt) ymin real(kind=plflt) ymax + real(kind=plflt) yrange_adjust integer gcd ! Fill the coordinates @@ -186,10 +188,12 @@ if ( ymax < ycoord(i) ) ymax = ycoord(i) end do - xmin = xmin - 0.15_plflt * (xmax - xmin) - xmax = xmax + 0.15_plflt * (xmax - xmin) - ymin = ymin - 0.15_plflt * (ymax - ymin) - ymax = ymax + 0.15_plflt * (ymax - ymin) + xrange_adjust = 0.15_plflt * (xmax - xmin) + xmin = xmin - xrange_adjust + xmax = xmax + xrange_adjust + yrange_adjust = 0.15_plflt * (ymax - ymin) + ymin = ymin - yrange_adjust + ymax = ymax + yrange_adjust call plwind( xmin, xmax, ymin, ymax ) Modified: trunk/examples/java/x27.java =================================================================== --- trunk/examples/java/x27.java 2011-03-08 18:45:21 UTC (rev 11612) +++ trunk/examples/java/x27.java 2011-03-08 23:54:25 UTC (rev 11613) @@ -161,6 +161,8 @@ double xmax = 0.; double ymin = 0.; double ymax = 0.; + double xrange_adjust; + double yrange_adjust; // Fill the coordinates @@ -194,10 +196,12 @@ if ( ymax < ycoord[i] ) ymax = ycoord[i]; } - xmin -= 0.15 * (xmax - xmin); - xmax += 0.15 * (xmax - xmin); - ymin -= 0.15 * (ymax - ymin); - ymax += 0.15 * (ymax - ymin); + xrange_adjust = 0.15 * (xmax - xmin); + xmin -= xrange_adjust; + xmax += xrange_adjust; + yrange_adjust = 0.15 * (ymax - ymin); + ymin -= yrange_adjust; + ymax += yrange_adjust; pls.wind( xmin, xmax, ymin, ymax ); Modified: trunk/examples/lua/x27.lua =================================================================== --- trunk/examples/lua/x27.lua 2011-03-08 18:45:21 UTC (rev 11612) +++ trunk/examples/lua/x27.lua 2011-03-08 23:54:25 UTC (rev 11613) @@ -76,10 +76,12 @@ if ymax<ycoord[i] then ymax = ycoord[i] end end - xmin = xmin - 0.15*(xmax-xmin) - xmax = xmax + 0.15*(xmax-xmin) - ymin = ymin - 0.15*(ymax-ymin) - ymax = ymax + 0.15*(ymax-ymin) + xrange_adjust = 0.15*(xmax-xmin) + xmin = xmin - xrange_adjust + xmax = xmax + xrange_adjust + yrange_adjust = 0.15*(ymax-ymin) + ymin = ymin - yrange_adjust + ymax = ymax + yrange_adjust pl.wind(xmin, xmax, ymin, ymax) Modified: trunk/examples/ocaml/x27.ml =================================================================== --- trunk/examples/ocaml/x27.ml 2011-03-08 18:45:21 UTC (rev 11612) +++ trunk/examples/ocaml/x27.ml 2011-03-08 23:54:25 UTC (rev 11613) @@ -55,12 +55,13 @@ let steps = npnt / windings in let dphi = 2.0 *. pi /. float_of_int steps in - (* This initialisation is safe! *) + (* This initialisation appears to be necessary, but I (AWI) don't understand why! *) let xmin = ref 0.0 in let xmax = ref 0.0 in let ymin = ref 0.0 in let ymax = ref 0.0 in + for i = 0 to windings * steps do let phi = float_of_int i *. dphi in let phiw = (params.(0) -. params.(1)) /. params.(1) *. phi in @@ -81,10 +82,12 @@ if !ymax < ycoord.(i) then ymax := ycoord.(i) else (); done; - let xmin = !xmin -. 0.15 *. (!xmax -. !xmin) in - let xmax = !xmax +. 0.15 *. (!xmax -. xmin) in - let ymin = !ymin -. 0.15 *. (!ymax -. !ymin) in - let ymax = !ymax +. 0.15 *. (!ymax -. ymin) in + let xrange_adjust = 0.15 *. (!xmax -. !xmin) in + let xmin = !xmin -. xrange_adjust in + let xmax = !xmax +. xrange_adjust in + let yrange_adjust = 0.15 *. (!ymax -. !ymin) in + let ymin = !ymin -. yrange_adjust in + let ymax = !ymax +. yrange_adjust in plwind xmin xmax ymin ymax; Modified: trunk/examples/octave/x27c.m =================================================================== --- trunk/examples/octave/x27c.m 2011-03-08 18:45:21 UTC (rev 11612) +++ trunk/examples/octave/x27c.m 2011-03-08 23:54:25 UTC (rev 11613) @@ -144,11 +144,13 @@ ymin = min(ycoord); ymax = max(ycoord); - xmin -= 0.15*(xmax-xmin); - xmax += 0.15*(xmax-xmin); - ymin -= 0.15*(ymax-ymin); - ymax += 0.15*(ymax-ymin); - + xrange_adjust = 0.15 * (xmax - xmin); + xmin -= xrange_adjust; + xmax += xrange_adjust; + yrange_adjust = 0.15 * (ymax - ymin); + ymin -= yrange_adjust; + ymax += yrange_adjust; + plwind( xmin, xmax, ymin, ymax ); plcol0(1); @@ -159,6 +161,5 @@ endif endfunction -## Log-linear plot. ix27c Modified: trunk/examples/python/xw27.py =================================================================== --- trunk/examples/python/xw27.py 2011-03-08 18:45:21 UTC (rev 11612) +++ trunk/examples/python/xw27.py 2011-03-08 23:54:25 UTC (rev 11613) @@ -110,10 +110,12 @@ ymin = min(ycoord) ymax = max(ycoord) - xmin -= 0.15 * (xmax - xmin) - xmax += 0.15 * (xmax - xmin) - ymin -= 0.15 * (ymax - ymin) - ymax += 0.15 * (ymax - ymin) + xrange_adjust = 0.15 * (xmax - xmin) + xmin -= xrange_adjust + xmax += xrange_adjust + yrange_adjust = 0.15 * (ymax - ymin) + ymin -= yrange_adjust + ymax += yrange_adjust plwind( xmin, xmax, ymin, ymax ) Modified: trunk/examples/tcl/x27.tcl =================================================================== --- trunk/examples/tcl/x27.tcl 2011-03-08 18:45:21 UTC (rev 11612) +++ trunk/examples/tcl/x27.tcl 2011-03-08 23:54:25 UTC (rev 11613) @@ -148,10 +148,12 @@ if { $ymax < [ycoord $i] } { set ymax [ycoord $i] } } - set xmin [expr {$xmin - 0.15 * ($xmax - $xmin) }] - set xmax [expr {$xmax + 0.15 * ($xmax - $xmin) }] - set ymin [expr {$ymin - 0.15 * ($ymax - $ymin) }] - set ymax [expr {$ymax + 0.15 * ($ymax - $ymin) }] + set xrange_adjust [expr {0.15 * ($xmax - $xmin) }] + set xmin [expr {$xmin - $xrange_adjust }] + set xmax [expr {$xmax + $xrange_adjust }] + set yrange_adjust [expr {0.15 * ($ymax - $ymin) }] + set ymin [expr {$ymin - $yrange_adjust }] + set ymax [expr {$ymax + $yrange_adjust }] $w cmd plwind $xmin $xmax $ymin $ymax This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2011-03-21 00:50:28
|
Revision: 11666 http://plplot.svn.sourceforge.net/plplot/?rev=11666&view=rev Author: airwin Date: 2011-03-21 00:50:17 +0000 (Mon, 21 Mar 2011) Log Message: ----------- Propagate the plarc rotation change to additional examples. Modified Paths: -------------- trunk/examples/ada/xthick03a.adb trunk/examples/java/x03.java trunk/examples/lua/x03.lua Modified: trunk/examples/ada/xthick03a.adb =================================================================== --- trunk/examples/ada/xthick03a.adb 2011-03-20 23:09:33 UTC (rev 11665) +++ trunk/examples/ada/xthick03a.adb 2011-03-21 00:50:17 UTC (rev 11666) @@ -65,7 +65,7 @@ -- Draw circles for polar grid. for i in 1 .. 10 loop - Draw_Arc(0.0, 0.0, 0.1 * Long_Float(i), 0.1 * Long_Float(i), 0.0, 360.0, False); + Draw_Arc(0.0, 0.0, 0.1 * Long_Float(i), 0.1 * Long_Float(i), 0.0, 360.0, 0.0, False); end loop; Set_Pen_Color(2); Modified: trunk/examples/java/x03.java =================================================================== --- trunk/examples/java/x03.java 2011-03-20 23:09:33 UTC (rev 11665) +++ trunk/examples/java/x03.java 2011-03-21 00:50:17 UTC (rev 11666) @@ -77,7 +77,7 @@ pls.env( -1.3, 1.3, -1.3, 1.3, 1, -2 ); for ( i = 1; i <= 10; i++ ) { - pls.arc( 0.0, 0.0, 0.1 * i, 0.1 * i, 0.0, 360.0, false ); + pls.arc( 0.0, 0.0, 0.1 * i, 0.1 * i, 0.0, 360.0, 0.0, false ); } pls.col0( 2 ); Modified: trunk/examples/lua/x03.lua =================================================================== --- trunk/examples/lua/x03.lua 2011-03-20 23:09:33 UTC (rev 11665) +++ trunk/examples/lua/x03.lua 2011-03-21 00:50:17 UTC (rev 11666) @@ -57,7 +57,7 @@ -- Draw circles for polar grid for i = 1, 10 do - pl.arc(0, 0, 0.1*i, 0.1*i, 0, 360, 0); + pl.arc(0, 0, 0.1*i, 0.1*i, 0, 360, 0, 0); end pl.col0(2) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2011-07-31 07:30:36
|
Revision: 11828 http://plplot.svn.sourceforge.net/plplot/?rev=11828&view=rev Author: airwin Date: 2011-07-31 07:30:27 +0000 (Sun, 31 Jul 2011) Log Message: ----------- Add example 33 to those which are built for the traditional install tree. Modified Paths: -------------- trunk/examples/java/Makefile.examples.in trunk/examples/ocaml/Makefile.examples.in Modified: trunk/examples/java/Makefile.examples.in =================================================================== --- trunk/examples/java/Makefile.examples.in 2011-07-31 06:49:51 UTC (rev 11827) +++ trunk/examples/java/Makefile.examples.in 2011-07-31 07:30:27 UTC (rev 11828) @@ -52,7 +52,8 @@ x28.class \ x29.class \ x30.class \ - x31.class + x31.class \ + x33.class all: $(example_classes) Modified: trunk/examples/ocaml/Makefile.examples.in =================================================================== --- trunk/examples/ocaml/Makefile.examples.in 2011-07-31 06:49:51 UTC (rev 11827) +++ trunk/examples/ocaml/Makefile.examples.in 2011-07-31 07:30:27 UTC (rev 11828) @@ -63,7 +63,8 @@ x28ocaml$(EXEEXT) \ x29ocaml$(EXEEXT) \ x30ocaml$(EXEEXT) \ - x31ocaml$(EXEEXT) + x31ocaml$(EXEEXT) \ + x33ocaml$(EXEEXT) all: $(EXECUTABLES_list) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |