From d0498254f009edfdda6772a4ca3c4482f19e9501 Mon Sep 17 00:00:00 2001 From: PBerger <philipp.berger@rwth-aachen.de> Date: Fri, 20 Sep 2013 19:08:29 +0200 Subject: [PATCH] Updated gtest from version 1.6.0 to 1.7.0 Former-commit-id: c6286aac2734ac0903cca8ffea842a3116e24db5 --- .../gtest-1.6.0/build/Debug/gtest.lib | Bin 4943638 -> 0 bytes .../gtest-1.6.0/build/Release/gtest.lib | Bin 3237446 -> 0 bytes .../include/gtest/internal/gtest-string.h | 350 -- resources/3rdparty/gtest-1.6.0/msvc/gtest.sln | 55 - .../{gtest-1.6.0 => gtest-1.7.0}/CHANGES | 27 + .../CMakeLists.txt | 43 +- .../{gtest-1.6.0 => gtest-1.7.0}/CONTRIBUTORS | 0 .../COPYING => gtest-1.7.0/LICENSE} | 0 .../{gtest-1.6.0 => gtest-1.7.0}/Makefile.am | 4 + .../{gtest-1.6.0 => gtest-1.7.0}/Makefile.in | 72 +- .../{gtest-1.6.0 => gtest-1.7.0}/README | 29 +- .../{gtest-1.6.0 => gtest-1.7.0}/aclocal.m4 | 99 - .../build-aux/config.guess | 397 +- .../build-aux/config.h.in | 0 .../build-aux/config.sub | 220 +- .../build-aux/depcomp | 74 +- .../build-aux/install-sh | 29 +- .../build-aux/ltmain.sh | 4016 ++++++++++------ .../build-aux/missing | 53 +- .../cmake/internal_utils.cmake | 13 +- .../codegear/gtest.cbproj | 0 .../codegear/gtest.groupproj | 0 .../codegear/gtest_all.cc | 0 .../codegear/gtest_link.cc | 0 .../codegear/gtest_main.cbproj | 0 .../codegear/gtest_unittest.cbproj | 0 .../{gtest-1.6.0 => gtest-1.7.0}/configure | 4133 ++++++++++------- .../{gtest-1.6.0 => gtest-1.7.0}/configure.ac | 6 +- .../fused-src/gtest/gtest-all.cc | 2026 ++++---- .../fused-src/gtest/gtest.h | 2644 ++++++----- .../fused-src/gtest}/gtest_main.cc | 5 +- .../include/gtest/gtest-death-test.h | 17 +- .../include/gtest/gtest-message.h | 74 +- .../include/gtest/gtest-param-test.h | 2 +- .../include/gtest/gtest-param-test.h.pump | 2 +- .../include/gtest/gtest-printers.h | 91 +- .../include/gtest/gtest-spi.h | 2 +- .../include/gtest/gtest-test-part.h | 17 +- .../include/gtest/gtest-typed-test.h | 0 .../include/gtest/gtest.h | 304 +- .../include/gtest/gtest_pred_impl.h | 12 +- .../include/gtest/gtest_prod.h | 0 .../internal/gtest-death-test-internal.h | 21 +- .../include/gtest/internal/gtest-filepath.h | 14 +- .../include/gtest/internal/gtest-internal.h | 182 +- .../include/gtest/internal/gtest-linked_ptr.h | 8 +- .../internal/gtest-param-util-generated.h | 593 ++- .../gtest-param-util-generated.h.pump | 2 +- .../include/gtest/internal/gtest-param-util.h | 8 +- .../include/gtest/internal/gtest-port.h | 277 +- .../include/gtest/internal/gtest-string.h | 167 + .../include/gtest/internal/gtest-tuple.h | 92 +- .../include/gtest/internal/gtest-tuple.h.pump | 13 +- .../include/gtest/internal/gtest-type-util.h | 21 +- .../gtest/internal/gtest-type-util.h.pump | 21 +- .../m4/acx_pthread.m4 | 0 .../{gtest-1.6.0 => gtest-1.7.0}/m4/gtest.m4 | 0 .../m4/libtool.m4 | 2236 +++++---- .../m4/ltoptions.m4 | 32 +- .../m4/ltsugar.m4 | 0 .../m4/ltversion.m4 | 12 +- .../m4/lt~obsolete.m4 | 12 +- .../make/Makefile | 6 +- .../msvc/gtest-md.sln | 0 .../msvc/gtest-md.vcproj | 0 resources/3rdparty/gtest-1.7.0/msvc/gtest.sln | 45 + .../msvc/gtest.vcproj | 0 .../msvc/gtest_main-md.vcproj | 0 .../msvc/gtest_main.vcproj | 0 .../msvc/gtest_prod_test-md.vcproj | 0 .../msvc/gtest_prod_test.vcproj | 0 .../msvc/gtest_unittest-md.vcproj | 0 .../msvc/gtest_unittest.vcproj | 0 .../samples/prime_tables.h | 0 .../samples/sample1.cc | 0 .../samples/sample1.h | 0 .../samples/sample10_unittest.cc | 3 +- .../samples/sample1_unittest.cc | 2 +- .../samples/sample2.cc | 0 .../samples/sample2.h | 1 - .../samples/sample2_unittest.cc | 8 +- .../samples/sample3-inl.h | 7 +- .../samples/sample3_unittest.cc | 0 .../samples/sample4.cc | 0 .../samples/sample4.h | 0 .../samples/sample4_unittest.cc | 0 .../samples/sample5_unittest.cc | 16 +- .../samples/sample6_unittest.cc | 0 .../samples/sample7_unittest.cc | 0 .../samples/sample8_unittest.cc | 0 .../samples/sample9_unittest.cc | 0 .../scripts/fuse_gtest_files.py | 0 .../scripts/gen_gtest_pred_impl.py | 4 +- .../scripts/gtest-config.in | 2 +- .../scripts/pump.py | 38 +- .../scripts/test/Makefile | 0 .../src/gtest-all.cc | 0 .../src/gtest-death-test.cc | 280 +- .../src/gtest-filepath.cc | 30 +- .../src/gtest-internal-inl.h | 242 +- .../src/gtest-port.cc | 119 +- .../src/gtest-printers.cc | 101 +- .../src/gtest-test-part.cc | 6 +- .../src/gtest-typed-test.cc | 6 +- .../{gtest-1.6.0 => gtest-1.7.0}/src/gtest.cc | 1241 ++--- .../gtest => gtest-1.7.0/src}/gtest_main.cc | 5 +- .../test/gtest-death-test_ex_test.cc | 0 .../test/gtest-death-test_test.cc | 153 +- .../test/gtest-filepath_test.cc | 256 +- .../test/gtest-linked_ptr_test.cc | 3 +- .../test/gtest-listener_test.cc | 33 +- .../test/gtest-message_test.cc | 55 +- .../test/gtest-options_test.cc | 57 +- .../test/gtest-param-test2_test.cc | 0 .../test/gtest-param-test_test.cc | 13 +- .../test/gtest-param-test_test.h | 6 +- .../test/gtest-port_test.cc | 125 +- .../test/gtest-printers_test.cc | 291 +- .../test/gtest-test-part_test.cc | 0 .../test/gtest-tuple_test.cc | 0 .../test/gtest-typed-test2_test.cc | 0 .../test/gtest-typed-test_test.cc | 0 .../test/gtest-typed-test_test.h | 0 .../test/gtest-unittest-api_test.cc | 0 .../test/gtest_all_test.cc | 0 .../test/gtest_break_on_failure_unittest.py | 24 +- .../test/gtest_break_on_failure_unittest_.cc | 0 .../test/gtest_catch_exceptions_test.py | 41 +- .../test/gtest_catch_exceptions_test_.cc | 3 + .../test/gtest_color_test.py | 0 .../test/gtest_color_test_.cc | 0 .../test/gtest_env_var_test.py | 0 .../test/gtest_env_var_test_.cc | 0 .../test/gtest_environment_test.cc | 1 + .../test/gtest_filter_unittest.py | 0 .../test/gtest_filter_unittest_.cc | 0 .../test/gtest_help_test.py | 0 .../test/gtest_help_test_.cc | 0 .../test/gtest_list_tests_unittest.py | 92 +- .../test/gtest_list_tests_unittest_.cc | 78 +- .../test/gtest_main_unittest.cc | 0 .../test/gtest_no_test_unittest.cc | 1 - .../test/gtest_output_test.py | 0 .../test/gtest_output_test_.cc | 30 +- .../test/gtest_output_test_golden_lin.txt | 27 +- .../test/gtest_pred_impl_unittest.cc | 2 +- .../test/gtest_premature_exit_test.cc | 141 + .../test/gtest_prod_test.cc | 0 .../test/gtest_repeat_test.cc | 2 +- .../test/gtest_shuffle_test.py | 0 .../test/gtest_shuffle_test_.cc | 1 - .../test/gtest_sole_header_test.cc | 0 .../test/gtest_stress_test.cc | 5 +- .../test/gtest_test_utils.py | 17 +- .../test/gtest_throw_on_failure_ex_test.cc | 0 .../test/gtest_throw_on_failure_test.py | 0 .../test/gtest_throw_on_failure_test_.cc | 18 +- .../test/gtest_uninitialized_test.py | 0 .../test/gtest_uninitialized_test_.cc | 0 .../test/gtest_unittest.cc | 1012 ++-- .../test/gtest_xml_outfile1_test_.cc | 0 .../test/gtest_xml_outfile2_test_.cc | 0 .../test/gtest_xml_outfiles_test.py | 4 +- .../test/gtest_xml_output_unittest.py | 149 +- .../test/gtest_xml_output_unittest_.cc | 19 +- .../test/gtest_xml_test_utils.py | 73 +- .../test/production.cc | 0 .../test/production.h | 0 .../xcode/Config/DebugProject.xcconfig | 0 .../xcode/Config/FrameworkTarget.xcconfig | 0 .../xcode/Config/General.xcconfig | 0 .../xcode/Config/ReleaseProject.xcconfig | 0 .../xcode/Config/StaticLibraryTarget.xcconfig | 0 .../xcode/Config/TestTarget.xcconfig | 0 .../xcode/Resources/Info.plist | 0 .../xcode/Samples/FrameworkSample/Info.plist | 0 .../WidgetFramework.xcodeproj/project.pbxproj | 0 .../xcode/Samples/FrameworkSample/runtests.sh | 0 .../xcode/Samples/FrameworkSample/widget.cc | 0 .../xcode/Samples/FrameworkSample/widget.h | 0 .../Samples/FrameworkSample/widget_test.cc | 0 .../xcode/Scripts/runtests.sh | 0 .../xcode/Scripts/versiongenerate.py | 0 .../xcode/gtest.xcodeproj/project.pbxproj | 65 +- 184 files changed, 14511 insertions(+), 8975 deletions(-) delete mode 100644 resources/3rdparty/gtest-1.6.0/build/Debug/gtest.lib delete mode 100644 resources/3rdparty/gtest-1.6.0/build/Release/gtest.lib delete mode 100644 resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-string.h delete mode 100644 resources/3rdparty/gtest-1.6.0/msvc/gtest.sln rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/CHANGES (79%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/CMakeLists.txt (88%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/CONTRIBUTORS (100%) rename resources/3rdparty/{gtest-1.6.0/COPYING => gtest-1.7.0/LICENSE} (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/Makefile.am (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/Makefile.in (96%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/README (93%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/aclocal.m4 (87%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/build-aux/config.guess (86%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/build-aux/config.h.in (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/build-aux/config.sub (89%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/build-aux/depcomp (89%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/build-aux/install-sh (95%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/build-aux/ltmain.sh (67%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/build-aux/missing (89%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/cmake/internal_utils.cmake (93%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/codegear/gtest.cbproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/codegear/gtest.groupproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/codegear/gtest_all.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/codegear/gtest_link.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/codegear/gtest_main.cbproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/codegear/gtest_unittest.cbproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/configure (84%) mode change 100755 => 100644 rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/configure.ac (95%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/fused-src/gtest/gtest-all.cc (85%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/fused-src/gtest/gtest.h (92%) rename resources/3rdparty/{gtest-1.6.0/src => gtest-1.7.0/fused-src/gtest}/gtest_main.cc (95%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/gtest-death-test.h (94%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/gtest-message.h (77%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/gtest-param-test.h (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/gtest-param-test.h.pump (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/gtest-printers.h (93%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/gtest-spi.h (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/gtest-test-part.h (94%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/gtest-typed-test.h (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/gtest.h (88%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/gtest_pred_impl.h (98%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/gtest_prod.h (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-death-test-internal.h (94%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-filepath.h (96%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-internal.h (88%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-linked_ptr.h (98%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-param-util-generated.h (83%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-param-util-generated.h.pump (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-param-util.h (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-port.h (87%) create mode 100644 resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-string.h rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-tuple.h (93%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-tuple.h.pump (97%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-type-util.h (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/include/gtest/internal/gtest-type-util.h.pump (96%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/m4/acx_pthread.m4 (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/m4/gtest.m4 (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/m4/libtool.m4 (79%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/m4/ltoptions.m4 (93%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/m4/ltsugar.m4 (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/m4/ltversion.m4 (72%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/m4/lt~obsolete.m4 (90%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/make/Makefile (92%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/msvc/gtest-md.sln (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/msvc/gtest-md.vcproj (100%) create mode 100644 resources/3rdparty/gtest-1.7.0/msvc/gtest.sln rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/msvc/gtest.vcproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/msvc/gtest_main-md.vcproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/msvc/gtest_main.vcproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/msvc/gtest_prod_test-md.vcproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/msvc/gtest_prod_test.vcproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/msvc/gtest_unittest-md.vcproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/msvc/gtest_unittest.vcproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/prime_tables.h (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample1.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample1.h (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample10_unittest.cc (98%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample1_unittest.cc (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample2.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample2.h (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample2_unittest.cc (94%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample3-inl.h (98%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample3_unittest.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample4.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample4.h (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample4_unittest.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample5_unittest.cc (96%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample6_unittest.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample7_unittest.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample8_unittest.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/samples/sample9_unittest.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/scripts/fuse_gtest_files.py (100%) mode change 100755 => 100644 rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/scripts/gen_gtest_pred_impl.py (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/scripts/gtest-config.in (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/scripts/pump.py (96%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/scripts/test/Makefile (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/src/gtest-all.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/src/gtest-death-test.cc (82%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/src/gtest-filepath.cc (94%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/src/gtest-internal-inl.h (83%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/src/gtest-port.cc (86%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/src/gtest-printers.cc (80%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/src/gtest-test-part.cc (95%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/src/gtest-typed-test.cc (96%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/src/gtest.cc (84%) rename resources/3rdparty/{gtest-1.6.0/fused-src/gtest => gtest-1.7.0/src}/gtest_main.cc (95%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-death-test_ex_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-death-test_test.cc (90%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-filepath_test.cc (74%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-linked_ptr_test.cc (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-listener_test.cc (91%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-message_test.cc (71%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-options_test.cc (77%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-param-test2_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-param-test_test.cc (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-param-test_test.h (97%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-port_test.cc (91%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-printers_test.cc (79%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-test-part_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-tuple_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-typed-test2_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-typed-test_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-typed-test_test.h (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest-unittest-api_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_all_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_break_on_failure_unittest.py (94%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_break_on_failure_unittest_.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_catch_exceptions_test.py (87%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_catch_exceptions_test_.cc (98%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_color_test.py (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_color_test_.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_env_var_test.py (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_env_var_test_.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_environment_test.cc (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_filter_unittest.py (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_filter_unittest_.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_help_test.py (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_help_test_.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_list_tests_unittest.py (66%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_list_tests_unittest_.cc (51%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_main_unittest.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_no_test_unittest.cc (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_output_test.py (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_output_test_.cc (97%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_output_test_golden_lin.txt (97%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_pred_impl_unittest.cc (99%) create mode 100644 resources/3rdparty/gtest-1.7.0/test/gtest_premature_exit_test.cc rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_prod_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_repeat_test.cc (99%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_shuffle_test.py (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_shuffle_test_.cc (98%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_sole_header_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_stress_test.cc (98%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_test_utils.py (96%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_throw_on_failure_ex_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_throw_on_failure_test.py (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_throw_on_failure_test_.cc (79%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_uninitialized_test.py (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_uninitialized_test_.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_unittest.cc (91%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_xml_outfile1_test_.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_xml_outfile2_test_.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_xml_outfiles_test.py (98%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_xml_output_unittest.py (63%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_xml_output_unittest_.cc (89%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/gtest_xml_test_utils.py (73%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/production.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/test/production.h (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Config/DebugProject.xcconfig (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Config/FrameworkTarget.xcconfig (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Config/General.xcconfig (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Config/ReleaseProject.xcconfig (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Config/StaticLibraryTarget.xcconfig (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Config/TestTarget.xcconfig (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Resources/Info.plist (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Samples/FrameworkSample/Info.plist (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Samples/FrameworkSample/runtests.sh (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Samples/FrameworkSample/widget.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Samples/FrameworkSample/widget.h (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Samples/FrameworkSample/widget_test.cc (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Scripts/runtests.sh (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/Scripts/versiongenerate.py (100%) rename resources/3rdparty/{gtest-1.6.0 => gtest-1.7.0}/xcode/gtest.xcodeproj/project.pbxproj (95%) diff --git a/resources/3rdparty/gtest-1.6.0/build/Debug/gtest.lib b/resources/3rdparty/gtest-1.6.0/build/Debug/gtest.lib deleted file mode 100644 index b1a2dd75c7c195ceaef5e094db99a3bd72011f55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4943638 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%0DiPi{RJV_0L4)Q6jvqT`;nyyG+;1)anhc+pKcP4 zr&x78KD)PAZ13)wUz}pyZ(!xkmvqkU>6{<2OES(O*<aLj<&10_XpI=IYP5yx(kasj zslQMh{e|MHWLjs$U$6;rO^Vr?Uxl^=Omgzv$!v*XaQNJegg?7>Gu31L1tHZI#Zg-n zS0&*OifGFL;N$Ztguf&^;YFtFu+~kgL95qIGP3f?C@ZToeUq#f5z67a*BE*vxM>Ee zy1}<G(sF(Xvf*Zx!co_~*_j!m3E_NjMJi-Z%t-YAjt08b5&cQq$|jWa7#JyTlYy!x z`fd?N{}Wv9(<vJCrYeZecr~)JM5<0$UX`7ek>F2Hig=3Z2tM9ActSbvG0;VEB)#IQ zG+E0d1iv4b`$P)C_pg@VLHe@-at9}6B=$k|h^8*H#3q#UHh?CIBiR)f&U+3_Yi?}6 zrvb;F#r_%WCpi?{8Mx8d8?k@g$*?&Y%hpy0A#aZJVmALnEWGS(L2`0e%nu$1lu1su zFX-uA+|iYkp5(K+S+yg!@%s6^N1|kUl1W+(RS037A&a}sKvv(Q#JC8DU1IDA+;-S` zgLm;cbra{~yn7vp5uX9$Gq^8(C|;J&b+~zHCQkLG31Ojq98=s?21<D8ejJ|eNI>|d z4@i^%L{%8V8xVoNGxC2`RPx<`G|LM!!Kp7yDCb>)_fQ;PU2(?9M7exB4*zG$3r|XX zVQXFEGj?HG3{o{Cnbt?iRBny45Q+&*B^05Yw+`>Gxb+4~kPHrh`F0ASyuk?-1m0P* zYq3PE{4yB{{Pn@yT^0f}NvQ-Tl*7l?u<WJaIFdwhv64u`bbbnfj~bl7^z+VK?^p`P z)XPYsG10iU8dYUNPzgi`%PHf%6?dP35+v~ZI6RO-pi{FEC@I^NNU5X~GLmdnlw{SZ zEt7dlG(tJ=QP4th?1NBTRZ_K2HljHxqC{Fb^)iy^ol(nHjZ`torUW9SQl&UbmEvLv zG?-oManeG8hpQo16Q*Acm&r)prLBX6@mcH|lW9s|LTc9(N4uuDSOR|&^#4GL+IBc$ zc|c(6HUo<vWL?4}Os$xaNT=3AO_{t>A`!}Yls(1K&nhmKNY~=<;uIn^4kCre^>mjy zI=hR#?Mr%lmYpAo#8klC8X3v*u_Gd~Q;lj)$HY)23Za~L2i{e2?BP~ia+_pNNY?`n zWp>7S48hrW*f1V{baTRR`B`(`DJ*C8xnf4jKO6|8-zqxjZDdCI$6z6Ab|Y=v=7HNL zdb`zSLOFcz%<~jC$v_D%n8A$83>uH^u#+M461_=%NVhdGBd(7%iveYRRn>q{PNoPb zZak=}xLDh8BM7_H(SR_~9~p-Vx;YvUV;4=%ElkMdS{WtveFxWUBbcvL;t;}T=J7s? zV|b{zSmIod!|tG<Fmc8tN~C@5+0mq0ENPrN842@Xv_Vmg@nlX>2}4N7vM7!uQd}%y z2J<MpXC#cD$4VxPUn3(?cCJ0xW8P1RLP$M|;^<Kn7xpO2H^qMkbmi=3OqZU~T-b=y zF!*def8^!I@rSHA<e}haLM@J0%NLffZE3&fAY7ptvfJPt3FwUiy#vsD1ey)#Cs6wa zuLID5f@=W8tlQtQf6dYFCBShJ$Fs42Yd8GStsYjiwY5f{D12`5A1PA$S-m{4?}jHb z!%{fpumIE?L4}7LQY9v1_cy-x#!;k`eprI|i!eU!7?jIVo{aKhltq-6pk#*c08mq< zfl$ud0p?V3jRvAOo88=K^dw0d?w!^=;a@Mm{Bpq&3;f)>FmPYFjI45mWX1q3j|XgF zV0LpMke*c`IpMOLDkswb?Sdz6@ZJeXC5F<W60-=<9+&Xw1%M8hdJTY*B<6A)BQ-9@ ze#<LIV#1$yiIJGy29+4Tw<|HfMjG^V;D3XXlJZ-W|A}$~O45%bguheC^0zf=OwB4+ z<&w7hLTXeq2&rZ$j+&vkE<jJbjrEoo$i#l4GN*A#i3x>)#|r~9)iA=^O=y4bJ&ZZt zgo`$KGcKFa+!V8(X1vLTk~N8vK||(-G^9+GW;D;?imPoYsx%ePplU+}QnjJMj4BJ3 z2Q4$NR4IhlUJ3hDCw$t{yiPH%l_(3BCTYX#(Ti}Hch7<a9_{d)0C!x^((V!(QDeu> z1=4i6O!a$PT+>XNxr(+8Oz;W7Z;SFYlnp3*P>w|TYErbfSVbcQ1%k{eZiaz!-t~Ys ziK5+Tpb8bOG9Lz|9Nc52DA&PYBfE?mJo;W$vsr*t&E5y-2szpSh^+oAb~lRY297?7 zzU;PFyiXcyqL^<sibl1Sdc*ya;V6dh?W)Qfpc2!7ABXZ(l)IyxhjNcsnX2p$sZpOq zNPUvx=#vyjpY){lNrWm?l}g-^iTN_=%U~Xf!JR4%S*=RL&_4+2CgY`pF^OD<-&LAr zs6P>VFZNsi9hHV&DCC*c3k7}MVMQV>Tt(U*3Nsz}9LhN;N26Sfa)(!$B2BQ0L@4Jq zL6#KPY@nRi59ldTq>Bwyp(15&GG$Vqa61T3WmKgVkgCc%0I8}p0HRmn3_e#u-VGe) z^>|dQZ@%IcBoO=-ypO-}9Vz(Rq6BwkdlIb|`r@Zh(i1=ZDr?Q`X9b>6&f5$cDDEW# z=@QaUi@?u@z!R!a;IrikOcMslB3)F^2=>Yy@gT@Gj56*0H6=f95X}cn8@SJD?}Rmj zk=IptLyf%NFF6244C+`q06nlTkM;rju|N%gs4Y9-o!v<u%YjF?i}xYyFO9<=-O4ga zXDwYYh4W4ilp}=NOT8VPr9QzPt>~a{&Q4JcH<zlrM#cuu1(R$(iEWz#-h<6Iv~6Z$ z48AP==4;To$Zh&*dLPHvCM_=ADXLZIKI%UM_&1@XyJ<p6TE2jNjgun)Q>4#nFO;Ee z?p8$1iZTUU4ebr)MJ_NjW4wM3q)KBnLOG8;yo#fQDUR+&adbC|TL$PE(Y_BFDCbSt z#>eFil&Fzrfl5s<Fg^Ww(Sm80O=}*PO)n*uV~T+<wfuw4ZC>dZ)kQ}&{hx(KJv{PC zoB(At>Wsug)AIX9;Koh9Dvy)2-g-${M3jEOE6mF`2)?j#SKhdA*)AjWG;{22dUcqK z!oc>0dDBsQc60u+X}Oo|)zv^~k}+%yPQ>-jyM*d~I-m;#V)Nn_A<Y$lzAw;CfJ$=o zNkC*r5M}NIX1GJQ{)t*tjlW~R#+L!JsCHPT`%1mVj>R=whN>@<(Kt+l`kG{Ol5yz5 zn{vAwZ%e`dxc>Ae;ncthPcT>(q!G;p<Q9*i+v#w+&jCEcIN$#R{6oh~906P-b{g`~ zR&FM$rb;xSSoLKpHWoAv+<pieD$Qsr<7hxSk_LNY4{cjH4JL}Xg=HZ0>=$h#a^sK0 zm}2FIR9OR!Q<F(3=kddnird*hIq!`YM~&2alPzwF#a#;MSuvw443zUufe<PV5-1S9 zRRd^ujGZ3stuj!~I~@_D;@)kbSaUmYeADs`BQ9A}+I4xc>0eCl7B0M-Rw`nHCHgPV z0~eOx-4v;J5Kg>N%n*&#JpzTZRUC3l13AuwMvaAg^P^A`78ghE%~Mbm4#uKi2GlW5 zuh?YZILzQM?A>$_x{3Q;u%xGN3I`pxwpviQ>DP*ueoqx|J)y-K59WBr0rh(9h%9Cy zX{vHwwloHxr446;^42&Y&g!3t-w+7tnfk>6zEBX#c~|3@;;uCinG^1rg1dQXHA!>F zI&9B>jZ|wPl_nc#{YD%VTD2e(-_(8&@5i<J19N{3gyuBo8wz>UdNcM`?BDinnKAc^ zd(JJk$1kBBk4;!Asw@hs!fP~PH3|M}ZQUB5O5~{tBrM;2d4ec;JHP>idOj&BIYEV2 zYS+x@vEZDV4MMIofb%b{-T|kFq#<7jx=`5p>;w)$XSVH`CeKwujtA5_sI1IJEt<5G zv2S`!Rw`@}`4TL$LTM=9!reHItQ1gtUzL^Ag?Y%MHDjXIXTR5Je&8)A>6Yn6=2!An z^Q}?kwoXG(QQ$-eLVY^Q>N+8eS^<9)cc+2S(t<mAPFz2~cupwReZyg!F)KlDtSWXU zcQV_!6W5o}k3Wv_<$*7G7oKcK$Cn(1TJ$A{W1m20shgPp-r~8%-oCoH6FWXDetwPb zCx-iu8GXRtz+%S-ydbD@AHYvIsShCJ`hYh2fL%c1kPnzkACT9vDr};nor?HicJm?z z36qtpz+nW68HO@faI1KDk!AW^1Q2cQ_e{mL`6X2SM)My9nhV??1Zn_8V-hC_J-}12 zJF%bXgk!_ame$tczM}|28(zJ9^9}r59C8F<5m2K+G<M0St-MCsx(5FI2Cx6!z+Zrp zJjp{j$5&$Dhnqyh&y=bR^AnJCRX{>H9S9@15-6;=HGrNM!@Sl&Nru@dSYVh{k-~<# ztUVMods=Yyzc|evG&H5z!?fdlL9WIc$Y6Rz-@KkB#rf?^O1)F+5{=6j?HP>^(S=2a z@K!OKA5f!-<$YrxYfN`C4Ya*?CTfYa&X|vB3SENqnlKh$Z$(MV$!$mU4$@ZLYKM*z z(r@V~u7K)_%g8F`J>3P!!mRqvu(E0hn3Q$??yY;5u}42TRyljxEPDv$Jf=q!$MlHe zGO}kdP5OM*?5R56Hkc;WaN&%av<C##geATvjTcnqtojb}TxvB5sU|6onxwdltl9v@ z{7j0`+mw}6F(z?Zv7@wz!}m|<m{;oQ<<zK<G0Sp7M$(>-K52)vyMi#)7^!&^e9{ui zNne!WHiJ@%%ShU1aDw}>fUuF;SOaONcVm6T?vAcgmUahJ?&?@LD2WqK%t-3F<)l7K zP?bw@yCpRtoz|$hQIKNA4KfH~r9bvz#=shm9mimCe-?r1-r@WJBt>N&OM_%DuR%UA zXk{^w+umtqF;~NtZI8j8b6Qz_#Zt<eW8(R{ihX^_b;`PPWAxzEQg3JXLdnGq@BKsw z;xi|HP>=^vE<|h9=o?$u3<AJGyODnDM@2Iv(>$-A*)SZFVBij$pCy#@IA%a`a|~pH zJdT2nPsUm1M`n*WeCPTT4Kk=}JBVq(cV>azS)X~}$ag;HLxFM%Q_n5ZgfYwQcE<xH zoEoe~M%unh43~U#C62ay#yJSE!nyC8&>@DIJ>J(*GSC{0H&ypQNayG%?oM;GKD5;p zc_-qU<H7!bwj53POUI|=QOl?8|HRYQDne}5!6kco?J!5uYgT;SjC|~d;HBsY=`k1| z_Xbs!kA!j_qh7^LFi?H?$dxfvN1hbOPdxPFF4G;`80O;*gYXfWAx^5bHRGZqiM*)z zO0oQ}_$qaMo{VzyWDq7+tN+h|iz+vSup$rmsJJT)R3EwF(jh80$42zO0e5kyDu?Cf zw}Z&d?6S2~5*blmHJ0<`)hfGUM&A7f<gQWYPqaEuNT(_*Zak=}xU4}@nqTC)CCa;V z1oCyBmgU(L+x=n&-X*Nsl1lP~a}v3kP`}E1WaRG~5vtV4-zAdVVu(cuW3)hT#W509 zTs`>9WmlBHe-Oy$?_j#QE(3p~E6t>mJX$r8o6%~OT`?o?#-rb)M&4}%CDpDHQr%P> zbyIQm;9aM+t4kwxmCd3DQ*`rKrz5~bq&EHu{GVORC6UxIbz`{~Q?J5nX5`=VAbE}a zyTIC3LOCSxk<b@hlY!_L!(&3?8y@HZik+<-p2RL4KBlA4!Q0URhr<fwr8PPYP^&<* z05zkxs=+%G&@{pMy8AsmWuFs|b)gnx{sq|I8_)lGq@!J)*5jHw*u)5FJuWy@51AsN zes@zI<lhB-6h=b*S@*{ZD%{<~wsN?EP5!YRfDvPMw!tn)m`}&=T~T(R+zsWkD6a$m zFRG-|=@mfR*49_RLss0iWkwi5d(~eY3kaWQ0{;k&_8v7*&N~nd`4^;ftHnSjHWx#b zItTnnF%I=`I9vfog9SB0zQMTxkLenmJOt5i$Tv92u~z^qUlH<_VsOG~xRAkNQ?Yz` zL-J~{B*Rn@NSY)<SpEk*SKL|y)u*wzvDufg=LPa*>?Pd!2Pr|#`vwU}g8)Rcrmho+ ziGD)qRU@&9l`6SfMy~xja1+%w@Hc~kYFG&6JSN-}w~K-5!!xdNq;_E+fqb650G{2I z!n0ck;TfCb!CLBxG>%q_4L_q*vR^49uimn^b?Mde>Mfw0@`{j7=usRe^eC<#Hk?Z@ zDX%^n;ngPa>RTziT9buWW}T^Y`udAev8&b9E8$axSINkuV}cP1)$-^H%OgTL8NQ%6 zHkTDQ&91c)X(1$z8gJovFrAKwRs`oCT~?6Ei97(fksTEnNWNwqhl;iNvlR`N!^`J^ zb1jjC?9;$>I=t)!jtu|?l5_nb7nqO)6+<6VYinR1r}p&~drO64*OFpyYisz|w2o3o zIY#K;gv*w1z89j~*c>#h*{?krsQa5lZ7>34?ASbh>#_}fz4I1yb`?D?saOEEgnibC zE-and-o11&rmX1PbgjI&Z=nn@k-`5>sOfKf-$${7F?NK>JGRq~j}O?64?^0bs5myA z6?bX4eV5F=F}H(#mny@+q)}Xv?7oeBh!BT39Fqehg07FNfSKiRXa;bQQSSuoO)(r& zPIUHkpHl2w+EwxyVG$Ym@R_}>ts>pY2eN0@h`y!s=Alb6cDxRs&86m;5lYQ>SgjzW z%l9kpHk_rnaC13jXw~QVAP!l=UEyDgAxlVbmzH`89o_T0ilB{!g)F#k%;t+{BaU4T zNeH#d#sRhMc0?_bE5-{MpREz`cv#48F~gX?C>aBimXMM~aU_f4j6oNQ-0NXsvzI9~ zq0c>h7*$<@u=S27^JtK77#4yAQDYPC>2G`v_vLRkFMo}Fc|tjl@~*h64V3dj_VL0^ z>p?{hqa|(ZFxnN(8;HL5;^tK-bxo>~sNfY2SzEa5;^zD0q>H82z>4OL_<7kV1DM%Q z_{D2nHWd>(wIa3D*U?o!gl+W-E2lM2EDUTuWX)>Y@#k;&;l<5!$<o5gi<>(DgpYCf zK+Ecp!0H`ltXv_LIrr4eEk%cOiyp)?mT-5xz?CStEx%JRUMYv0Tm|HaCq@~_8*}># zL2YEkF}JV5+^=n(_|VkVf5XjYtdtl34%`0)-11VKD)mT*tMP-cCnbJgFTYnvsg=x= z`KHPJiC3~DiCq0V{d|4%iuRqB;re)|n^ADXI}!7;ywh!f^qmOFI}r%I)5yQ{<G|F_ zFUGtU=gZmGx&uG>T2kV**2wP_Qf7LsD}*zVHw$hM7KfG5nuq+zmmVWqjSwSwMVUMt z`LW8%)xhS$z&axX`gjBP7Eo8D^pJImx^OKez5SlUL4rdsqf3|z=s|?%4fx1~u9nc? zeIL+&!5}rrr<!+w6=?8&3)~k3w+9IKsGPw8bi2yYV*zat+(JOV7pNQ1&T{lzK&MEE z@F75B1b2zWecVD<1Nxnudn=&z0zCyt@Af)8x!!GeKzg^M0qNb22ehYLc_tve+iXDN z1b3#zby?^FKzg@N0eZXK?Y{v15|KiK_bosV3GVxVek#zTfG$0oN3njO_f;6z2Jaa_ zw+Pe#3Nin6F`oDg$BX<EwNAjX$51W{RwRiDe~#-|Qd-(uoR8KYrd7ALMt_SpAq&g5 zmg7gj(zT8yzh{jY;c=oOZO@%SLv9RE8-Xg}>{%lg%=g9tLBTo}E@;+>dFIybII;(h z(0Pp2vx|$Dw9oIv+Tj=~C-G7VXI+g1OW?Qn#2GYOp)(jq=_#B}{XX-|Um35{tJj#{ z58xI&{%iC5r{?!9xEQxDLh5*&=8D@V&H1;Q-|J0%>L)i|-w&}@DN6p52a9%u{NdNd z2LA+t2*QxE{?DR(8s+UMpGEmYlz&C}I7-;S{<q+HSYC^AGs^Fxgc0fgmnr`P*Z&88 ze->o}#<+YD<w%sPQErFwUX+kw$&p@;Yc6mmg&zPM_#iW9Q25*2iiM<#JRs#Z?wR%j zp3lTcBed1{OoL6LR);^l&vdY;)`ZYYhCod0)@Nc9W*!)&O=Uv5tdioIAqk43WmMcG zi_2TwG>dDqxY-s*CDL=}Tig<hD_LB>#a(Q1966!qUS)A@kh{M_M@D<JhlKEnH9&j3 zojBS9LOE|4ocm3J`=Egma=a^PRxrhTl=>8%#~`t!lMP<E@>0|syjI{9^;(p+w~56) z9+2ATb1W2&TK!czqy>b)btlw1`x4q^-x_}$nD;o=7zRQ@*ga4_Cq5NGY-2PSwW?!- zTU%XB#`yk!#a7z!a@rXF0(_!M5}_OxO2s-R;kL^1O-=FBy%FLmSrM<d6e3hWD1|nm zZN~E#8}*ISApBu|9AX-rb8mjUAMXQh;_DlHa|l1d!a9|l)Biq=M{SV7hyRQa`c51> z%^~zPz)_{xu$q+W_AFVaFJ96WqB4I9iJNeV^388T(N%pF%4wQV^lNNcY9qa)y|2_! zDlRT!EmOa(e<5UG)`*Vw-r~aIGV3myLU-V^PtHXfS0}-|(**2fO#q>sx8C9&Hc%+D zSq%$i;yyIMqhK^h3wd#b+E?S4n`1c^IQDr=!T!`BV!faPZFoy`GxD8uk3Eo)18p*Y z(F!>!buFG>MVwH*sL~{XD4G7*2vx2C=Dm&#hN*H>3{{R_yrgtK6MvDhI<2ko_>7eJ zJYvYuFaT0wBA!_(L5P&dl;TNU*5P2#G%$61`;(lv&jW{N5q<p~*R0SjCZ;$6!CD)_ zyVh18%J{CkW7e5@S0=}(cY6t{cTs#cCyyGNVV~ilY;NpmPc`c_D=&nwCNAnI?nVQ- zl!Lvid<lfSSWh&b>?jA0rdDzu52!0b*v|mt681FU$ktid|4<EKDZS-exTiiuSU(y0 zS20_R!n->b7fnzi$;a^J_-rIF+_*<0!fhG|d<;swUH>~!qBSCs=zjoyw-bp{U>dRG zX5lR^>honKkeVu@Ptx%WP+Zl6kmjotcbhq?of0ofB*RV#LdKvtaYxKb<cA1DqdHed z$<YKjXj`G={C?OZM_pkxl9M-*Gu22A4C+=TIj396A*7O{I7*J<m{|WmD>;NJmYf;Q zqd3VU!JA7MCf>!*_eeOUVG~<X2VFu_%>XLeS#l9Du5Dq$o{pSZnhn)RNE1#h-@?IC z$hO3%SNROCkp@n}pV^k;g!JRFin|JDDQ=L?!srq;;hd<k$?R~_o($hguYtZgn0y&# zj)NK5k0*-a#@xOmaGv&><o#a-U69ZI+{S;7QGQ<4&t9s}!1Fn2Oyce76a3Q=otKFP zJ_xfWABVT6xA~{fNv*a>s_92XE-Q3Jel3w-_KH|&6wl{ZT_(Q@N}ZSo^iR8Vm5|SR z$w~P6cJRDGvRMkvvADA>^g#>p0$T6$fG!d(_!^+)0(}S2#R5G5=n{c`4k*7b@9{@K z-GY14;$8%Fjo|15J}eN26X+Sz0vFtY7B?BtSKtjBJcRGwN95?K_GmkxO9i(W&}9OB z0MO+ET@GkKAhxVm2y_#m|0mG50O@`22DDOexRGQ5{~t;>3-}AvLhR?QNBQAh0O%GI zjGf4U^aRY5JhcPMrL?w2e@kE%cKH64U|f)8VCF9m)OGOvp&(QT-rOA2_4quE+vr+m z*BU%xo&HY(MmDVfODNHF>;EQ7Xm<bID8a@4U!wdkl+4h40VN~3t5J?ac@0WtKfZ|a z7?ik1{~0K8{r&|gzl@SOjO$Qdgz_sWKZX*4UjG+Reih|vlsBOKF-pja+~;!K%gvaP zmW|k(u!pv|I3-Fzm!MU|EJ@j^p?Rj-GG;^bOxZGK!%L?_L^YUlh}mowZ+M?+Qccfv z0A7SL&X_#3)hOeKW_l*Z<<~=aG%hEUqaGU^n`VmpAoTPfh^a=)a`J>Q*b8=LPst|k zVj!Fg=<9;J-auHtVOv;c*s{^y6a(Rt<A4qm+<F7$ytxgC<pek1K#37tmeeHIvs`}n zIB5nVNaF{K;xd?8&E(n!tEP?0L9aF^%S|u5yC38Y*JNW%TQSF3hz?hAAG6RM7W%z~ z!tEY}0ihm#nBy`xwKH&|u~Y26l^TAERh_xCR9rTrXWlu+s@mToW4K1l=7*xZ#npH- z<EH%2m|i2O=x0pTeKmzH#^-cbarwwd4N-IZ`eI8+zlx~1H8@LgVX7ns_Ax7=IqBBr z90kR|zN48z1``SQUqT3SDxttFD2q;BW(II?#*SvV_ge`N0fbV}C-(F#>?%qW(9zk2 z4#DG>%_}Y`VYCgXoOnzq-XvFY|M(P#3VEktPM4uLrvNZxbB3VGmmb>-cvXKwZtewP zYW&h;E&dn078NiYp-JUf7a`+HWPlL52Wud#=a0EkYgOn3i0a&Ea@(v(#)i=zc%BBY z4baixa0Bvw=-3txECQrjQ34d@1w$E^7as<Wrmi3R8TI7_AFq7#gS5Fg6ygPQ(|q=I zO=Qmk<-5u8JO@0`cH=W|92w1_jT)t)(v>(?sx+mOEL3R%S8?D(*Sn>jFG~<bIoQ+6 zJR$u?x8l~BqdJ!PpW^b^_#lMD1EBHZ-flBcyo*{n(<nrmLs4xo&SV_!s}g-Apt&OD zGSX94zRzUGn4rK2PNb7V;{&OJe%BCSbQA5uh9Sp(wp~_03!G<(edB$j+2)skImfYT z-N1nq9;NujRL?OzVP%-s)}$jDZQJ8WoH({klcpW*9F8DgxXa`5Xd2i7#DSg8SkI2` z_RjA4=oWed6p|Y3*FCQn%N=ucgg?BX2?za+@4jlgs7C$?Muie}11ywUQ9>#`ilg)> zF3Lr;-d|cxmmeC9){mcdUB}g%@k=Zwt?7gUzGX1MD~+Fe2QKL8I4y8-f~`?_Vtbxj zz)|Ewxb!1VYvSmke!<M<51U@`u|`%<wT*Yc*Ag0eGJdSV$5N*?&(W*S!6h(GOU7|w za2S5r`_5(kxvYz1g;{`7BOtN#8d|Ng&#`>%lJ<KJ#Ra|s@7RFQ1dAMkWDOn-9+!-2 z@IDRbPJw<3Xth930%{Y8WKmV|-7g=<T_=1rs02;*Mv_`FE%BKciQ2Ic133*K!nXu< z%QxSc_v6q@f$*^_gm->fQ2sb!n(-Fw{>JCH1F;suT$`ycLTCo?djZOSqFjiQX0sRj z$(5RQ_eCl;*c!sb-FrVgPb2oku_3AV&SH#{@6FJO_ojw~wxCs%dhcv4S1RteAXBQi zgmfUO;;uGFb?vQ}#T8KY2<ZZmdx<Mxu7gm{+XUzvf_uh5@$O+@rqS9I_pq`bw^AKT zuC;Pzq~S6Sr(7>ubu^&=7H#POq}pQhwNTiXR<o|PJTsb?)ZOe%!!=<J!Zt@xl^C4w zjKxzjTr|U7%|a5sb%EVk0_Qci{T{j`wI{OxsXh4sAhjo#0aAPNJwW>kUFhh4E|70U zXn$NQ@+;t&Tlod{mt)+WD}-W2=Av@>=35ckn2;6WxVO7Z?Jg)<kgE?{5k7}&McxOi z(GNU0-2WiTv$j$zQky1cvm(^w+rUlLWI{RbB8wwu6?c`zU2SnM0AjbzX!)8LA=U0T zTJ0uOy(Z6G5?13tM;UObj)ulN1*^b*5QmR<qOTo++YUS1?zhE=V=z@gn&@zDY`Ke2 z;*6NhZ!^-;etNu(tKy;`-rH@9f6%nWx3{Dxl=D`huHvpRkRf04B5FZ*k>6-U$iPNq zq%F>V6^sNkHbjnxJ{^LiTxO5P;7(|*w$#6U389nCa|CVnPXW{J(3ja3s{4HGD`SF& zfWEW(PAzrJJ4e>9II&p5`ckc}<v5{ySdVdCv-##AkKY`HT$aXfG8I|yxtMN)SFy3o zH!)I)LBq$fcUKxTRQe)S1Qk@tyFpA<NkTdAMvJ@IK<ZpaSoI^6q-uFrkM0sChqNau zEM~OeZ6W}^mA@W0e!s(Z2)-RHczK0vm&VM3j(LbA%lU5)W>mqoQ9)oV*@WHS_?)g7 zd=6qjQd8iS)Pyu0rnoicXh;R&l;b}!(-PJ#(=f#4WYw-fb;!o04h;_j4uP=5zB{GT zFm?^LQ;G{a`%1m%CoIwC9~L?`;Wp))Z_21{H^7mG6w0L|pLNvhqUv-I#%+_1k6BYj z2-DClZmoerbOgClM<!)9WyaQ7^QFVzm}vZ&HDB7tnkL7H2*iBNLHWU$G*_VYZN0Er z=bzTySz-cG=liu`txvIIDF-tev|Er>NufWV(@kyl<4d(PXV+ryuil)cJUc`y`K>E9 zaFmt9@tUf0gjDAgx5gaRsh``3dE*EbLYd9mo1l3O;aP0(ca3QBkJH(_p&b9maJv&7 zg`}~_Vc!G$^Qp1IDVTuRgNZ0wW;9h_fU+AF`yb3&iaTMpNU^Bt6Z~=&PYl@DsNy|m z6z>yO@d)X-K*iDAC@z{oNwH%0;uOt-v=r{mkJ2A8iGIm^oruHQ$?q!{;}@5nrvt}O zwhjA3sr1xk9a>wp%xJQn0BsCC{V|rB)q+)w%|`Kgt{xes<u9N+6invvR4@r?m!9J2 z{uCFbWxOS0#!#KErjqPW9B7&`aCg$ee$WPQdNZYWGN2O$nh9tso+fZ3aa2ANwMb>Y z-NThqnWn#d^BqGTha4&wfZA<mk=hWI!<XUnkjmSl#B0cgUblWe;~!AI6XjzlN%cvV z>V%Z)iX+t(7o~c<1S1VM*;~3N!(T`*PIV;tiSaT4Kp4aIrZwpsoiHGRJp*UnizjXH zXmO*&XJGD%_+sGrVhgdauax*rIH`Q|iBFn_i0@Af_lNJ#!vOw3%-cfO;WLo|uR}S_ z;O{XESc~$l!2JLvJB)sal663{{u5B%hZ3z~?|zhI5Xa@IS`bnbqqrN*(d;ucW=P{B zk@S@ND8X+4#wGZPz)fIH><<np!Tnx9B{)9Pyr9@CN%1^xO`c1pyx6_4v?w73!Dl5S zwnf>Do!fd4me2nn$|)!xGK8LJ2~9|YD8+$gp5nq`I~azI0w4V>WY8M^4;*)?w;yoZ zVdvBQv{LHfoS4lQ*G3!*iEEIQX$qah`;#K!R@oXu0S0R-YJ{-#E$S-nN&_(rsQ3JU zFX7tmkhDB-WH5ut+u&r(7BeJ`q2O^HeZ`Y8@O*k-Yism(Mn85o6w>%HU*@_574CVa zGJeMfPlPg41CGk=<I?`CiMS>`Ti{==0Va(an^QyN=-by$4Ms_{3hLF}!Tn7*;%|8X zZg{+LjGC}-TdEP#CDj#oC(cq_ShFJ86Vo96^d(^`U5@ikjfowpS&SW*$54s1aVFE0 zp)$si%ORVgrh@j<v-zXiL#SR2t{>({nQwBlZ!72uvtwVGI0{-`zZ5dDe~PQ&24Y23 zcBddM1P)KiT&(xe7=i^YFH5IWic9cW66TG{P(nI-%<?UqHu@PJD?~as*yc02Vst77 za6JqBD(qd=x3bEfIOZj)YEjLw;!Q|BwBqQY755CF?WINaf`KY*QAO=;eB>LXBh5e- ze6?MhT?I`+qG``jXo!F%4qK(kN(RgW)5n>fbyh`)r&R%js`3!-tcL)E4w)=w8(vQB z89Oo*`jmwl0FjZLxHQwz-s^y)g}oa4$!MmTtpuf&m6*uAVAV5aUGO`j@ZHyBh0kAP zbe*8Wc3z*c9}jS*BWzTbM(j=4LtD_jm;R6y3m0kCk9{bgBTH8W`O=8ML9H7hom)Cu z1o~kdC6x2#AgI_!Iv~z8P@<4$9}L+fq6&A(!H^6E4iSHOoP`qB7R#U_6nxbWlcEnT zC8oN88gq<ZunN>+HbxCNR+u^wgJxF$6g(w^^#-IKF+UfSYw%WBoUadm2FBHgtAINc zJGE!mUGPV@A=iido2Vik?WOaV6lEa}s<hwY;ZT)!i2}F~#~d6fVfV+Ya3Qj@5TWme zV{=1iE!I&B8luzSGy3*7zUR$I`Jkf!O03&7i2cU^9*=T3bf87dNBF7CgRn5evxnn3 zvg+bUtBZtk-b;8)#WAc`+zdcFh<>&iNSDxkv*_oez!4e_{TwW^`;SY)fy#AwmmbGA zP%gH^&dBbUgX#iel%8J1D7GKNbrxk6g#Ea7%oc82oxivB9@@5|T|CP2f)ME$ZXXS9 zgbM0U!@iVmw$XR90LtAgn?>qePqUD3Og;(BbccXN;P|lZ*k>g<SF^yRp_ciT(Xsv} zAdT->HwdcSv3?NGFvoGMZ0gam`UU_XH^;HYK48U8m2}|eh18i5!pMH$b`)h<Z=giQ z2z#S(sI1;7W{Hf!S)Zrd0ROdPc$EfY!um2lq<zH4;C|{&m}ykVXFD@BF54FXHxc_> z>=TmoCYGv|vwde6{Q~aeyNYv)=gX=VVfS%vN7qt+cDU;Y_^gj&5Bq^%qnq$O!2Jd# z?eEqgI-OQ@2x*o`acl8}ife>*-ATlW<0uJLC{9r$f~X_D;}fH1kwEnggr;64hf1ca zeelKOtH8MJzdUf%JX({R1J$!3MzsCcW(4J=;`x4_C4v%>X~Lz-H{Xc1;Lxqj)`<G4 zmTw6vYAL9tw;|qEEhXfd)<mj+Aj!#=sM1`AyQER&(io)~YO44hDXK_RqxeK#9?$Of ztDg=<A?0qdlp~~le2QCRj#ffVuG=%Py@`}TUHl%HKFTb}JK1+u=y<=oF-8{Og*!%N zF|PTy2(>7S%zU@Sc&HH7dogZ-pS*#i^1+O<cTjnnZxe2cPnx%v7Il;ip~X|)Zz)K~ zsP7;X?L!HgkS^k$W~Q;Pix&gqhWpe(zV;;SckPNly2a_D|I#(RKV^!Na-V%qLhMOk zCmA}<oCTl2_LM;b>{n<r-Yk9i02@>o&yUL?MS&l4FDpQ}B$<V|=dLR(caFGA)LpWb zbpl?5D;_l<Cx|r5hY4K>h-<4hc%QJ)mo4P8g5KO+hU;6v9ftiI*iYOIe{_ps#Tgin z-*aA{U9YIM)x~7=qrU_zOj3+%M1}ombd4x_)94ye%+RtSrshKC5)d^Ps1kNvB3dMy z9=8d*zwtfYm84qHuT4+;|FEB3X^<A^s7r=&!c-i#X;vogxgfXcS(&PzD@%K9OFUQh zf#Ul?E7XM&(w3s)*iuy7G(bB`v{Eoo&ifUheWj(i!9Y2WYir&rIIhh}C{t7;%|8if zBHv?yw}=dlORi=*^ECm)kb8`%I)mXaiGnY%P`IgiFR<y|b8&WfKb*52_Gau~+8KXz zlMgJlAJ@}e>cGStEI8WRvkb$&T#Tr@e@?XYW1vQ$&l_viop#s_h4~C?#zaHm<B$r$ z_%QY+i-&&^eoGlkNY^@1+*PQhI75xZIi%6f_eiIU8AV4bEWsaL>TOb_q5g3kb4};5 zz|o6M!G2EAxvA7Uu?Wg_&TB9B_V)C)&qFuDLVVU7M2tU>(Wn0c7CO|Qpu=|{7Ixz^ zaWzT&$0c=}1~bRL_Y+Xk3totKRB95^48G!SG)HX&!0z6lhqo7pk8~Q_I|4@$8jbxr zmk84rcK7sR*k!u{83pDfJb3C$@}6sO)9_0!^SpjO#|0?)l0UaENhs%CYH=$JWM8sI zks;|+WR8l6%oVtg8*Y<5zQ`;oqgD?_SYW;3a+#SPe<Y*OJP{QdR{{A<uE@O0h|GJ8 z$XsfvNk~OTaTFQFWo*X9j+Zfwn5d50kzXT(!VS0+y>(nbeLC>43^MZT`kevjrm8p{ z>9G!ck-PmY^qfyTnBo}4WTfL~0z>9E<~}E=@JHKJCE51#H$EE;+_ot3BC?$eDW%ys z59LWHDZP|hR#4R>q|0b2?lyDON-b40H1sHGRK~?P&ket6a;YnPny*wxEu0y%h0T75 zT3OBh`#}Yoeb^bH#>>|16H>FUxT{c0aZ#y5Q2o+sI-StGDFo3HuS+bB-az?*%;hvr ze3Cz2VO}2J20&Y&u<d;Xj+wj9EdGw=_m2&qF@Znu$DT34Jp-4Oa36m>Nm#txX70Is zZNB{;whzAnx;J<O7HR-Q!G02ZuVY@n0UQOJ8I3ROfj_#1K7nXV!<2c8I(qe^JA~Rx zy&avUKEcY@klIhh%B#KSiw-~oLcc`%^Zu11rO!_W;-8pktunJ;jKW`d15xd>I53Qp zq}UP9?IGa#`!fA$e_vyMU$8rEH@`wA!%rt0Gz-4(GZ0DAL=*z$LWlzuY7xq_P<Eoc z7UkI}S?5t3_7Tc?KeD(743xt+=KXrVwz$7o94W8oHXs1h>v1fw;_4GwTqs=Udz=t) z6RUuEm&5h2n^@|)iBr$-!#cX<P9hec(X_o>xr<n0Ttu&N5g*0-sp%r5Ln{?`J>F1p z;fOU7ftg`16C;%A$9Zm&moW`Z7gga@hca%c75y!gz*#YyFXoLnc2YVecz@Sfei3rW zBnD(s<dHF?Qi6~UEK}T-sHHebI)pk;U{=E8#?=^^q*EvYBPrd53f~SK+>6Zle{VcV zdb;O#>arz<CO#q~Q7#II;*TWP=63t(9bK~2SrZ=MWU1ADoXIUc2h;@Y{>JBYNjGJL zj!rxZB~|$YmUM(Pm8ZBh<|zGNxX%eTJT6`A4<z?L;z6q%kvJ3c^PwJufo(uwi#fs( z`TG(u?tsRbz|kI`i2b*Y>+D_HUFuw1RLyK{jr`20hf}~m6Z-lg#?gW@IXha_x8c^@ z?uEFD6(!+1Ea3>{xFVdv@hudWg>YCtK=bTb2)90ga9_qP(+GF(kP?pT7ty6?j;P(t z{}qSilkNeZbma{wGWd>B(YD1mJ+Gf8`Bs!9HdnY&1t*l_a(f2HH&@)97PrRYq6|QU zkdkDK%P$r}fk(j!JoH;ZCo?`tt5!fnv;Ux#Z2U9W)etk~FP$m@ju{hmINp|SvjN?n zn6L`^=tph7F3`2W{eSkp2F{AA{C|K&@nW*16(#C5SH;%=Ujjs3l$T3_u7HY_Ez9l& zR+rsv_hR7dDv%K33tDNf{L0L?O3h5I6cb-ED>W-DGc79=Eqm8~n*Z<jJZH|FId|^d zx%bW@{r=8}%X#*hGiPR=_jAs3&It51K=&xzk4(KfKn#TN;S_AVFpcqnIi3SV+CPoo zGQ<!1s5}trRdLXS2~sM(9PPIjD(yVJb>ZMAhl+0SbF#kpL>>H`tN;Fq{u^FG9sb`p z>c4j%A;HoQ_20bS3XU2zngwaV;Ak+)Ly5p~9%OPN%JWgKLfMCZx1hWLC4-&|QIe)t z<F_Q?7-y|Stzx)S@%EP{kRz1AcSAi-aQA8`<55}!_n5&kq!Zk;2KSP|@$IF(*A0#m zCb$tA8md0=F1SA6c2Q%5D>S5gT}pvN1ACj%q^Hxhz)0^&CHmzeM%71<k$uUG=BV!3 zqo^ys4!|RN+c_U_AA?#PJvacrm*b~R7GWTv4g0~hbWBv-bU(5gj1rq^rIKIljHrt) z1wY++-khy*pM<`1Du@^wHc~QmF{moGnvm%|mml*{qYn+B^g#R<@P*r=Ug+=zqN4bM z8+d<qA}}-7FnY{bVa5D*e8ef=%6P1$qZykS$>2nxW#NJBxn*0sI(rM*{j<%@-G!dR z4?VCM8zB`?Mx89G98+l@)1s0H^I&>dgzPl9ZT?{s%EVl#OR-F>*xQ#0Lbc1pFCY`^ zV`Snc1jhOZlRgQVBWB`e7qAX^p%ILdHHxI8T+Osaq~!hHglA7EF`eiU*b>8-<GaQ$ z5vpBYPKCU@H%4B*71;I?^3tQ$12?y{@@uWdHpGxO${g5+q$-AQt(zz0*o)wa%`u4+ zCmS6nR6Eb`5jyYg7@iF&tK%_bGkP+m^UU_1u1<a>DZ&H9S1YaUk*(_LX-h!-GaA8+ zuhu`Wl2D$QDN-y?PweOW3_`Wb)8_}Gk25gb$Fbvxop<qFhF7@_Fw_k~x5zC$m{@cS zCPm_8t>Pw1Gq2jF`b|bFexPFct+<J;Po9KwKRFvE_pcf|N~m_Z{~he;O)+*9>nZ%B z2DzW3*U82Sc5$83tSMQy-$b+cj>WQ9T&Ex2Affb}k4~v=HC5bXZ02`Uv6=kj@NZ*e z=QFj$O$B@HU1;TOIUy=hIi45s7xk-HmAG}Ze3hu&pD&kC;?9bU`_>qlBh>%)>N}hf zlA}g@MQ2=2)WUV*nGjjGUj-|C$7p#9*Xf5hNGLrmm?CiP)y}YCGFC*WcG-Cn_UcP9 zG2R!PaqQyZmzX|-k~U<tAjb^z?-&n=%K&i4_Si4P2%ce48jTh4GQ~#I7TYu)?f(q% z5^Bu;<HH&w{p@{>&Je0yXZX3PD`R~8U8&jIU_HIzWGDs*&KF5`e7&@VwZz@F@>3_2 zk^>{`>JCOm2-Pkl_drHg#mLB{)Z##Y%~uIp>qTN^<Re_Gf2Bj;Yb!o)Lb<pVlOwLb z{i~UqAyi&2BB#xMhcGXgp1BAvx5;t2_O#hxw|hA&e<qx4dqL)Anoq{W3^GOiS(z{v zD>^k|b~`?ao>$uj^iDMT89C0Trpm<shFgvC?eQ%ZGdJ?aRxBCcUe<`DOzJhiMUz8A zG)XApzk+ddMf`cw9U)X+#DffI11;yLtvC_6mzs#=AmMJIDak(rbBB{I0V}MgB*&sW zjT6&ysJN$D=8u|NIy$;qCyo}`^pVVw)^g1tu|(jgCV%})YHBATZ6_h^!KUqB@jiCi z2H$t{kZ_XqCCE(Vbor$yVPCw<P;yve4^U6Sd_uDStKgXPDY$Yo_{H4eG(%vAn0|1( z!xMXW_cqr>X`ZObU)TKTb0y4=j^#rvsim2O9C<ae`+d9_E+kZeyc;R!bpaip1s!jQ zq2o>^WIJqXeMzl=g4H#UkajOPlZ+BdKLLu0ToOt|JDsJchzGiP|En_c>Hsn8<zD>G za)`%-M=AxZk+;(Ae<l(%<_RRKn2;Fz1**;TMrK#?STo$@K~ZUG@`N~qBsWNKd`rP4 zR$8R3jo!?gNcIgH^u7g>%csHDE6Ar|7fix9C)Tu$>yEAf&gseLb(AotH(&4*@r?@( zCJcm#VqrTlj~fIMZk?lCGhDK@qYfOco%pu!90?`hx3G-mjQfZk!p8lYIx+5FK}q9& zElSGCmy8k-%6QD+65J{cl~*hkXL8ww5tArLDcwQ1<yA^xnE3c91x*69PC>p99f4cd zIYM+CYEcoV;Md_QBAMs-XN9u7b4d|ME-N~Tt9k3)EulbsIYJ<)bpAowQ6NZPGM&f1 zgG3-kp=89rA4=wQ?~jsot^`NKfDp=f+$c(Lb2L<5FpNAHZ^ae@Z#4)lJ>nQ#+v`t= zG8WDAmn<u-`jv2#mRZCktripV>n?|1r1$3yy$MxATV5B?_FT|*s-r_TZ4Zp3ZEM%! zZWH3Z>GrsJ+jyLWTz%N#s^}Wsqv#Q#YWR9lD8d^CzHW-qnU~yzN+scu0j@d|#CYn@ zUc09rl@6u)=SFi<ZZ{#N&vw!jsXuE$C80B+YUup^kp8?IbpCA&oo{eQMrxpQN#B$P zvEv(0Nb$=fBk+ffY!j-6<|{(7Jrgv4XN=AIQ>1J!>1<t;Z#^U526KT_V7E6|t(1!= zF>_3I+OKMI>)tjYpYo1ohz+6z5#1nE4WF3E8Tgh{z^7~spKgrQjams7C&>NHtSauE zkYi^%nnhbiOC<avl!#yPJzMr}-C+T{XM1&IKpp2A;s|2AL$wVgB;BQf!;R?)vuh#5 zB$QFh#sx>J2(Ff%@D5l<AwA*23i3NKzenp|cN_?Va&}@k%y^(nb3K+G9v%czSsp#c zh@P$+;R0pcM2$@(q&vSXWcNRd_i*5Q&c%SlAe0UG@o3Y-i+Me~xIhmtZV##ne+bDg zM1tckM1re@KYO6NEBx72K|X&@MC<QyjF`=z!>i$sQH#ha2A6g5wJYLkd{b52IH4?@ zgv~M1lZD;DA&~__8E+AIB)AR@B{GJaDR0(rgz0|149OK)cu_&VEZmFMKM^Af18b6n zV0bENR<W9QP=<gTu|)ND6Sh>H487S8oKW_jz~(3E$=;tJ5h8npG9Guq7996G6I?BJ zXo|8v?1E2HkS}{v(E3g>vUhY%vNxwVv$vFR6<4iJdWzdAX?}{Us#_-H|NY=odi*~Y zToL{g%6R-rf#Bw8s5aZvi75oJJ*O+k=YKm|9~;B}lWOLFiJa6}u9Uc@dWk5}VAT(i zP(}tL=1WgTI>0%R5kmOBCwM0~j++av78~&gcvF#)-zvzLk#aVop=KEg=b6TGC0w<7 zi3qn-=`9oTe-P%!(&PVg;EM2{kk|;p(MAZa7XB|aKB5rv5!2E7+hc4*t|tBm?!KnQ z?S3*)YzL;`FB?eXrU_->m*7=;GH|Bx6NEAzIWM?24b|o+j)uh&8!%o$z75!d)^CfE zfqXSGkV;~&6HuhlCa2mYLnBF-HjO*F_9u-t<t-9Q=>eD<wWTyFWhZH$`Upsl*eOC8 zwLOpE>X7g!xLWMgKO1}*{i}j}8I9V7!|qc*If6Yibtw8)YclLqfY@%5RIEstA}mxj zw@b+Ne>hyPZ7k*Q;D+#>P{!j_t>ETrs5aZQw~9*GhuKp>KHm>R>;H)v>l$8-Z8D5t zFCoY-cNMinwd#0Y{jC!6d#63aT3#E!_W~D$--NJ1KlmUxPS*>r7Cm2Q_<c!;-v^=f zf5z~8*V_5*XJ#uq5uxLXQ@T<Oysr2*3HiLwd(-6eWroj$GTvm+UvN1MRiM{qG>j|r zgGrq|(b5YJPpRn~uSTHbZSPL%XwMuu>88&G69AQFfO8I^UvH3*kGo?&#`elGq4u=t z2NJ4=_FNqv(7xObCvSImH%NgrK>%LmSYj=VukPjvd3Itpif5kDAwt#gjH|K(p6v>K zc`im@{^O=Br@%8BJ$}zRSgYWgzFL@4qV<GSKPw`g|3RZCgsP!AS0x8DkMcXVjk>Cz zXkKFQDsAG&-6kOyE<(ItY_F~~d>~W}AGpFd;6pjtztvrJn3C*=hm6uDe?;pEsosfB zj!kt=;_n8ENo+=_8k%#3Xh8F*%xYWqKVKr|s=^|q*Y~Z>ji>h<3HkW`@x^=`Yxqd0 z8a{FrXTZmu;WwU&@f)}FlkNmPsI>LQX*nUS$4BT)y`eRsYG}=skpZpCB}+E;lfUrS z!KO}WyTg-^&i8;Ku5J1^aAKPXRYPaSy#bxy0hxX}My9tb(RXlG4QVftO0Oa9rV~>8 zh{*l|7u^cI2~|UH#;gIo%Oy$<FVSD9jwsay>z3)?nzv2Jr_RVeLY?U&5UPexjB^7% zm9szpTf+WSN3as{d(Dg}(QZOYUk^*}+MgdAeIQf~of*dlbS^h`@u}4592csmLh!g7 zB&7T`k$r)y4ebe4Lwm+S0qt91`ww*HrR=!$Qzhckiex;!NU&Pwr1t~~xi=>w7M)<? zBSO{ij{ZL2UAYBVN2RVer6Qw>q@mzXBGWR3T1-gWry^pa0Y)zfC8BM7()B&)1TJ-g zB0K5&@)C+sBK(0DMmTASZ*0AUgcuW~P(`Ltvm?v2W(i&hWxVeg9N$oI2__lhiS-XO z<z`FU#9CJwv5bU7=HVuyW7#GWl6Wd23GM$PNh~AE%uN;|6UwOd=z=3<1XnYWIehkq z7>Qh4C6TKM5X%d)VL&y_CuGk3K?-RMbC@hF%psKV_5&RSM~VurX6F1Ee7-J*IagH4 z9NNgDG2;rTA9;O3^4^}nyf7P9h)XErZ2=twM~VopX5#V#CU?aU_medcw{)adA(cxv zl#ty2gySl2YM6d11Sgd7_?Z{MkxGKAnc(H5`LY@aUNlZyA)Sk^Pe|Us2XnfS#)8h0 zd7DC9LL$wABSi#PGjYo;=en{=;s%D+Bm!3EDx(`nNZubNa+FMr6ao{H<y?XzRRmWv zfschEycT0FuBwc{Y4sh-%XwONO31R2LH1HfjbIj|FpN;fI~ueV9H}h0ni)o?aZL=v zE~<=S5uu04BrDH^xT_Nq_74dN%hWp|ETN3|N6<iUq=w*XCM+9WA4Awnsw6C<iqO14 z1!OI{HX%{p$i}-z+HdBy2~i1Uyx$odDIvI;iONPl7emxbYawbdMNlb8gDVpf^j!%Y zA`{1ipoB8sZ}9GdBNYS}PtYlcY`ArRwVE&3Tu5ayA%^ij1O=$`4gtjN=z{SL-r^>Q z&_@EtoF;BSbh|SzQRDv5Ab5=}BqaO?gFV31w-4Q1VZNigz2AL$!=H^PVO_lY^+rDj z88bpC<Gq4&f_qIv<;Oyt&&8U3f5<Ak-wz4!KDyH9)g$N~)Okk%_xTXlUIpe>hif_D z$hBkey9S?p)JKuOo4;g16&rgyjH|AZguFWopQ5ya^ojaSoR56ln>F&?SM3yDO+CXC zF3v<rNj@GW?bk-oRMd@7#^dOL;7C=$)x+-!ZWj$D<M5ikMQ^<EhX3(*d>~kj4(3*0 zIY8m@@l$-GHK=pYRk)+l+uWMfa^-Y<HhxaS=+!GSZEQ(haZsPCra$kfP|G(j4ZbPA zocnnmjyeS;ILiU?;p@Cl0=h3GIBx*s?(F$R;3zm(<M*W)!RamF6OfB*mz}EHNhm&( z!y^_~;I(*61lpJa1jgpz`%`!ZqVzKhmSgFC0e`R1OYrYCLPIFy{V&c5?hOrPJc^3o z_z6&{7jL(Py=&a>c5>u8u+VGK*vZc9!5G|>EJH=_(~c`#+;wK&-Qh(~8&@=hTx2+^ z;JhsFP-C*&;$tNgs2#@}d!)akOFJ?N#1}h4D4Bg&zF`E^b~CPq+81p;O>T0VpgIqU z9~!Cy#BSSPAO&|hQb0>jDWHKoXaxR~Lou$qrM<`BG?H8YMdmn_-S{UiPRGX{)SYC5 zxc+Eg$<6<b7fC2-?}nqYXM$zq`wi1SB$Q0jd?{1D0h1DrIE{xm4RplGHY(RUVc%Ba z!u+nT4o=@}y_+Ru%W?0EV#_0jEriOm#l(DyCveLickm7jebf?Wdz!e;;Ym;a%zO{_ z){eI7(by6*Vn)wPO$O<;hFklV3HkF+Sk7X#c?r}N15KzLe-3%v>Od(DF%<tc{tGx1 zl|;cXltvgL;Qb(oo(x5U0l(hXu5N6>hHo&7VXm<wq`whCh3Ti36H@;hK_A!p%zPH~ z@DI{x)Ns#((eeDetDSV`>NZeVxI`#}t&y>aSK%gVs5;JZ+ns=OQR#O!=f1O5IoBUN zJ1QZ!zPYEXE9@F)@$-*3Zk=ejMJR)`7SGc-4OPdjyH$V14|dAw*%zwjR@HqE6^q2_ zSq&{G<lK9LeoYm6_8rrMAtZVxIO>_;;(II67IFc)Qh}a51|j;4GcaN6*-J?|7hyjq z=UWPk=3rEGY70N9vdqz<Bv&M)^fClYVSiGIj<kUyV$ld?Jcj#%dr?Ex>B#&LrJqGx z?uLanrJt{X($hN&`JT>}j#*1O1EP1dEG$p)l2<0A{JfedKhIE}kPOrbjstaqi<faX z24IxN&E5kEp9F2mIFYj*rCsMlY1pwpYIm~P>I-|)gGz0yelb#8^@a)gdI3lj)+lzN z?=lfIp>kSb@x~e8CYRm~$&pP#xFKS|udm=-r(==Wy=Kfd7QZI~JyG4+Gu8K+CL(Ne zm(c?ybG_xNB&5lyu)|@RxP#PuPIp6#<$92M1xg6Hw^GMZZ^K)Q)ghGezKe5$+n}M^ z=zEB=K9qEBHyF@&IP~F{G4%aaG<}V=j_h%`q>ry1;!1qgiW^SI%T7c?>GATtps?_g zP{tbt8Vio`mf#ZGu?SuH7bH(~g`4&Tyu1Ldf55SAwyxY*hL_L~<u@iwNVs6SBs(f@ zDOv_9ZYI?SN+>%oMaFgX<^EBL9rznKDzZZ;<6Q-w3hr|ns?833(AWWP{TIm2V6^_@ z7(4Jx8QGarl!RB37sXYhxnEqbvL+Mq?`hCEJ>Ab4-6xdsMuM(_%W9}L{#~fXoM^|n z8DGFZW^Dd7hJXJ~z`qjdd9hS4aZPECmbjqGn<V7%?ubv)<MBt$$P}TB*9h7Rj@y<9 zt`__LiW>VMkGbJqz~gc{`lAFq4yOjjQaxO?G)KerDr+(!|3>bWCjXuXRmH{<5*-yB zbyRS*@Nc!TvD`K<;NK2t{qYzb{c9Qi1@6#fFP5ZsMBQi(MpUe@(S$tw8)%)L4xVl7 zETIg(*5G-9YtT?_cJ>t2YorcxGr53=H=^}IOpLYN2;b{_c7H^{HI5j&Y)PX{Ju#rW zL}|3xUr(7(%619z3Qe{^wXxV#a9->Lp^UcyycgU?4b>)NgH`lS8RHgqfs8R<{ec)e z(VW;$*uxYNTZ{#|FBQvKh{~Hw$hBWPTuZiTT&ceFzd=pm8zIT;5F9f*1XqiFAE&%B z`Nj?C0=_X7>FyZ5-ByNg40wZ-QCE=)INRR2aKeOewP>D&>m+X~A;0$BGfi7Q3RDz+ z5z2Twf=hy9BA4K5;ny{WU))kI;MYswm-|g#yT5#I5`I;<zaFOhw6P8Iv%+Q)^6BWv zxxH%b;U^8B2+4Pn1vdnI5?nbxF>A(7qft|}%$zwy8N)h2%$NBe{7!dN=`i3p?1$NW z?_qx)65iO?i@=&q>g~<<6mt2F?tIUL3HD!;TM8{;fs0B=&R2@UP!5BhV}|Ysm3Ik3 z0(?!>P8=f%I1?90=S9FY#gO3H2olJ9wRd&S%J(kmD3~`jn1nBS^`2q<=4+m8xKF73 zYZm8Ad?geON4+0yDp`z*-c1qjXR&xmp)1$Y+18QgOPW6tzTYRnC_5H)=ZE+l^++g$ zSeqH|Z|afSFPq4dPzHJKo+r5V8Y)j4R|M8Pq?3pxJ9I;Ya7<Gn!lAguZy|+s>NBy- zVh#j`iI8(0fjI#<5_CF#%Yvzm2%R~$rMs}CC*KAik2FybHH=6|*zX38oa<#cLeJy+ zkyi4iZGQNCi{2K_{M`Xbn|$UBN}A)LI*GH*gkyv<-e+-6aC~#Y-DYri7@RgqAZ>ka zE$)Q@nbkv@@7oE$!j(1w@dwh3ry<iJIOqbl!;hK3{|LU$7ePQX)dt!bSdlGg&4#j# z1H9qh@Zt49ehu$y%cI0US*tpq<1##mEs?W4Nr}D+rc?YUA(2SIt;bb@iy^}4AtEr} z_QNqm_*XI_=t*9i78;e1B)@V<;;LvAK`zk*`GO$`p$t|Xd!FEK(vYR1^KxrmyOX`P zJ08LDw;MT6)t!5Aazo>PbP9KOAT~_<>|VaK;f*ERKQOr=H(<+P7T&PiXEfwCqYXeC zR&H2wd~WSv{*_xjxgk60&f~$g85*N=%GVn6h$>BNwuzPJ^6qn0OPA$LouK7mE6-97 zg-29Ke6M_7^L_M)uPZLj2DC|8g%;lb;}q{+0D}~C7NG4Ev;xq<piQ0kc|bcrpXwBq z#0!57xOM96_W@CW0xPo?n3Em(cmz0DRCHQA@32@aV-#ch;_ePxIQX}cjCp9I_!zB~ zr5mTNhc}8>7Cz6oOjudKgFZ$UtMSWwQ$tD)gX&QYVWsS2UYwRky}-T`Cd?ay|Jsn> z&@fuP&M3RV0KRabB(qDjv(=tyOtNPJfxThI+7ilO@u82qPD2^*ML_R>uN>;VtReYg z%)SuFq3TQPgtV^ZR?lguKk1a*@)t+t*1V8gGt)@$sOHn|Q})TJvUcWZU&vX7Ix4cr z&v=WZmJ2tHmYJkY+JQit{|7C(aVDKV{SR69H`;wUB86c=3&JcT)V9%!Jfp~;^;-;; zzB?EVY*S=H<X7<IV&(~17A#8(HU!sM77Pnjir;<WKK8rci7PI2G}(UlKg0%Llk@5g zr*(AAZ|Rs5>bcI!cX#z*DpBco*;)x{@-DC=to4-AAH(bjO$gOalY7wSsu-HQkc1{p z`JOq85Jk0>BTJcz2`RIWLmATL2}2h`)zD=RTo>rcC(-6dV(9Yq2tApyxVx~7BnVCU zKq#V5Bz)V?NA|(Sn)fAC{(XxUZ{RAY3%VSb8O|$@0gk4Dy|wFNMPX`tN4^OOZ+KlF zO!$KD-YqQXWM`*QeL~jjLCs&gb4S#$RKJnIOV$rw8i(EPts0CPYRL-zY8(*$bD;Gn zy5{J5JgVcJ&E_iUvKQmg+Nkj5c%b5HxV$k6kIS3Fmm~fuz8uvSS=H7wcB~FwXia0c z^%trZLRFVqCv$`Q6d9uK(03V5Sy%dXrH_6Y1GGlG2A<Es;KdvaNZ?@1sv*;k-N75( zd>`fN!j)9GMnKCI#IDf_1<ePvQb7v=@#D009z(fKg*)Hi5dM1qqi}R<A6L+|<}A&9 ztHRxFa6ba{)jGEK44{kD+25P9e+RTm;RX&s;G`gq$bCXVdjMLaAnp-#v4V~Pbcuqd z0g@->*8gi2t^<&`?eh$DnSs7!pxX@efPwIkYGCM6lx`>YQPiUTK8*6BSgo8!b2JsH zkh5E`_yW2aMko!X11>)N0JIUOu5AcwD7z*%TbJ;8IC{XI62m4QU-!H|KI1n~9)=S2 z`zE8j1to*_TTz~Y@|!4Wd2U0w4&}E{-hlFUlnlndjq)*+=-&1{j}lz%dj;iPD7V9X zv3FS?S27}htZy%r-$OYDC3xO<97;I2zSB@{K=~J3w+6q3PB_fxtj8~lpLIlq!(sXr z5w!Avcq>0sqJVfSKhszxhH&aphu?A7%FlGjHuy}3*78i~(<m8d*Uvg?mGQ%pJQF?o z^-wYiTnS0{N^sZdvl;Ik=;=EVkq=d$;Utt%c4ZVgRYSd9U||U1T0plc+;tkl`hY>6 zHw30^s5enV8SfE5;}z~v4dLT{Fs!F4T$_e;bm8>H*35+ayLX6$1j{#;>at0-5y`5B zdUsJBKxwTpS!*(Cf&r1ZXS?9uK9JXLkbQn}O2-=LbOT*(AQ)U-@3#i3y!Sb;!H%jq z_OieUF~Mci`#d!ws-D)>wXh?v{8&qS2S#kCEN#tq7cjz4>s#`qlFKaGE<Ws@=Slm8 zU7M_69SN)mE1}B5&*e);c<1b-;-@t^5eyv#1@j+>fY_xUxi^V39gr{t0;zodmr-^& zWTMZcpPGr^zv*b@D8Rp~Nz!1ZV0www5Fl5nQ;JwniipFG171K^!0wVV4j5-$!)N4} zE#HGW&jX^T;(+H-j>X?Epln3B1to1dhqBLh{PAAE)#I07c&gMJ#k_3gKAP`xBX}hu zK`6s`MB@;7C@AA`wta-MU(A9eRMNKC8aV<DBpcm{?8R{{RM2t#7#eGIWM>R;elKqC zh<I^kzPGn!At#nJlu&tIbL4?^y2sFokfl0_2W`FwF%RD7(`a*^^FFr8xHRH@0$n(v zcXpwr^$e9hHZ5O}F`8mz!uNd~#>|#~zVAlk*9e*SjhcM9ZKeHU*W=<I=fyb25B*V- zFKa4%F{KF$T3X4*;x{yB)vMwb5r=OVsd^ioSB;*aai<KCvaR;4Aqz!W2qBROEedX< zh76%Dc=0lz*sI4KgI@i`4eN<U$G%%S_A3Ojc1{CEQ+0Q9ONLVhqePe11T}Jg4bCtu zr72#TTfL&8k1ejbQc82-s>uzL*-TC~GwgQ!xpG5cw%xLt)>y=L7O};7x#j0H%<~Gn z6EiQj1{+<dmS;4~d!wE=T7^Hi?3jB{ApGGyKbx}{=ALi}`e}Wiu;vlH`HsBI1sh3~ z=KGGq|9^)b)p^GO8nh3gd4T?*a4P`)M?vg4)v2>z0W?rSuNWNjF#o3N@l!RQp2}8e ztF9kSs1EgLiD99=GaZ548?_Dsp7v~5tUyMtpqQ0k*xp;{Sq71eJ+Fk4Z(Mx%{%1W- z-LQwzzjt_phWnKt1;B^IF%0vIqfoBQvSxb$lMdT?oS6L?&*HciO<1c@bAna>^IeB* zFA6wO<KKs=ST;Qx<rI`-P|{<KMfnoSLr}hs@=%ndA(eWi<ITVf<;`$s`-qCXV~JFb zh?V;_;d|6GSKxuud*(!a({1dT6ZKss8u~pnP>dp>jCVhzL2y6NP{#Yc!BHEf9;d*i zUY&+AUN@k3t4O1up^VpnzR-TES2RjP8E+GyZz<eU8Y&TytX+@$iR~%fp;$Xp+uFD) zVn=niWLLB*mWP&1EL4kuOm_k!h~-9gF&1gY5Me%NG?-ozg6Tuiq(o3h0}7AiQ@mY2 zI~_PUChu7MRz&nUf&ika2T{YalRDcA?14y@QB#jPPkk(XR+%)|*NDS6X^l8{%YMeB zX|qH#@)i6paLh<0Dp~rm;vc#i6T%>98s0)gn^4Ak2DtYq@qA80CB$x~;i5m`Da<P) z8SuM}@VhG8fU=PFC07qE{~W{$9NYPLhMeQr*!^Nid>DQ|jqOfJ4lw8@Kn!2~_^A<X zZb9G04i(u|%HroAy#M;a;Tij1dJ;WRl7*UtGTxP_E4ZsPWTL0#FJ`0XLL++$q9VS( zzZ8wRBg<oeBUui>@3mOPpgM39`r}&`=co6AJYj?)Qx>fhA3m9=9H-+(Hkl|)cN$?L zWL_0KuMhH4B%SHgD{Vfn!NqeNKHCxX2@wGdpW2<SE5fOlDSi=R{FkW*yc|+zzl_Us zKFcQjV6jb--IsNe9mQUFPAKE8M;*akqaj0x<u4{Pm#FoS(hHbNnaqK#I2dD6VXs4W z6fvT<sB;bE3l4~0lr}aWI9k*X<M(ug;E<+>6to4^;u0WYw92-Y4`ss?mSErl-19WY zTJl-Q6I@^)LC{s^fvT~DwA}svED3`oD$+1So+49(WQl!NS>+8lO9(OrVLVs`2s1RK z<*b(BP-Bj1)L{s<B+=W73DV|0N~O;Wsq|NINq3A&?_NTs1IhApGfW4#NcM_qBvkih zdxnKEO5JbHgw_3WZQ_}jBCH`KtP$J>ys_ZQ_`uMdH=?6@N4fo;rK8x#7$*4YOp*P7 zL*p61QH7@B_iQP3)+zixLG_;rRrzU$dZNnb;(n((s$4ekQK}sMFx99rRcEo`4<Q-t z+f%8|cX5_bNj3395kH^_NqjB-`jfb`o04Mt>!Tz16a=z1k&eqRGcMcz*p|X6-eqy0 z;=^}z^xEHS2ur^7Z@vkE5t$}rxvQ8E#S&Y1AZ!cFz#|-{M0uOTP>W#-43~Fz{A>4M zM2rh|DWyJ~@HG#1f)jboADGu9WW8oGuiWIQ>GBO`w95Et#J0vy7k6}+dtawCQy@BM zfm#7Ec`*omuK>nPZe9!=o*c8_NRy9EUOlC~v#sl6y(ZlcG;~o3wf#vbl^q(<RWklO zqf%WD1loO)h=;3O`%66+=@lDJRR3Iw9QvE^T!}_DXe;-F#EIS$%6Ja}x0kY&k7x+9 zt_Utht1zQYL)h&K&|M1mnuZeDROJ>UqmxiyvUIi30L2JAqNof<4n&O>7^p%QY@%ss za<SfuS>tV(vKQ#+mw|C-`=$d&nPbTGjaUOWcX3Cl(TP&066!3sc6N34i+G+IX6s5l z5p=iIsmgVjGWk{0ha`k?FyI=LOg^QdM6yQd5M~)kDB;YCbB{j?CmAp~$`Ipulox|N z_qu{H2(>7^d0M_R-_zdOobT!B>S=CmDdZPo4?z&B#F>OX?dLG~Hd9Hg6?jrnU_zEh zOZ=|9E_l~ZqD?nYvEQ}ezU%ZZOcG!bR>aGeIF;~iw>WPr9(;{?UqaUV!tcIzC(XQ- zT-tQkARst()8H>zo6*oDL7t5a&)+QH*w}m@^vAntFH(l%liMpAQT@NBa8&VAC-Cg? zfWlKTOkH#rX3@<v=9z`x4R6PPa)`7{$INC67GX4F%Z2=yu@n;rr6|_uUll6-(5?yC ztA`u;csu4&@XX$Q3e`NLtMv>ul|pgl@lD`4wQ{8V>D`XMt*Mo98qI>wzF`>ORX9N0 zYEM?ZVbrFN(s40LUULabO65S@TcnauMvaLI?s|PT!(>5Sj}()7j~d()24}Q4lEWMx zL0IMwCr)mF+<X2<F|xTq59QX}i-=6KACrT}*jJ3=ANbE)G0MFHQ--5i3IBO&mBJfM z^@w&MA=B`L-@x0|dCLq$8vO-7j0R#Q(=-q@IIaRn8CZwk`u7;TwT*?=q_}S%aM#7= z+4)Y)%PDc8uvmX46qGB*7(t;BOwkYXI0m`+_s5*S8SL>0K8nKbvMnQgx0fN;e1Gzv z2SU|8zHcW=N@o{JzI!)H)_Kx|9)vPX8r8VFG?Y<mw4~m{2KRGQk5raxUpBbE8=R3F zNJO#~Ct*u?Ia>Ol!$ZnC--&8;mTL)TFY7JjqwHYhiG)`0jYuna1>{cji;%H`QDZV= zLSr%);KAMT0(+Qsj`LDQ9xRMdFM%c_4&N}<<J@sYFF^tFZ4oc#Gi=5z7yhA5Ilc-( zVfb{N78p8Zd1*q}Z4T!I_c;w2LX_;P!_{k3pn9x(<HE<4MXv)y&84in^9}C<j$B7H z;{5<pt`DWTJxe+Z?Tho`{h*DZzZ3F!B8aa2I@J%)qmIWxI%SioEzHG}mnW1_snCMs z6ALb0;^n<%$)`$jgGn0_xJ8rSh>m;~P5xAo<uE`TF{tzC{HSa}sBkwh3mpZaV<f4L z#gFDfAC()qUS;DzPyrHBa$VT4@kw}G34oM6ME>;t191~?M>(_&8K2)ZWKbYw$Sy+3 zA&ylj$D>?}lC1faF=T`?-VFx#bq!^h@viHUYEq9bPOjZ#aH?;l`3P+u(R`mTm=~hX zSclq_#i967$NB=n#Mb{RpvZRSKUPLV-=WuZQ|3+>(A>PBt7mab2NnYiA3g%8LE9<x zDU0$wd5dDBamqh<+Z_HIgc5?H4or~s@wq0V<g+2lP?UNCw-F&GBpNI@YOvre3Is0? z(qpzS>`&hY9B;zk1raabmhZ?H@(JHxzo`HIB#ZU_K3d7lUvWR%bn!Vz0NZpmY648s zFa9(0;)G<;yWrO2YQb4Ap1a`1KH%xMvM5bNdvU{M3caG?Dwg9{sK1A;I2e6!{arq( zvKgll_s(H7bg`-|7(_FRh~ATEwk2qEco*f?Jm!yFDH~B3bqE%R7v9V2?+v$tRZpSI zQDd)g4cw=j7dC_|;y&F)_c<lEmN6JEX(W`BEG>MPtg)y~q=U_2(w6;7XmjZd#(3d} z+OnHdEqt0eT#A+#Z0rLWn(v#5|K+=d&43z|$ve|P9|tt;02;rq7#!o*tg82*!98uD zKLL^}b_H{eRrSUKnxvo)0LrQMxZvo=%B;2nI#8Xh!?pB9_u{w2k$Nshq90m<@{5rM z7Tqx<6~_gU?hZ?>i&}cr&P=}HI8td%A8u28_<o(#vp#%Ci$S5B3r&C_nbp2<5fivh z7!DjYrW-&1;5+bph}7IRjl6u2*T?r-hmx-5N|Yy}yb9%~QC^MmPL!WR`6|lKqvTEn zUqIPJTA*Bv@_$g0HeW(X<9q-pDkg`J3?>NfDSehf0~UK5=Q)~cw<As(wZm`_y8yY| zc*tnsEUj05)*<C}lvXM;a0IDDx5Ck=F-oHjFkjHrV_u?Qra207(9Rs(*7}o5q9%nV z-~mNSk2laq0Ex_<1xTcMwK@AKKq9Y{;ln|Vz?I(%j4Nrk0S9Bn#bDn0{*|=RxJB{d zOIjmNIg*wG>YXJdZLZZ4-+_{be^?$X$HR~ezSj>?GP3&#$}W_Tp*#=e<0wCa^5-b8 zN4W_lY49XUO4Pwdq6mpZ362saxUfXQ2uF25<}{2`J<83v%##_Eg8_{XapoRiT+WOG zj&Cp)zi%V7)`t~jrDg-Ne&eCi=M4E~afTbj@Y!yyS2m!j&?6Rr`fszCb=>cvJ_YLX zoqmmy@Ab5%_WKOA31vJ6O@iB`p|Jj5@Z!tBli&zG0u{cv!Glp?R_}E{`&r4{35;Hp z=Z3A=z`x*I_?PemnhD-r+`xK*L4xqjY#(Qo4-M*~nmXeuz3WDUw!~uvEuc;1MuQr- z+a3CD%993laW{3wx!bT6^gxjg6|NNt&?_4HR0YXy=HKi2x9?U%x89)6T-hL{F-f@Q zA$3NV`1?^^bG<4ZdXZ1LHCHxBd2vG@{x-yX27k~Os}e2o#0>oHx5&RkJQ2ShJf}-U zTuUnDF4*`oE^WSV4*r+zQ8_cvs61_-fvy0wxAMcc8r=5*O;q(LYjVY(3^V|Z%M~X8 z`hfA=6ICmp0&cp(eG`!2HUm0Vo&6V}1_f=8U~#glSBIAA>zTm(q~q&Hq82+~JEQ!F zV}bt*HbI>*AskPTA;pKEB1EoP`=K(PAeWChsC+y@I`PvLL(zJhzQbOyAEaFa%HvS( zgK{p){ZU?n@&J?%pgb65J?=9a<%=lCp!^fcu_&>Zmv<;i(*H1&<P*1h+?;UYQyJv{ zE=GlBY?91w(jy)VNtPIkP{x}G8VRmZL$KR`#=zYU^)_ip57sDGY45btD8@n3lt-ZX zNlIm^aH(q8R*mz}uksTpLB#V(VB8HeI2cYJ^nU!F3kJdpNPlyd>G`{4xFVj#mBokc zF0BnS>b1MvZ8wT|&!S#CULI#P!{>ShhJv<&^yZQC#9vNFNq_kPlzeW;x{6Zf;%$W| zgfjT<I&?(gZq`uPZ<b0-4C3A{#=woiP`k<8MR=;GWwDvqu2PF#B3f=<@nGW+{;}m? zMmxHuikX8y0gduIamLZ8i&e0D3@(?n;2D69QjBEh>_`QzG&qKBlN64mqPo(+yW^b< z>d59V<M-=WHcQs9%jD6xuK4ho+=x?F0x_8kUU~l*8DcU+qDA=m2cK#EU@}V5Fo{RU zQH4ZUzoP=x-B3;ies`27p~RjReJv=nC_7Q&OLl$TDBp|n3n=$N$#>irCB=q2T!=^z zl8xpBN8u1$Sj(CiN9}@>R##{q*L97P2x<;T6U-tm)q__|1B70S?z+s|j0W`lOi&s1 zvWR(`n(w33j#f<LOYt%4yf#4LOd|FHT}Ji-#}`|S-&0jEvI*A}AHGAHhf@|KcL5{G zF$r#4np>L@WQ)d<nYK{yxyZ~xC>!wO@lMTzccJ9-VhNY>C+7mLIB70OSSgawkO5D) zs~c%}H0UnEK}hU{;BMAuWeeSXU`mI2^vr~!ZMd`4gf`qyq_aEPuqDMaww83Mi9KvE zm|L?$Zv2oX1Gh}4J(-(ZKF%w=OF+)a)zhrVr0$k|-3i~zf|Hj~RLwlFYW$U)vvhCG zgEF`GVLb96u&$1?S9%_J86cSlUI|F%fhm=f&=s#!8>@!rfuF^>sZK;kH7B*Hme;=> z|H+{O1$WZdH9L)d?NI4UD`nZ5|7G~ZaOblKi_CD0z3y&boSZK$Ma>oaOYb_QikUB7 zuK#xCi(OO3`C{9YovppnIVc;^1p3)3Dmx$LJpA2<e|(w?QBr$w8`T$IfpRte2F3d> zL5XoVr8UHz<V0cAw0ivDP3>b|IpS8NF`Pwsmu}vo0eLzA4<H&uNTvY<_jP?X<Ne6g zd(7Z|ZE%zrx%L%<d(GfhLFe{`&JFc0)=<WK*5H0`aB3jSiK^Dl^aWqSDt0DBg5M;A zzaNZD9a!jjzfe#cps>MT2h1^!`q&145dD%ICO|W5;r))s#EEJolgd$i_^LAxr>xcR z@6v|;quWt+KGxob584N|UJYiBwi@Fz-GQFRAe0nA9yfU6ac@LPV}BD$Mk7n`JJAu_ zy?~?GB0jK>V6j8QOI0MYdJvW(`fbo!M3j(30D{94s<Tj92+}AeW?ZpIs3s%7)k28c zC2C-QOVmj4xk`!ps+Oqhv_!#?Y!ec7yOAhDB2j{)L<x=(wV#nFLN!U$Xod|tqID}M zMJQpq7U+b$Q?JJ-R=ShVUw{j&N{CRi3^hgp?QMA*qlr<uH#W#ve$W;M{6`g3*n!b} zba*5?2%8k*COa41gkw`|$F8ZO6M2R$SM#(Uzuyn{m5$6|fSOm*9CF@c7RV@BWpb7# zL%KQa+{{<?t}*rQ19YOgq7D#E%yal1>zGZBW6{j~7{A}_jQ`{?W-|yU9lL4UIsYp3 zHyQ`1wfc=f{T<HmgaKW>FkyB-hoP|@Z7AwX3ye0h03TAyAePmx+JkeaNY$NCl?>vu zV?zK0+uP~i3Bwt4_u=Osd`HIIZ$nwoNQ^_M4%Cq-#{zd0%41O;jWUN4@6pFwO+wj+ z5*q@lxu#=LLead*C}GOIDJa>Y#WsO`KR`JhC25ISJk_yk0tdvb63TdA!a2cRt0D3H zf}`h`di3&wqn8(4MgABg#!A{2ZN~Mgiv>lXh*jJHyHg1f{V^XSssn~l%^U9smhF$X zi?E)KI5qJpiw?SBZv8M1XN))zu?UDab|>q5=a=qixxV)q$OV1fvnc6%e~Xfe(ScvC zQr{cAK*cVX&#=h|1|eAtEV!%mS=p9)e`OtC298jFSjUKIL|VDrn(6hq@wxgX8Lmi! zo%Xg2Ap`)M!%G((OH1)k-b^JIzL}vqob5<MD{xfR)A0NA2>d69#NX0UZEo%A>@766 z>x|clp>t=pbohvNY_OhhE-dTL_o|6(%uX}&(PzhzGC@7szeT9D2Vw?b=ul@?u}4Iu z|JVLR*%Q<>CF86n_#T{|;=7WIJbnf#;=BDEB~8gMQ1U%Dp=6!o45tZYyr&HA84Z!E z<$J$iiq20)?!~_JB>GQiG#sD5-9Dkwxg#DLw&HR$Kj{u`VCuUg`D%nt>{>e*=e-;n z+m4gZOOCMi`p2ZToTW3Ia>x%R-H{8LxpN?{lSY=mGGNJ|M-JIQf0<=-lkQ|i_ZtDU zy!r|nAq0M^?`{d$I3r+++!U~J(%+^x9Na*X^Nc{#3^X6mM0EY?ymmlK6vP=@e&MDL z+unHIQiWRu=xhaD3FsgNT@OgEy$#SG)fJB$+>?OLQ}vz!bb*5Y0O&?l&lh%%c3kWT zJF_|{5br?w>IeXGh(OQj$)nQ{CF<%-An5APURT<)>eB4~+2-c%LeJrcMoWLAf6q|q zOFwPx3S~SCi`sitLf2fNCMuMces*SQB6&P8TvFt2l|Q|4hsxj2>A#P_-|R_HS*S+- zK{|}sA-wSp{U~Wezj-Q3`c1kDNKM}hD3PzxN4lMelFG9NDkJ`rP)5Ztg4?XmX1u?f zdaoE9J1A0*9Fl7>SgLU}XM%f6@jwc(>{Ksh*|!13`(9badmEnn@)*V2epkMZI%-zD zh-g@RR<+vq8O(NBzK7a(f<o1xeQ2XU6!0PVL{UIO8MT|3;9kNV1^23khI+3X9QP)Z zdgPSUYcRM`1{YSq5*@hOLzG{`jRZ4%&*CvZ=?G6NaI{Qx-Bb3!e{zWMoSbjvDx65W zt<MFPd$w(~jqFV6JhQ#0t8+1um&=*&^1;hKu#J`g(dv#=C_8u&flz9#Uxx3<*>F32 z`JpEk`4N<3asEdrNdxp^lm-4JC?^6y2+KQhPH^m*2yQDe@eR0ufQgi~TVj~F9Y-?d zNR5d>cQ|r;G%iR#1}n8{XYi@nA_kwJQ0X)Hb>m_Q$yY`Nhlwapa9fGN4}`SzX)teH z41-VY2L{j4+aJ}=!7GaU7oSk55C>_pYt_*EjD`}Dct~*6Rl#i~23`?j;2&}O&&DwD z*nTjxWMF9Hr`kDrsp=M*SeeFlr9#=9OoNe^8AcMycr>tr^Pq`>+e(Za2~iD9Z8=Tc zX*WEn9I2UFGLrVRcK)3S1#_HbheFx>Q^8ZMn)q%|O?)LG(L}*f69u=G7&s=xKz4$@ z8>5NC(qo_!fEvFL&mo<v26c`eU&QLe6v|?C8k)*2WQ5U#GHM@P!Le&8xUIzKVIfBU z5^{D)45N2UkI^QwrKScOb5+Z_NyS?F{{GR@w;ARU%BXMt363KPg4;^Wdv%m;W;fyX z?qHJLEqMhqD*8y(%=&vpRm-{u@fMDO{hmUltablHqoQ?$WPDt393K~4m~j|sOrE8N zEFe8;B6(>T6Xn=<BQ#n@NE%6e4ox;<bMb7D-sTU7hcebUM)`i#Vd(}GPGGnSnByER z<s=G6yq4kji`bdCqQov4^5(E!@nL5&ygt(KsdUO3&12SThtI{?Gg4s}jsG|LhMYJ# z55EsqI&l*8p^9Im;;9s&**MdMAtV`Ug1Z?{C^+i&ftalrs(P@5YMM-`r)04oZA~?2 zWsVm!!`US}JXpu!4sXl$08m11>KZVjT_3Dm<@o#*M+&9`$5Du5@jEGy0;TTZ_4P$l z9`(4S`0xjPvp6*e3xX^?g${YgE0m?Dz)=E5<L4iICN97qgi^f<$~zzde9k*j@>%af zN$FjJ3ZkNfWYS-7H|ewPWJif1A2VmKrsFYRAQR=BIRKfR)pPq3Efr8*&3j5RG0>xq zcu1-7fkut_oJx%k1V1o^g;?7=7f&lQ3<Bl!)7Bva)AP<zXBQf%4iM#k9e!>e-(|p& zGM~V2UNi^0I@{XiLpK%ATCEDRkdN71%tDugd?uHJOEJRE=R6A~pY?1#;(i|9RX9jU zI4C%BP;g-*TY`h3K|9%7faa6|Qt7G0<CMkp>H8p`%h8aNf#Y*G;diC$5L2B>+%xs5 zL|d!)9_~uFUumtv6rtJ|<=0xPW*GZMNTv`4_Y7JQT>tTeGbKS^Fe*r~dGa}zC;dC) zm6%D+j2AU0G~?yZV7WZv4Avl2hBByQj@Fx#P*Mg@)_QZX;SnJTP6YQdY6-6Yc*Ftr zfJcy<qRA1PM?>C($&tj2awbQ}sL<qywQ{^#Ui|>n5*tTI`sspu1$Pr%|M7}r<^ivs z#U0(b2%A?E`(cnQ$y`KYepN6R;qr@f5w>nU275=_{y0kN)=yE=TmK3a6MhkrIS9dV zh)i(($1e_n2mE>+cXX#6Y<}JB+P@U$j)IW6x@m{RygW4<iV&6VDO7xf$oEgmOMci$ zcu7d68wAJc2Ep|oFB$9wyo?&xw0Svj1YS&zR6E@Kz(UD!&BV+~KEqJ0-fc8`M@a0X z;AkfW*MGd?fOo*FsL2GIR}=cdP9~pBNX)dvlL^)G>~h01LNbXUICkL$*MB_Y7<a(4 za{9$JboxkDzhdVN60<7#yg{|RdXE{2BqaJJIO><+`j1x}rVe-&HAP_SSABXT$BNe} zPZ1>MYSJl!YI*uT!&5>sH6S?ld<EBkJmu(hz|*MN0Gp?q`$_*w&ITmrQu5h=YWcL2 z;S(X51rQuZ3I*4HeBxkrz^6^PqdV|#^XYrLYb%MZV+(EA<~4<wQq9`vuWL91|B1Pj zbl|^Q9{mecl30<D^r;2+G6*8L{^JqHjRPKCg*&=q_BM~6495D*%vcb&yF=ZHN$iZ- zGa@fuX3p`xEPnpM=W@sF2kLQ(2`2s~BxB`*yBSvrE=*I5w?^$zrL)e*VUfUy-uFzp zW6gFY63sCPJ9;x8EjLKAy0MMuMEtp@O7c7wP>+J91CqS$*?>l3z$KvmqrkWyF=g&I zdy5~&uW1DSlOql95)7_?=rpxVH0!q>D*eHA%J<!GH(e)xvnxIv))SntV1e3Vlrus+ zm{0AGHZ>}Y{Kxm<h~Qw9hid$)?W9Ni36zHb2O{^)M0q(%zV|wm>>*D9wM0`0WxPiW zj+7JJa|TCl2rkU&5+k|(*m~{=Y~C>JqRVmhq&o_ACD^@|&!2c*!IGev_;m%WSY}-T zRyZ{d;Z#5_x3+FoFt}g8FGXn*p6WOyXjG!(6?8lx5jn1J+E?Kg0@`0ey?|t?z$!p; z?G=DzslY7;cL$(T)D`ytIz&PD0}3w{z~BZ}uT2B<gX39%loAa5dOvpt4$f3LrxRgA z+)WvQ3Z+MA8Ko2!AHIw>;uQC}(Gx(FQPM%nXcN}yG3S4VZotp^C$D+<Isf;`pPrxd zk3VUA*ph$noj4e<9ZIS>kM24V;~tdb@Hd2~Zx%{0RV|x42PJ86E=r2?&fu7cGog(4 zHG{iFLmBUT26wN)A$e6_`<TIPHn<lJu6nU=3*=RQwXmw?H2I*Jc(G^2|I=dsi;>`p z9LjR{gV^`ISz<pA;!FjbkCI{!;Zb4_rYf=TKuNJ*jFMvib|dzLMC=7eu@@Z0UT_q9 z!BOl5N3j<i#a?g}d%;yN_S?F(e<-l_CyeTUYyZKr)}EUIUKC^Pe;;k_P3Xw*JUmS3 zdV!d#)p>`f-z+t$)H}=qhs8S(%6PwqfD4YkM{qA0++Pgtb%P^!q#g&I<ytNe6I}Ib z(iWKYZPGjZ*Qv>K+n$<izt5W#L{;idPBdylNYq4dR1?8bO$0|Z5ggS-a8wh)QB4F# zH4$9(YVu#?O_r)jh)Ezx|MeYO%X*WYLG-I*yvgec)TG3!h*-B$;+pFG%kG$KPr3Ke zAAOIr%mfOdjQ3~oUT}ZYP{w=1;0A#+Qg4`shI-_d;JD6Fu4Vd};Qqf*n?J!w_IH<i zPFb}n7lb{UKyAWvNwL}zu3DXvj6{DSWhLpKF8W`<VF|(riFXm)vrrDf(Ypwa-bHZq zE`lR>1V`^8IC>YsRj(%hMM2nqhnoCk+f$Qc-z+t$Gzfdys0kra6TwkU1V=Ry9Mwc{ zR1?8bO$0|Z5ggS-aMi2HHW-BEa%XJ7Yy-xdbAu)g3A*&>A%5*|Z*tnld5^dOT)O(z zF+mu2sM3c$l4bho!EBKEVtGk-5>dB0fATj-UCREXKZ33cOkagi#`_HjDY)NhNCGjz zF%Xk_48#OS?g)-*A~>pv;Qr64iCW~~sL2eK1Uv~O>A${8S6MYdf;2vIT6&&ih%;5E z2Yl0*wsX}fjW)w8Q4>$KSl_EiX{x0^)b4nb2u&#CjRx-occ_LkUZcTb(?fMO!)=;$ zJ#t&FU1V?_23Nh>ZG%A^y%VMwi@ei8FtPpZolY#PcCSM1&yP{NZ<p~-9B>Zuc3e#| zPApulI-k_EXX-vFSs$m;;B7QGD}5Y78E*CG3GPV^WxU@T-17$a4}&9D<XZJ58P(n{ zP!GWcU-QIrLXV<V&%h^GB6uz?cNdtw8@TQ8BR{+NhaAe*E$Hs*<&3elAtH8)1LE*Q zRT_g|Ib8Zv#PvWQj9FwIFO*nl!CN+=>L8R2x}jq|uaD0(86}@<3QA6B{leH6LbA)H z;I7hV^&-quxOB1}yXOY)z5+F7Is(ln<b8I+Z%=<UDyEYmyXrG6lX`peJzQEhE8n}M zqY$KVWaoEvbtELg`anGWG>t6o=O28AP56O}W<l)Rb#l#dioqbEM@YV6D!9)XTmqZu z@204X&1PJwHgFY}FMmQ*tgoWz#g159xBQ_2vS5;**-)z+$KdKCF|$+WH3B+HK}>cS z1>ObuHTMJK?i;{;6w%F6J1hQdX8>{-Vh1s*o86R6!|^I^k(9-UFR+a`WhF>i0-Loi z;(NH+P=C+@dKl;-8cs-7)(P$zTqQX3`9~;e^qSx7u-hAlU?WW~`sIz)qTe@gtZ~=; zGIDh{;(*eq4<jFi@@z+;B}+Ep*WdjQBm1jLv*3`hqWKtzKX<BM(pr#>R4ZthJ8_r| zClyzy0>y{Vl`Kwu6=G+b5e6?dFZs^=n6hm|)`2HXbi4v3X>q0I(No5V5Xz`8j0kQ= z=%C;XkI;RLN>(!|Xlou41zNrlS!iU|8|ZJ;c{EmkL+gP?d=Hq9JLczb;P`}mlYcq> z)X&LuHn7#1n&ozfQ*Jdn8}p!}6wR}^XYt|FoKN%|-o&PP@k(w!zq?K+2h+uO;?C7< z#oxJ_pOO{LAS7Q`6daA8;KKeZFx@{zh0i&(s|U_E-46$}i?AlWtq|Zg?r&;~DulPX zZ`bNAQ!SUMDazL<K75MudB64EFhwcFS?dzk88tlY3WnoraFnKR8CO6k<5BDc$9xRI zm7?E|P~%fE^!wgcrC&9ayEE)V@jjK%ZnmKvA=&j+aHOK(jK<HS#<Ndp?ZnW{4T+oN zOH};cG(H7szAvRd_A`nNA>z{306r5rgXVKph(&U_HPN2{n%8{aVYu`;D22Gx-zq2v z+_MTg1<>yl)DEaM&w8DJ!k+-T9Hwj9fN(GQY}7*DkNOtKanwmUlrwFfl|QqmrL$d| z@7k<Q>Ghuy_lIp5Zrj$ixVfdZHQ(E7Ht23Hv@AT(Xm4bT2kOwXOtoMoT)B$-Slb>4 zvEBa4KF;&W6)OGhPr8A97J2^GP}nG-W<gVtp*v@Bx9lP>Vmi)hf;{0Ti|SBPt$Ex4 z6(^r=L^%QFO(^G~{2EG*;9^S!EDN6s!w?({q-ZXJY&UgIe}d>O<{p|Y!Q3jhg!v;h zP}~<GY-0hQ2<|2gA&?k|{9bGXGt}ErLy5P95d}9ksF5~^?6quA6QlPgu``Gb^Rn~# z@}>1&;Z*CCZ-Q7kH-1um&%}t6uur3HG`DyklpB%b$L)FD5tHiuyzCS36e;ZY-V`(w zpP<T$WfD|DiN<>LMj9pJ8jP?@zGx!QG_<g*!hIN!;MxqX*Wf-2NY)H|2~fkw*~)c* zB!T-IfFyzYUO<w-O+P9L+`k1R*K)E&61ay#5Cn(rn>Sju_ijLvz>QBRItkp*;>xoe zuRIpDXsJ29zb^2~VzQ-M6uoP(K35_xY+cmSgRvER4?MAQjks6w;m0iG#el%dF`@ff zUE5FS-lG5Z6T0!`NOi;{bn_j#E@3-VoTx7c&s5Yn6D8ty4^r266G}Wm-(IMH8cNdS zBP@ZRX8Ku#BzaqK_v*9q9TdSmW^lhY*FI}-uNd5G24^&}T>Nk1e%>jF_HRT>1&6n= z42rjO6pNjHS+nL}*i-u0O1YZF9f}X1tD|x1ukSOyOZ9RYO%d-Od{%cind5b2kFQbp z@g2CgK6&w|=}!^LcpD6EqlV0&Ovz8bnk6ByZ2Qr&;oC*DZ1~KPIYmgV$beNFw(@ec zJ?Rc=UkcXgPeC*B)`=C%SSLJVu6{G>c`{%EOQem^(FSS;B%g{{0O;tCQ*=52iRqz< z64SF1keD96u9%){0m-$u020&l6NCFXpkq{f6m>B@zXK#|NB#onypW)h@oOAG{a@f{ zggET@8P^E)@Af-lm264GGw8#Y-$wjx?Y={+bh@tMTO}HA9==tgvhxV665l(gaPlAD z+5Nc0A7N}r2iUkiE`fuvsjuEb2>Ni&`xi>m2nIwc!fH@fVgy1N^${$=J&sy}ds;(7 z`L!U8qfkjbK9$rP0%IpQ4oV2l7$x}b=<ky0P0gT0$5={qcnKxyDb_Cego^L`NuU(8 zYkJU3ymql-dF@iZAN#CDDb`%HARd1yAepv2A5gne396H**u{WE#l8SYRO|*oqGI;| zl4~CZBq~OY7Tli!y{g*#Cm>NVdXDh&EDF?>j$$#Tj{?Py8JtQ$4)N}KWT(Hs36NC7 ztZjIxVaxTi`Wp6-{@d3uY~iR5qhYRs@!j2JT$7+UB*RpcT__=M>Km+(gFcRjL+ScR zD|CUCf^9<REeb{`!%ri5g8P+*G9DFEa12eP9u!sM$Q8kH{zU3={zPzZDHt8E1lMn} zf~_d4VEDYXcXNz_)wv;73JMlXQB=2aQc~qRHEY7NZASV2*LXKV8SigUCBad>1jnQq z!ELXhjLKdX962WS7|IK7w86cleA|rjb(B>;ggiw%0@~hfzz9^3BQ@{FIgRiVw#Y7R z`QXvo=&Bm+>JQJh!FV=8GCLx;O`xLSp3~4!HTEw!?kytq$PvLYU=$pEoZ#M4u5CuS zo~v28o*xNb%aN*b6|FZY9xp1dT-GjE+lq3%>i|D&BqYiuI4YOms9b_$pf5Nom*A*e zf}?T?j>;vtx0Gv}QLddX;!sLlzwEtW+jnBZ#;@-IUdvIda;fW6-j^(C1ZizcR*f3U z#1;Bu=18Oew!cwCLK*KrXkBpFO-Ml*Zzl~6^*D+y^>#Nna!+vM3~r*qy`_lTj3Pc= z*2~elu8mQ|KlGEA3zAZ+3?Hq%<f>7v{s<q38pR@%@g4<j1^0x8GTt)=M_(uPUN$&# zLvS2<lxykh1oxI=Z8M5>V_C(bfVo5ZcHeB_dr(1+T0NY}*I?hQ#Akn!dMs=6ziQN~ ze>~PdMnMJC%orgV(ihz0prGKM){qS83ywqjQjgpa92HA&R4l<6#Y#NS$dSrmp7DOP z?&jGZ3>-&Q@xb0}0&;|S?aVVK%qon`%89h1S^ut~(x1U$FXC8C9mZ!D@;%(_!ejLu zB$ke-IY@r@n{$v%l@dM?lDu2NJ)_TBbC8K?%^|9Q*3Y7)8ytsa)B5Z0LIpWepmjP! zjamPRLZ!`zGf^cyJ`CK)=K~?xSzmCRArV~VGS7%F;KPe(>02>;xS>P@Uy;oBU+fNg zM;tawJ~TeW5?T<u-(87b9A*LoLK&4>D!4k>Ai-7658AGPAK%6Et&HKvaU}-gE8<6T zPm_(HF4Alp2Y6gKM?yM@&9%^%+1_Gz2ua{2I0jyVD@R|Ii=`7s{p>B3R<bXeAdBj} z_W`;;qy${W{jfuHh>bG*hoJnbqXdh)&di%!OUZ+-D(5pjy(k`B%Hp|;51Vtlgf#<| zUFMMn%TvOzaCaeJ9&JQ5{oa}-KCjiZfn5XyL5=qorb^c9?D9#<1#NmY=N{s^vj zKeJK~+;;fwgx_}qXJAA(FzIQhq+2P~5^muMA`YLFd{8H&nsm%sm#~VPie8U=RMKsh zG4h0@XCXNDECg4IZjYme`weHCZeOgLZb<0Qw=AB>R5!^wCe&Q$X=yL?D(q42BE*te zad^gv!=~PQp<W@cSqc5VYi802Nh-hK=-LEVk<p+9F&0De$Lr7%vwhBoB<GyG@WX*; zTsRuPliUFDt<>RCslx{xkZ|G5uV77V;h=1c!_PlRe>VsGThJ}C;&zm{-1|04^5+h% zbDK?oO9(3;!B@dur6DW8#T<UQ^kJ+=z={S*va2yecrhL`g)E`YpqcnAAyzDtB_tWb zZ)}ik=GBv6yVcv4PZ>taiB2Fo573?;r}te6=x_zC0VD}T>j3SmaMu8m1frV(NdnRR zfaKao0Z9VUpA3#UW8>Ae42mUzhy$SE1R~~#xgRUs2el|AS(H}<mQuPKsip^OVQ<9E ziVxosHsRE(`x{|rw|%v)?dJ*oSpV(k33+&O9wtvnd2lx5AACoqo^B7sWQ|<liFTZU zatUw{xxPzLLKOP8L;a;FcSX4jC24aON_wiCv9yFT-rWZGeGN&MUh2^|Nxi2{J#s;C zoCA`2<eK1&l}?b6x3`s%_ilmxL{Y3$Ub$h|3g&oDx`XeNf;uq)LpKwzPOKQKPC)`L z2f@@L;08RYq}d${=q%8-&ifD`$xEFNXo`~WMSw(KnBFD&aseRGm$iUIU%muLuKgMy z(U%_@oZ^dW?@8c9Uw#8f^yPU#A6HM{`#ff*xSziu_oz9v#h-OGr+;%=wJMFqor@1& zl^SvCY&@X$8&o9-y*hkVx>5h_s}d7@c^FmVyV;t=cV<qjtx3>7<!8|SQ(H$v+WI<B z4^q&_JYftJ_PvA>vzvWvZ#YV7(kF~25z2T!F}R;<NH*D#dTdGR{n^wbR|Lm_Fsa9Z zFu_g6l9UnQrR*@`(I4B+aUmWS<SFZrTQjF&Ua;2gGMfB(n{h8lzyAF8BK0Rcz+_p@ zJ~^mPJzP|3X<k$FeZ0jFVd3hyBEh>~K_4-=UO*2k+)6<6V2$e3cY4E1^GL?aovzxa zfg7Xn=rZgIKn^kFHHc$GUqjr2GfJmr(v}wg84wpXN?&;%P?x{Y$mBcFeeMRTfFBmQ zH81GuS=`d0dex(Vx>nV+*1qw*8}aiGzB9#fFv>$U61kUs?6SQB<#d$qL^&HJQpNht zL5VJzS^~Eb@cM*b2H%QAtavdQRp|jpjEor&lJ)0;qdEw#8_>ZAvtB_%iI<XzK)&Uf z=$Y0i<?LV2^gyg<x<@^M@0n<kT~lCtrW4;hQ&8SLS*D;G_tc->iH2EJijZXZ2yPQ7 zF1Y73B<XX4<E*FDBNqfmB@`Spd<0ico7C)}UiG7bxx(P*KZ_Q_VP0;{5ao$fjU{_V zpHyo#a_F*bInAx0c5T7r#f*lm)sEW6MG$f=cK*Q%sU@n<gPtI2=T_(Hx7?ze(|^lf zDw?D9mKg3BK<C20*Lfc>xMqV}2<Uuuwhz!b3R(w9uKh9~xz?9<CUD&7I6g+!jKj#6 ze~-X_a#%KdNoVV#eCrw5u_1CPgmR9-f;jbOZ~Nlzj(l@rS$AHBdh{L*W|t9oKN<XK zo?giJv=q8}nvs{2A2Ze(I7=L+<%2No9p0ef{wrXKB0edlj-BBtvw#-vraWa+XIEPu z3&OY4i^8c1i&RDVk2IlU%%J?R#vkEHoHh~VIN**#c@oM-lytz8Q1Wh5P<{*LRFwCl zoQ9GS8JuY!X$(H9_>B>=Xb7Q<$MqV5`;Ue)-YD=(a0hD08dE6I!};%*eDM*K{7Yav zMDhhk$rl_Y|8jM<571f#QSzl8C12|Kk{`7;fn44lKXT=xk#@dT$&U;E(i8u)?T9c| z{8u4>L7?b}|C=HG^ui+jgk-;U!Ewcc;3)IDp23x~`=)DLcG+rpVO<_FkU}4yJ;X$P zd{&I@<101h!nzGZj03VfL<6pu{{GPhqISrFIJSP#$EiE)NhV#xD%akED}ptwg8Mme zpHS^Ztzq?bjI%ZFhtt`!q>gbkZScDR$RXZk8(9C7*vFihHQg@8TBqw5@rMGwq5t-W z0-n`>`$GZLu_ldULAo%N!X60#|I|o8D@u-fLMGMfR&Z0TZtX_-I`AJwNqY96WcTGY z<4Fj~M}`IWiawk1IJqo1-dXB#nVsOsIl)oq1UK5?-qJaDjBRV_+@`WR_bNEN&WY%3 zoqKvDD#($V&dn*e>?g5OopnG>N`?38PrbT#Ki@|YlFdN{$5Btg{a!;uz2^;%vk6j< z+>v_hxd@J0C%Cut>dn%tKh~^QFZ7dM#jf~CtXG}rpjhM9l{za(ZGY<32xz^;euPA? z1V_CR9Q8_Y)GNVJuLMWE5*+nPaMUZo{eP%eYRI9HgA{LSj5z!v#+-36BDW55w@0=8 z)i?G4YvribU#aU;UhI=t1K&TsHVy1g{liOW{UaoOFTt_zB{-(13y$Bq5*#<o5*)cG zxN!!@ML&Z3|4{$bsNS2ef6tcnYqX(mdb+KDf9xl}R&tFGL}sM-_WIGj)`v=aE_VDj z?bCKNIz=esJ%;xX+|M+W@t!p}dN--}7lR{b1jq4ixt88da7L#v+8n?Au}MAS5COY# zL0<50fpLd_4*`xH^n>vGhC2<fJLuKr1qaEM)osn8B_oRmD?WV5pxkt3jjfdp!f8Aq zE#}}mva`*B3U-)z%)~q<-<x}=ak%{il%zouO4b>)k8dOiN#4BRUejl-q1eipLMs_C zg>(D2J3Tm?DL0nzh!ruVAAMmK&tH7l{FxK@LTdx}S{Zb>(Ktdf!XY@?Gr^V98tRIl z;ElWkD`%6}2R!0v%MTqM9gdf#08s+3b9l6E=XNJntQ}p(xr#*^xOtOPb#C`Glpvy) zLrEG<*E!yehHr!<$6IjB@fKV;z6G1T8>Z3PG5s=N+S9;%)nS^gSRWww<WTC-lRq=x z)0;|8z8Uu~y*|rMwolBEe}ZCm9;@o6xr*d6<kC8^beEx|rMny@E!{elv~(|mYSJAe zB*TY-dqtnMEFA)!a*3>}3nGcE{-%)308C+Yeb1no_zXH$EHk>^q;}PEx7}q<DtFr& z54rLmepGPRT0Z%`U(iha!?R-9hhH8}oSh0zNxI%lKtEGq;A}uL^#4IXlIqt1NK*Zl z0+Lj}wSeT>s{qN+|Lq3%JwU%w?QH}kseTUwl2kuN6dN#sQ|GbkAgyEo$rCVqktg8v zn>+#EPM+W}K=K6mB7wg4BtY^6y#~k4w&e*f03=Uv5uk8#?oq(Fi5#B-j!J$R%HO$x z?N-R?I_Mx3+cx46iVxpIHsO?&$gzuF66H_T6?%GG&cp(i@xxElZTM3TpVEK(Qw|U5 zzd7Z=`rNmHhhKlT{@bs=QvdBwQOKZAw_K$DC;d1LJ`{hoX*`m8RosLfAo`934yxUE z3QDM4-;Yr?pnMAD-YEZo63N4ToZ5yK^>K&>{O?<X^8F~u7jz(%6?za-Bvyz}#(M$R z2<}fBk|}b*{m0-aZGz+b%C+w?IPOy+xcv?8V1t`raFiaYH^<=S8k})Qh!&!@`7EAt z-$SQ%`1{VvPPs@InN<J$t$23#bVX?>1@~&SI~h48HKw72vSkKt*-76eIy*(?*(m@r z&;DUR7b`<RL6Nh|4DJFzm#MR#0VK2aH<@}gF>>wm23H4&eWR#(dwc2pklj#84jC^} zYW=3p+iR_7%u{^$THlCMCFbp!OmdlA>8Gvu#vq)w!f32dDysiU7pm*q@E055F$Yy> z0#8E8;OAtNvrs~1)druZqPzru!$tJ*rXNB16O_#;e}i%!%D<zWkMf@=IXB6<#5~F! zP%c2pAc9Un)R&NqDG82_L2#T~)b$LmoN6VX&u<*UBrAWT+zatcDMTF0gJ$BLHY=8K z+6bLEpTD`v`TW<E6Q%=CXFmT8)!whsp19QC0SdcRc68kpmG)TC2Ps%`i0-8@pI<s) z4n7BxSiyFOWY#bZLj7v;-w-9=-JP>P2l7uc^x+?L%Y)phIeW;1nzKi6rRMCRV`|R+ zQk2w}ClP9kz7Wc&93;Wfc?xc`srRD6F(j9I<c`#1m?bzmSiu>+f?KFyyoeVEJ*Wq8 zi%VmAP;*KMKt)3n3HnM!tk2@XiVxqm(()b=us->i&<7EV@RdG<l0BslqdW-ZX*x#X zLQY{CA=%SHaL=HY;KC~=N>G1J!#H~D(d4j4Ka0R(260GAqLDb@URgbQFiy`54dIa` z?k6f{0=E}_$TajGdJq1SLv%9LHE0sgX8k*aN}Kuvf_^Gp*f>=D7u*6;&t|nRTvV{K zE_up7_#RwmM&C~z;qfr^h41!5lw(mof|Bp~Bb2Q30Z>O+LP%I5xM%cPc3$UTt@!F0 z4MR@JEq`$y6=DQVT3>QeUz2K-uSw0p*QA0EMIo@tkwH0zSm+zhX;?~D>94-1uq&vH zdRZ_IACP)K+CM=t4vtqnWSxqjj}I|(1J1eMr04~XFSZ!J9o*nXGt<#8jSW(8XS><A z&RP>;<2>A<`0$sSbmNruO$xGcDNsdhq>-e;`3Ilh{Z7Sdtv{bY$@fD1uhx)!74Y(k z){vw{fQpxiD4zV(1UZBxsa<fJ@Fs#|kn=w1Ere1-dh|p|;YpN0OxC`TTRU@<X#et! zqnb~<j{+&e5ti2K4an7Z(uC#y^=e>B#y~9t>&|6{?!Jrc$x+?d*SyIY)bw|!h)e>H z->*oSqLim%liDI{-$maR9j3-LZCgYs9*3WQkPhyQ!3LNd(&k>2G)3P>Njlw!k{Wvu zs4J$3P{!kMrr<dICAcb>tF{rKBVY>w_XeO%ch4QZ0iTdh_mvXdb8N@9%QtJ!ozi@h zF$>%NkOt)3Ae0UG@i-6mhIGN!3yO1nD9N$$hGT?eC|Ypjo#1A`#;3FlGVEFK#X>le z8dpO840foFojmU`1+@SY+?jx$P`Fiq?&@T{wSdAaAs++A^+4>RkHPOs{4OgIPB>Cj zu?Lb#-zMCl`0zc@Je;yT5cdkAQ`#9n1QI7KSYQ@94uAjv74wllzLOhTEQJ)n5O~W_ zPDhDx#=i4Wo{jP^DBm>ibU=09>2Yvd><=N?#6)l};%x+%gIteR-f4!05_=~Rrfpjt zexkZBREI|tM0F4x)#1kqM|J3Fi&h7EWOt)RTO9_`P0JDL@jB`dZ&Xc(r+gl*8a^(s zCAYwO>3(jEmTXY9jFz}AkMHTayv15YI<<;)X%*?#Dsnfj`AkItoF+|w5v+2}QGwl$ zAQ_@Mgfbrc)`Ih(CW1p}&>N#vXP$-<tBwfXwyip!QOZHp`Lu$lI)bC>T&-|aosVH8 zFv^qAV!B^fvQ@`RU3I3MneQyjXzwlLJM%qRdu3s0ZZ)9}-2|IiUWdM;Y8f5EJEx&W z52BqfZ(TJ?NW9ARiE-6ckQPxVLb9G-a7=9y+#*0@l{$53D6u+;FmBuGbOem81ZMA7 z5Y<U=RHq3FM|HaMqtWWbmAY<tZ>!VHG=|>#qg$3Vva`bb7@u{z^wfgLE)8{~m*3d$ z>eesBtymwaj^iM0qK<@QRk7eWSRuGofDTdWc(H~OtD^{WxMz#;%&3XdIUGzgQ#u$f zYviB6$zsgj4EB&=XW82_gb)C4*zGc?hOeLD@w{IvN5m0AI-F<lbDd5raO~`zhToAT zI>A*8VVI~b$qdEBggLF&C;iyR&Eb(pf@7g^Qdi>ner}xhb5A<Bzd$(_=Qp9``#*`2 z67ZBU$b=-tM{uv`v*fltO4@G>d?3U?PCvO>8#V*)En((rVPM&?J1O_9uU7fo`vep$ z#67%U8VtPOFp!WiP;g|R;I<M2uLv>l54injoGBukfk*U%29klv;+LeHyfg^@d`_;E zNH1=_q8d$HXBbIHdK!XbPeX89iIF2!5aOHCa+=uKPmGLR@RpQ+)+erf{&kG&A5GlV zI8#ERiGrgh3T`Vgu>5eot%<{T!}G}z8oQ{%l=eqxla$rYa6VmT`QiL(G<CFLG$9$z z7aSuL!EGf*zdDMY1Yc9(<ckKWY)0SRPd>B6*F=&s&ia~&ucP0?dxgDa8ou%sv?}2) zp^Wz;=q0$9HB?QovvR|^<)hR0ho*P0!0kTZ_{Q15?S<b={5EkYTMiRl28(87Og%__ zNJ{6|N0O+8MeV&_y^bmWp-?@GdS&9BM9%6Pv*0tWAFRGa;O(OE|Iv}-c)XDilTgOH z4(A1TlZG;0L{Gfrw51C8$8F|aWM1+R-Ao|gw*zysL$)J<12et%<M&&<jXsni>d5!@ zPAo}4Yd@(``>C)z>t7uz?ev9u+(wh|?I0mMi6<m%o{?WrzzoFj;f(>#4G}OIVGcfb z6U@aRlnomDO^}xFavMs%&$l$G&qu@|q$ZSMs)HxEM>Uj8ZkM0akn;)?bo%B)LTi<& zz`mCJ2?#8D%wPPna>Eh|_b5E6biMd|s_QihTte6DQ2cq667FLGeP<uqBZ|!fkmZ1L zUjk;f!?~rvQQ&*<d-WaoPmTzFF|6a)WRGuIoS)ts2)<^UO;*1Z$Z@0WjM)g(M`5Qm z+uo@q|3|nrP-wZi6-`@-Cw6mu#?4TGK`4DLy*Ny|R4<|Av;PStyHa<U0FF?`yTjnV zt09+5^GYS0jFW_u$w)W>dz5A@)$DmRCIv-RRg;I3g`%0qbY)@QTmXuBb62tNZ1Pk5 zt~ByfCZfjaii^_$jaHmJ9grBXD*zp$aK6vE9vD|A$!${PbNH?H?FOb3LG1R<g%c(O zri`5Ry~lC+Wf9Dshc=22e<rXSr|tq{G;`kr=8|R4>}i<W-P6^b?<p+P3|4(Eo5Ot8 z`hj5%Guw;L&ulNg1GBw2sIVHpe8S<ON?*3(@f$n~pYhgxecM1N<83gwjT(~K>qFHL z4ri|kQ4*2$q@tAA%oAaDIGTYxmRsp_K5dMw^eOZT%<Q#6lN;tzqA`YGGNsHaJ7m4( zj(DhNa>O}YqSE4YauqHfmm8EDky~@Gs;owd2F*a*N8CGX`Q>=;Nq1a_|5HfwrFbXW zwu=?Zr1>`G3=R1D{+<jV6PN7lhXw{il<Sy*t)XT>yDD6-!JTbzpD?()0PXp4UVAT~ z4GQAaf#d`K7?3Qnc?OUyv3U`YEU{s_h+NAdcv)h@B@u!f1L!{09+qS1d|)n#2<HR; z1FgCH-?yO_&HG1C?&j{Hr_%x=dl;3c3>>MvcO!0AeE4pl38$?6?>VweYq&Fh2sD{9 zz?Cug>jwOlF<e8!!(SOQQU4vRj8O)Kjr#}R+uaj?y(cc?T9mh-B80Q=hbSR5eaE0a z9sa2(>F`M}1Ukw9O^2x!$4^MsjtlN*xLR<}YG|nUdxN8~l6vHf)FXEV$E;w%h4mVK zKPn+OA|-YC#;gpwvYEik--DYialAa^9Et(snH@@qfive@tpH?ki{ir<02=)l-e+6| z1z;RdmH?=9V7H&a=Xdi%df*TEPFRVi22~3v`F=}K(k3(GM%YG3vH=CRNuPBifdnRX zR$xY9J?7@t);&~YN|g!C4e8m(wxKjNDt&kkuiEjk-1uC*ZzaEo=Sjgzt`C}tUkt&D ziL9h~#aK&u0-6(>*=8W7GRfYAR|5LFvR#}X6I=K{fW#Jl6Oh<KimlkfCjiN{zX2q+ z@O6XZ>XzG7dqV-q+6e5q@7O}>nY-`W5x`MkxUg}_djQB$>u8IKF&IWMKrTJkozz5H z`>vHRkyq)5_f6!l_20gU<XR&hzKNtl+4hmN;4H=Vz)xmH99P5Mkv^YCxdJ7`vhNEh z*Q0y~>feBpNwYViBn@vuNk#iUoTexmAxUf!9Q~W%UNQAvGq@pWL+X)RQjcRdf@?6i zuzh?>N#6kqdJ%SL8&lF-$|@;^%KfyNt)#vEq@>9vCk{xetrx+)=&nyn+6w;mr@~%p z6qZm%P1OpHfr{W5kP2?FhBExLiN=w0Qtv>6qiGOabqYH-cg6;!-qTSI!aiwk2c?8p z#Z^DRRdaaN2e2`~HtkiNSKP)FcHl(}Bjdd4;b5`5JDjbsA5L#*yFcbI5^J=zJ6viS z-Jc45AV${20~5-4%uW&<J`bayjQ3uH!;*iE8*6antXw<8;5aZUxUfQ3(L<q24|*s_ zhba2o6eE1Uhw`C!;}1DP!I{%TNiB_641LzWXQ;G0F4u#&mZ6X8xD;g*@V(r0kcGPE zf*d>5b7|K-m(z96g~`#vPC_z6BDj~)n&4_?2~Bmt5=PqYT4I|eb5mzYMNT-2$16T; z-dq!Q!cn}5>Qq+B8YbTgYY55ovfvou3a)0>Q0W5Jcu+%k12UU6r<5?d6=_R9n%itK z<AAYwXKg@MVn84b)-lmjSVt)1aWS^wMrg<#4@hL_%qYxQHAGm4cjLg%_whT^8HJ%x z(#DO&?~ZrkKRME%eJ~xPom|#$JyhCM|KQt=HRFsKAMTwBWiPxd8mVVBcm3!e@X1xa z*B?>x-8Q3S$8a<#A`~Yii|7USls;P<#SaTnd;{8yqxhZM62*NvzqOuBXl^R>sHu^^ zk}ml9M-;WUXllQxsr{0s_83ELLNeYZxJ_tIaJe-D-k3L}4u4ZdPsVSoHxR=B?y;RW zC^W1wVZyvKTU$Ch_C0&tx%;YdUiS+5dwt(PJ;gH;h&`3D%xVa{=H2W4yK{j3kP7cU z=I~^<=iM93-3jTtkErGDV-HP!_r1*B2~p1V`t}k=h0`&Eufk*dbH4202dFos)31!p zL8x`F8uFb4=q4~ba27uVW`$#RjsuQ9VhVoysdfNh+_ca(VS>Hrx3^H`_rNI~{5n*& z4I^MZOIq=@C=rsZx{>>zZG<N8VT=$*{*TsmA9xo&N#dO_+@l$J0`DqjgiyxgoQmN1 zwt~yGPI@hOz(ddT`XTr|uIS@4`x;>SB1LUSZ&12)$n)(%h>kpGS&Jyb=PN#ZwV~MV z4)zZ9vKq>Gp|sx;!sBmM0g)NE{FwpxwoZl}X?y<)B{`$e>Oo3g7(iSHn;l5bJ;1DT zBxeS2@5OH_e*2EVe{vL2tcq{QLuPtmQCebXmG$ozDsAbpT$quTkKp}8S_q|2zl}<= zis?s(@2*X>>9<b|{pK%O@Me+ltV4|g%0?{IxE~vhBb1DWv{nb%1}qT9oyC@g&e|v? zn`3Za>au(|HY}U><D9!Ib{lY%&5z)>cMNT7v1+wTsAb=Tyvm|IX6Q>O8GU_q4#-+s z$Isc9bS#$9n?NgfYS5O^AMAn(av1j?q=`)G?L`hpF5iJvjtLX&zb3a7T2fJHP7moG zHpxX<gv-_XOelR?wV~q}MXS%@-uW1NczzI0M$qcmmhQrmo_rf-QS&W}Q=!dw;TRm+ zEW)#kts|5^ZLU)KSS&}M25siW(B_|<&y^#BHk0!$g++4^Dx^Y|uOYOt$fES?vqrxN zrB9bHl%UHO@XiZk=<-T3x=d|h5V0&3^8CsnkD||dLmxuv(`Q%-o%$^3(-uRYV`6p6 z$jx+oyfhW!Tn_`|%FZ4}rwFA_o3E6Rov(m4oiVieOAxt7>ePakB^?DrqBKRQ3Bx5e zl`txdXT8?Q5TW$x^y3mf>=xYH-C@o4VZV>{VUzQUPSZNN=C^dv1_d9!n3eDD>cPiu zQ<1E9A=ECW*-wlwBa}YPo+v@H+d#8(V`S_3Bs6Qv_sm%YZ`Rh2WZNf9Hp<!049y6o zPqVQlXvS=n))<=I9HEa>7IznxkvvoEy$@0msLzKZBhkS_3~dOdPn+vY(575$bbJJD zf;e&-DKxdCW#Q}=?C75gb*@EM&r&za%?*Y&gwm(YNDS*l#f{}+fVmO0nby^{up_U? z($e06xN*wT)_ixNy{j`7>YRi}wWuSqvpbLyI}%EtKF916O`mJQo30qW`f_XxkZb8Z zKL4?)=x=mP6;k>Akraj#F5WYOPLuH-LMKA$)9J<%@jy8`?HBZU3(zMgrGI)SJXvQ; z$E+otK}-OZOGTbuh>9t1Ht_(V^y##*ge_VRd1{Z5r%Pge+X=n13oWf@%;{-q%}>i0 z(sKWg7u%!zjXffiK7GDdf<D)SK0Pt?xwu05D9Ks?a-||l8^eUcv(k3oZD>U(eOgU} z#f!4t<!E(bgzXOeT2l`MXxT}f?FCx$S@~WB<V`*5d@8iM1y3C^<BC=}V8uQWN}pC2 zmXND!z^BDAa<wT!u4cDl8Bp8QmNS&E>!;BB0X(opCd$)FBTt0Vr;)7BDIO=e68AnW zhDPs)A=O8O4aeA#vg#>#wk?=haA<OjvDbvsr^yH5Eu(a76<+wn7@Ew8&@t*$Dk}6q z*uzsc78w6dD1AEIRe}x|<K8F5(4oBq9hhOB4lOWx?#RSQqbG#Yr^Oy<HA*Hv30iz4 zh89f`wuCZ~em85m+s#roc27eWLg~|GCM<UpUA_pqEQ+Dax(FEw{E?v$Mm8|yno?Km zr;Zm=_SN{HmHpy_uB%dqzR3wyIgEWJRk*21DmrvUu@2o~><OXtWo1|iTCBr+ekev( zmSUz|A0b)<UN{wsJd_Pt6^ZAD8=4SGpC%Ja(B#W_;f@%Z>`}t51T^sn1=EdsmxbMs zvN1;)8WBpLMvF_(=rYjg)EF8qD<wC2Np~tz^K_UXv?*PN9)!}T#}7*QqH=Rvcg4nR zsw0`2c{$h_c_&?dXnYZ&^y%`U5_BmSuRI^&i~PP&Dl+n5*fo<DA2GBbls+w<EJ2HM zW5a)rphe)9eX683jrI31WyI#L#ZbER3kju9oBc}6@s%6@%*BrHozmXf*7dPoGiH^F z<U9#ku_9fe&;Dkfk5Kyb`6?ozsF?0r+O`;bdsD3J%w62!i%<Fk3=e}4MRdB(#CC+z zr_&0I07cQMoE`2A=F(L@TJtpSGu__WobT!B>cMt0h5W*_CeeQmnY9T++p`kSE&4?$ zeY&hEK^LZ2wZzCzuS=KdU6KOTAB5QwCJgCvv7rm0^yzX%3A%g=_im1%%QBZPvzK9O z^2Pl@l{dmv5qoo`p$nn(>GIJMbh!j{IVFZJr#N)!2lY8FiXLYgdJsyV9`j1jgF6$r zTP4i^j=6+W@p}ksAoQW^O3#wcLi^&p$Vn>hXd)<XTN9Cw`Gy{ZGF~G;MOBpVyY_8- zw$1!cf9zUdl|soGp&2V_PIm)zfg%9@^Ohlutn*;Kz3UMv1S!Ax*r9iZvy;*xz|jLC z+045r*ePUQ+p^A<#qF)xb_{Q~w{*0hg+2WjAk%qYF}_oj(e0XlI`W@;CnDCtzHY`M z3wqzUoNy2OgsB8cu7Jqm=O28YJFr4w07}2NcKkqDU$PYMB_^0q#=8b}1b3Z=swU$J zhK#EW8P6_3M)sgOV#v6vMlu=$UI85|AtQI25Hb=HG764l6kL_kILnanQbWdbOOTO< z>hu^guC9@c+TK?{L|KKO#dG;boHU+e$Vf=YC^(W)aFJv@<ni!#>y<8Z>w}XO^|FA@ zP}Hjf^cVd8gx_5br4YI)y+uXuc&fh~W%Ral$>QejB?T+_d_HDFo7+2?>DwG$L1-@( zu`Xy`)Y8*j=xJ$(-V;9RKxGlISf~pzSXYlAv-%T<?QLbv0M~)|ee7<iyyQ*00?qez z?Lx1%3nwBD5rHNo-zpazDJM8?BO^F&Ln64!xN~X=?))3~cp!#5CsfRxj|q*1un8Fy zy2j>_K2gLbAHP*OHOp{{P{#WwXeT&QQE=QSOK@DVDY!^Zg&d;oD2;P$Gv?@hd(#n8 zS>6UoigJ$3aa!uI(RPkw5!C3Tw33;T)}Z%qb!|IZu<vCXv!R<=v3W6eN^Mz~Z!W7M zR0&rh_-x}cVMlqiUQoUx-cb~SP{z9%bp>~uhDta}W13Wyv1%}1SoVdbeVROoq~rMD zo{F6K&%1D?9bv2krqdxJcK=eAit)(JzDu|Er7TU&sWT=`o87!n(W<4Rx2qYkS#w)^ zZ_E6Se48R+Zz9qa+jTzEX1pB)%tRS?dJ<)Pb(Bv$LbAoK;BG=~!9~hrJn@c;Al~v2 z@z$XEg)zjtrE22MM;hlD&0U?%3nYgs8P!~giz3?HnrPP<q7lk?>+vpvyGBDLB<|J$ zwi>$<cR~cwR#Zf^TdO7-yjkm_=DeSomr&G_5N)F-+VzHLgoJ2<BhdsGDQV%&<2Iu* zmXTtQ+H#$R6Ad|MDTwxPuf3_j2me3zz6Cz2;`;w03*w>@d{ne*R}C1e*6>gfQ8p5A z(Ew2b;xhrVkkpXGWW&Sy2nJLPC|0yuZAGiC?^msYRT~NwtlFPi+gjUN?89QQEw;AO z*6RQJoilgty|Xu)-AzFGf4sV!lkc57cjnBQGiM%m2HX-QSlSiYfOZtP`;oASGX`9+ zE71z%JWE$60Ap8TEPmh3U+fKa_?$GGzJo1lzTd9YFKSWWXGBddst(f>jN>bU^{A+8 z5v|zD2E_$MT^}Oq-l}0r7j>9f@QeCTuVFIHPj)ud*Az9U7S<)RlDgU<Acj1-7t>-l zL{qfbcQFkSIni*zsNsTziaoO}orj0*hUkufSqSS~_#2|ao)B6~bFvbB;tR8rTbkgQ z9$RpgT5u5~IC9dt5bPf2U16bu%hxm%8`E%Jh-tVoL|-55#562I0?*H28ormeX_#GG zhgA((N;^&5VdmjyTHFs9^FS`@&?pE-w@|RG#qBr4#udGk#io3xSxT0)2V!Q?d35@s zKqG1=h@hDbb4qEJX=X>@H#kI%J=ZfkE8vC~@5*?mS&7*;!AzU2(y)ZBaQ2-(My1J# zQ!3cw`fevKLcS_J$Eb8&h)Q1-qS6oNsnSp8t<nuGDfGv)k~M^6i#trE|DeVFkWp!J zqSAs<sRRpE>C7J4LL*eK4{&wB^x_XpSd7OQo_G08@0z@Y)yT!Ql^mVTS71zs?IQeH z3+xdiFmh3~kG^25@RVSo0t>cPOZza}UZ<(e2<*_otmOE|Sqd3>!?ITbnVCUgPvtGJ zrWu%Bom<(QOm;mC6F%$`Ca|qqV2>JskrROlwhB2CEL31mvD@YMR{b*LXvvjIW*ngx znIU@Tnt;s08ku1TMZ-vA^Zoo~rWViTt6)rntziGs@_Nk3i=5O*!B`^&3zb(;!R$WL zHAca_8rdEY))k2Uf(#1wbl$>hu4$P)J6p#w&3uI^7xp1lt;KhZu*iw91f#G73l-K= z)wrKYxt4_}*Rp`TmLY~3OJ08EdM1B)@#7PYp3X{QAgD1_la-#?W<N~HcGYrw+{lfb zc-(@~;}$GbZuz#d%Z>V7r#Lz`UZ3(>CD>q}@(Cm?tWVihN9WmYh@HDKR5qzkG%8aK zSxG%jUBg=2J+;`sXT(lU#4Z@cE?B78GuQ2}8sU0%dwD=t!-VE<Z9DQ7TB@e0Vg7a* zG{SDes*XQtghoz;CK!b#m=an6&q#;>Tm2%gf8394_zM&5+lF_nVN3Fl`_S4JRIXzH zPM6HbZ;DlY>14BQ7>wUNd*dIu)YL`iZgOQsOJiNKQq65>ohfi14bsl0Gx^?*zQKXU zrMf-%MWH*;NG^&kQXNMy&M*p=NA?%s;ff5|e{3%VkgJRAn>n4z8BKGt%D-)?RQ3l1 zvp;%IDgAyX`{X41f-(Dog;p8AaS!mOvvr=TBJ?D-A!-@-uTx#DBY*|FSgk<pku2IP zY6~aD7w6f<nnR(@%Wl-r78~DRgTXv%w_AVb>&dPQO*e|1jARMMPOD&fifw}tn>StZ z1Jum0>5^;kve}lF`Nj5<n{MAozuVKqs)|mR7tFzkYjRdgievnhjhHIQ&Q_-xYo^6^ z#Ok%(dDhq+a$<J`y9-YV*0l(YwtdBjZ8w+~&#w<N%~)WnH0u!17xNZTU2Xk^m;q@_ zHC4`SNhKF#CnH<Sm=;?^7itmlC`g$>A}1mej3N>&2N9iPMD#ONAtQ){ruriMCR$qL z7twe2MgY0GuvN8l>KmH!?icc%wwZ?4tXip`BgG;La#3uW=Qx7VU<(#1ip@-T!r!-{ zDM=|Ep>4WT3B?r!jh?-##4n29=BX_gR$!{JVqs%)LiL1tZ{vZiR3;mZnXc{9TB9-K zWW-Xidyq51l$dgB%rC>k=U5uzZ_Mx93jyTnLPHvBle3cZYcXc44#48Rm07iE>BBC3 ze?K?^e)C+SwdI4uTx}sI=2<YBXTd_XCA=joGZjbH&AQrhBO<%V5{qA39y(BDf`5&z z#R}O4wJF~gmD^=Om-N561WhUpxlRZ6d=pm2oO(;KWJ#=><(rU~rVLqrut&0-&*Ce| zGM9@<mdWLmWpCM(taf#?yb@V%%#h^=dL+xaFO=d43zv0CcFE<G-D;!M!BZ{oM6{P> z$nJ2@73)f=%}ki*bM(|g3@L3cBa!Tr%PIRZ&&n1cnEkMEK!2TnJfsEaN)G-d6tl9P zS(Pku?pLx%E~hNkcT&RFBhzy;l<;9*37ZnkC5!pZXi9cD|0>xfms56SdMv#}uR?Zb zWytOm-7L{uCd620Ib|nVB$rbbW!5S^i(S>(At5E|)yZ7S)_p3Uc`7Mk&az4N$>o%N znJr4sepe;Dx|=1O%lr^am@`<CMRGZ1@!CA=><_w`Mg6r(j)QYjq8v(;?2^kVyWSYV ze+vD*wyv!3l5Qz<E~5gHMUGoY7Rlw5MXx^}Y-qabYWyUmMBUow>$`X2Pv+Nyr}A>F zL9$9Nr>y?gD6f3a>UvPzfpmTb3;ZI7dE}}xEsp!e-KbI6B5Fc?b81HYtR#<$9>#y% zp^HwkkG0eiKAR;>YOd-L3`$A1$#s%#|A7GeA;I5A@4_2uSO{dC_0bQ97??XQqyMqj zk2bmVO0=<|xpo0|c%F&<Fx6oXF+7rfaVK^z)^<hqeRP3j)-Y}Kh3_sJ80;an^_Bkg z7Y4i8B^Sj8)s7<=b0HWtRIrr>E5nHju`(PJH^_hB&Z2i)5rX5xF;I7WxP4h6qeyHh zElkL%?u!Lz>p=H&<7V8$iR>LqItDEM4a4C~cD;E%;>W?Q{0H3hM7#ev9_6YZUg150 zcT_RHU|8QfT6TS|w6MC@mOdnSZCPQpmw?nRTP`SBvt$=@LhDl)@>dCpt3XUf4HHyD zu94gPH_DCWsvO(|xzjiP^ywHNjC&BLiEcq6fZ&f+e5DdE{$M|quUSyWgT7y8V9HV+ zZ(ph6GH+e9z7_W>*OlSlDimh~Q~wxGRUF2-owF6kLabNZBPQHS;9ggj_xIo)UBYKM z-mpnwJeBTuisRX4&#AiyfICygatOF}3OmAJBf!0-o+tr#{}9GE1>C)gYX$fB!-=f` z_kzMAcpC?yUc>K9tMYsUp+*B=3Hr5+=Fl}3@^yDfwc0L~I|8Vh)QULLuVU0Bo(My^ z`ab6V93V>n=>mQ*)|^aLwlr3zW;y!<UuE!A5+7jTqv?9y;v+2FI}TOfm~mBkE#K{~ z7%#^?_hOz3plG`SDAnLsFnYs$wt=1tx)_v6fI_yup()QGUxvRai{+q{8HAs<$O9J1 zLCTTuz~$Lh&*F3{G#c2U_@^3Qk`xvz5f%kvGk;v+o;;(<aEGL4Xm;sgQ}z$&n%H!5 zaz?IT@9MizrwZ~s4hwJlJ3PIdT-4bLZUpA<`aADyP9G(sY~ECUBZ$*4|D0GpQQNDw z^+lEEuT!VZqy^FSUxEz6d!-JZ2u^B>-;lPwTTCmuJ8l{)T2>gRC6IWOy=)msAfb$b z0#cD-9b1OdKqXXASPXTuy(7`KEiyj}>li~$oGtyxfq?-8gBiQx%5|KLS%J}mh{J_r z!kq=~28Frx^DZFvPB*Q<sBahJ_nxP4A&uMkx`r9tEwj7<>Nk2e|H8M5C3SQ0ne@1e zTJT+gD%D~{lzzE~kHm3nA>^h%<19d}O8~l5K}|KyroN5z#nB4B0F5B?L7m|Bb&Rhw z-KdML6F^siG7oovGR*a6RE1pBS#7YVHAj7@D8zZG`h21MOYNBSQp>W;zGliyIF{Mh z17&tMkn=2?%As85eF1*|$f3-t8(J_KlwYA;pI&G;1_}*nVXNaWH>NY2a$`Q+a=Y1- z8@VV>O?4c>Iy9&KI=i^Mn$(iHuCUv2{a|X7TQ6#Wlv*-A85sQn=I8GjoxYN~`7;(a zkB9yzyQlzeTM|Q@?#1^|My%Ry^Y|v(2I}xvkxH?B<f6_c25Z%vt;3D9Jk$tdd6pG2 zEd95*>%S?Wt)rjuJ(hH|RIDjNFeO8}M@5OYOA3pelrmC922O0*O?iR{3eSd?3SndP z*IJ3FI4cN<)0S9XfwOJk_FRp-CX#YK>3W4_h11QADh8E^*7g$=CKBi?ZiGH(5q7V! zavc}>S12E361eZ6Qbe32xFLn)ZU#41-MtUo8ptr>tOIwl;(iHkin{v_I5`sUeQ?1p z-fci8TDtKOFfI+*hF_suXuj!LIpGDHP|HpuFp`ap$@=Pv@|BuWl14n5e!1>UD{kF# zh_RCNO(?>T4<<Cj{oKvi$~f-17t{7Setqy8p+THh+sgC~2Tc$MWxjA0eJk^TGi;SF z(hA<5!Ka<c=!;~|Y|d^7eWLB1j%?fy*1yTn4yk|SWTCZSkL$Zpheu$JRKCZ7n!_9~ zxZ{-XahK-8eUJ8ux@u+eJp%5@AiP&jc!KTKni^=t3hV_ws6jE*w<5K`2TfgMz!Mws zcjTv=KHf+_Bi6p#VH?}mE{zm2ltNUCh+wRz{o0+MZdT~hUhP;b6j&d`AxqnCHUWbR zjTu<f4Yz~qs~eu{I<}^vv8-YKDfs?bRS9ZY`sF$fG2CkDOZ}h82lhmjC<2tiZ*s4C znCgKrqHqIL6{*8|D;3OJiyP-%eKC!kulLuH<$au1ru$k@){*N#Ye83lGB4MIQYZe3 zw~9`X6Td>Rr}bT3)}gylK;STlJn^foV}aGvgluD#>o7FsyritsFuoP<@Y<;xf!Mo! zjs}K2JICR7YltoK<Q?oPjIBfOXHr9bNp+%ORt35{Vyje1#1L2d<(32;JYQeSH*mo_ z?!|PmkJK9!##mjCp<QEIzYEIrKCauje;Xg4T-130_XK-Hb6v~Sj5{bP@{KPlDMrB2 zrd*9*nPtaOZI$dGWM^!M>?ju5HC9Q>{WB{`(PmQ~zlKu5*=2un7B-+YHrp>Nrh_)y zFRPP#i>$_gGJSDS>K}DO^pBjZ6&GxkzT35|T>W#KX(cjvTh0{$ku3(2utat&Fcu-3 zlM^}-ne5_cM3$4d?(oDF=zjaf#WdLB`jJ+x=RldZ4O+DxGvXqrmx?Ql4WM9d2LOJ{ zhim!)*3J_vD}VkGLz;;HgLZk9@){uah#?E=K>Y9`XG2EkQI8mot!vQUV+@a^U#xor zv_^@^n_aDj5Mw&*cknvT*tsZgGA;H9VvQa_JP?kMC=<D;b0xwG##{-u%3yaHEN$?x z(>^afy^lLw|4m#=)zHv!ECUB`utIvgvCW9z5$BK%Q=&Iopta8l6xS_NKi*e=z=KTm zgUv+mcLbjM1ss(K_G`i#Va2)i9?z%kntdHG)~TiVy_vCi+?~Y7HefKC3teC_C$-eo zDKqKUNyMZt*G$Iow{Q1wo)nz`B<B|6+{)R>Ce><{14N3IV^^1~pOdPAzcp}R4A9<~ zCd2TRKH^yVR}Ai6%*QG;V!MKtYVb?&<(Ri)Ku-lN20a&aC}=$>eZjAQ(idd@=?hXt zN{lLyi#oqH*e1<Io!N9XX1mqJb~Oe(i9*{DDf}2_Y<Nf8wqB{h1D-@F4<@j7Q<V3M z7QMy4`maT*dpXd7$d=tyAhIagNYKG}7O%D&JT}Ud*DU-F&+K4et$HdswxK$yhAhT6 zHO!rwnmzQmDJ|G@X%23c&!}zc!u8lo7sW+*+vHxeYnz%=4vUf^7OXjmRZ!Jx6cU(r zK<3V9zR*`6NAixon0`7RR8R_@*N@>`Fi$Ul(gAoGl=*uFlwr2wby82s$qChh(GCh` z#xYPkK3r1(-1Gs<Sj%*utB72Y^xM$Ki#e&!6Nx3-9r>DwRqtbrilC8@-d-`H;%8WK zZ(;aVK;l-*Pz{VN!v**a>7->CHL8^7`zEI(>t<If$;S~o{c`INmEE`VJm*Zxbm(6m zq75Dg9by_JVLB)kc;2Q%{XMPZ)iB5+M{-f8jo}r>90|sDL9kT@%W0s9mW|dbu^G=( z$LU!Yo&dCIFLD&{k#xCH4qFN+dmx1_g1^!EcE|L-s>XtjM?At&Y3R*t!OuRAv;`QI zr~yA(4t>$}u+F#%AIU4NmHD<)lBxO0Wc?H@1T8_Qb;cZQT-H*ZoYXRRX0j>UF~0d~ zY^Zt0+@Y#wB#;;b4MVvM99Rfw6%>XJJshKIL1Pv=RB90mIgX!uF|QmoK|M0P+~-ip z%>M?^p`aT<IX>__C}r|vP*x_6iHZ`Ciz-bKj9VKC7A){iY80xKDq=kd;vdS;wM-TI zep2ID>^Nu}O`6oLeRZ{iQS`wC(K%pcI|6CFMU_9zhj4EBzYAoZRRI?RWBxD0Z{Hls z-;4_8pa5~aBmMGM+v|b~Fdd-{Bt;EN=1hm3N>>0sDhgniKl7TY{MmP6`ImsQ{3#Q+ z{5ifV<xft^Uoe)xV8QZ7mo0rfA0uip#Ojnh(#yCoGQQ6$-L|op*nv`bE2=u5fUvit zOg+!>Rv`94xl@3#5GUeyU&hw0^9^ms;q>LkB<`1_a1hE&tZVPWU2#X@#Wykj28FJS zKPWGzjV)JiP}W{vZ}xXuAw}o6piJ{7P*$=#kW&#dIT<<;>~Vd!>u!qWdJo2fuR}JT z0Na6#w`##Lz+hF>rj6?}`gYp&9-oWveYDco*^SEgW;yY?(e=G4uow}2F)g<1U8P;` z{gE9J5V@$s21qdGO0ZQ1yUSooGhG)9?Mzyag~~V*#wO5hVUfHYkli<d*s^1v{1E(D z=<BkQUFl>DY%1-F;hFR+wBN!BTbeXcx4H1olsM`5@OsP@XWC*2rq7n=1zMhij6BIj zov$OTV9cptR6W5~8!TAUZGo~KN9~7173c2>vT%PD5b5ne?4BTNJ@sTbem~4gq*+Lm z0%RG90Qqf?YGgxXdNe}udf1hzU8k8oinKSVTc^*0NSWs8piKAKTEzPq5tEBLv|oZT z=Ymnhf>FeR8P7D-j#98<H<xr=7Nu2%6%L=}WCDKxcg?c^^MH)8EWiX{v;brAJGm1_ zR7Q1p5Mr{r3*$&(#}U;!8JVc5l{rf3jm2=oz4+eO@niDc*B+opZPpvdlbn2_C)f&v z7A$))U4ED+G`DLllgdhdh*8UrN%74RQ+~faobqG)_*cbozPKeI)5SpS8IPI3DAV)s z`>LC{&{5ssC}U0%ehcaIZSQNVD$`((C?2DSeTqSuwxN31=N;rttSdPg_7Uthgc8ii zyOT<9nNX;_^9HJgr+mwS*e2B9{5+dgeTNE8k|i!N#Fu`#P8BP>Zhr7ccmtHKlwnQK zQMx|wZR#^QY$T002*#WVc9+5KF<9tVH^ZOz8^`?-_?H1;Ed*j4M;aOWICNIOn^9Qf z>sp#?IIdXMFsF;=hMmOy5FszqGN%iM@3z~LZ|U0ldnlr44>?&_Cm3@f80)QID-EVK z3jSXKy3<~F`ErD?2T}`w^~G;b{2t6$qe@y*4GHW&Qis#au#8e=9}k6GuBtHZ8=&{T z%9PfYG7M{z-&%c7=l?Fa=8}JM^68aeH{&V6g6(D%9g#t}=^Jxs<W%u=PCA2D;GV<I zO=H`F$j7PUjk*wOhqy=*5v@b%e{G0I5YfjfoXj(C+^nLs7VnAE%{l1hWrZVEkQFqR zdT<dF(yAq2pzh!`72>E@c)|G!EbQBsXn#>p(8!D0H^7gts$BQtSiDzsdpbBCSQ^0x zyza1Y8@N*yb`7|LujJjYf@4z{alQ?1HXNOZ^C&oac@d`r+%U!c4BT+V{R!M-U*=u* z^zJPt7XkMket*XA9IMUy4>0<8|G@9!&*2}rLi+w=XEdg8PI5IyHnEd~(kLH<fdZvp zRc;Ic>P}BL0(}~;h1M_j=0^hRuZAlz8kS1dr<6w$13DGy;>ek{StWpYv1+oaPLn^K zmk}TTuGW7C2ekP{_hMf8O?Q7#H}oF6IISb__nx5a^Fy=M=;uICwhMcKLY&Utp!69& z2ddl`(EIWCAkgoD?hpDV=mDUVH4R~{wd$FcgS7`4@Lyr8^L&yG7k19m<9K6d=^BcA zOc&J4e|0}y*-V$?jnuy+UM`k{Tol_myV#F47j=Gaus00$w!!{vFq$TbkNt9q?`Ckb zF<sW*xlMCX2W`Jog?6sLGeUE^YpG0>f2E(;161QqR{FJ%t7zNQYe`3HkG5pRM~U`{ zVkYzhG;dNn>FEiVhY#@#^vA2rRIp4w#Pb=OMcsu(t1zy9UKj0Ru+xAu34%VvJy7RP zrgB{$qBqhC%ciai;X}|N#FTvN5uo$6PjN8JmnZ-^@hJpjP6fM5bN!ur3>H|#&`Cd` z6hkR}ZpI@etJxOFypc2mH2Z2a`_lewb&3$k*>Z4V7GUKnC)(D+roXH$ITrqLlof_v z54B>f%2|PjBG@(<OPCcG0mrKLIDYmqZ<hf(6u$-dt<2bX2i;*5)I`~l!JSK1g;tDc z(l56)kK>kazMU%{5`a?pP3~3exHA-|pzh=E`s(BYRgiR_X_eiJX=a1Ze6gzX8VxhY ze4GS27W8CL=4lKl!)$>QA*D$!>TERFi<(0T>*bT>bO9&}Z}zlGm4)^IR3=eIRlP15 zxCrF-D|<PYb3y+IS<pX1E$APy88Lvv7X_(4?|cn>$r@@-+44TTVb=5)s&FhvwCDT> zT-?_yvfP5;pU@mQEE~165xn;l)79Bcwf;<Ajh9w^+(ErVW@3CubzT!NOXz&zZVdOB zv;@pYdF8rt;Ic};7M!for>HlfMn#<K!TnBgH-md<39(h+WR?DRz}>H~hYj{LxbLYa z)`7c6-F?B_{iV6P3EbW4E+r=M(MxzsJsSZ>C0~QzX_ilMII=Pr_#vQ6GAcRLdQx&h z>P)ps-W2SSr?i?mPQP3qq6)V}g}JGoT7Dk`BwAdL*wkiw$|ZOTIIrCXiHq<H`BVMv zGg%1@lQ8X6_P*dpYkZmGv@$<Xr`9S>KLA~Uzk4A(%Al2bg}0{K{!4N1?EKsQG@<0v z*0U0R$5cXcQRi-h-K)8%L*GThu_Ptj%LaSRU~%NHR<)m{n(M5s)D=wHN(eq=q5GnD zAv)BR57$7K+-lD?oT~`?oPVVWPcbjNdk?6tdaOQNX&Q4{P>uB$F>u_AP3=ZKMMY!n zt^rdn-a1T;`x(!cGr9VdQ7SKAW>U(qX5JT@j4m+_v;q8Q>EgmxJRuS80vr(v#6XP< z)JP6ZL<Rqm9H}(PGZ8+c*iE~@P!+UQ7nc8zT?l#A3b{p3VgPS_#9KN~c+o1nJF#dz zg@^70or&iUV}-8)Cp+0b0dDAEVjqH&&H+_ZoQ~0kbF1&S5z1cNbS6R#15S(dUPdnh znp)nJoL#$MDh_O_8{05<?hI9dnZWdm6_^tSl({!y;I=}7%u;dCoj+Aa@I-;@UfAst z(`hdf=XoTf@MH?~Owblk=3^cx%@sS;=UP>BC@{Pv8}~OP!?{<^9gvQ!9PiH3F+$7Z zXi(o3)*a|d9>bJ66!~KDvF_(Xtlrl_XT@J27j^D57&TNdHe3>}!(d!Gd!aH*G0kDy z8*sCfTYrz{qRvq;>8~q{PCvO&^VL4C-1zaVd|iIxqaI*QhU3qQJW-nrv3|<Q4|XQh z0})mAljZ+Sv@c(Uyllpg3nkdQ7y?#m>sf~5#ExLD&s0p~xjSIbXNtod#+{b_Dl*z2 z<xIrM!KxI2ayf78<Bh{#T|=+qgZJ8hsQeJM$^dW2dMKLXJJD8n-HhjeOtRYdN?-@# zcQ$^DyK3LPww=pp#@Ee|ae`tzn|{%AJxC9mOB?UoKeuwWJS-~!bbH^>G*=ysRxPbQ zSM$aY?<#aLCiiNZF<)SBfm_`7Qs#qgeIHONJ+Dj9hBI$46s;$NE&-hidL=0Hdle`Z z_S=w>C@eWy^(5FPeb-D=wljVh?A`G16vXEVw+)DGeFp&Ri{BpjJ(}72vMYdLO*IrF zqcW<x;lYs0?G(_`Ek+JA4e>Dz_7LYydWetCrevI)43G<U8=ev@IK*e`s&cl`$j1;K zjjwXQ^_U#Lb#>RjP+5JG;q->}ioItBQ-~#adWz!Q#*AKZiKVOO0z(_=unZ$1x~e~| zaAoKYV|A{c?yS!4UkJ#Mjg$W&zIQbSntFq>R`Gfkx^pDx4?vlo4p8dS8stJmN>1i@ z1Y4o+T4yzeN>n77b2m4kiX*3P?in!Xo)SNZG}_<pvdefVek_q2LZsf=+H$lfIreYg zf^fAeXWPF;nrv5s>9xDK$HHY`9*zSY3wk^#^D`2ZrS@lI0mwz2^#<FhxlZ;G5NjV; zLj5^BF$S?j)Lhwg#kpEthkN!M0180Oe=vRbW|S`^>K{o^1|o*1(k~ha+DTiJ`7X-F zugOb$JFWWy$Hv!6M(v=K$*DtJO(qw0S`D^XbH*x$oV3X)b1fWjiA8H$(SDo3mo|Rn zfJ)~)sw(|(a5IrMPZ3uEskN&ANx%-q?|A&~$S5ekltzu3fTe3@x2h>EGaH*4X5k|& ztmaKMHPmrFsS8QEgJ!<*moVWneYS9a4FzMGe*?;NyC3!SLT<%Okc+DECBarBlwhuZ z5Tk$453uJSgsw<`sn9P$`Wg0^B8!y`BFfYGe#Z7lk10-QE~%(Ey9@DTw<Mja7{kxK zm=?QT`hp%mEHFltoGgnGjJXnQmFD_8cNy&JPCnx0CJ}K?fydqP9yo1LHd|22@KpvB zQ8FOVB|z-uuBQXTd<W(<9p{OR0-exYT05s!=I#7#3m()L>nueX$KQ?kP3|?TMvZ(R z73%UPLzK<)$HH{j3plo7*)Y@g9w^iIcfE{wcZgI}k6hGQgnNQ5(VTowBG@W}nNjWn z>SF}BZ<-G}3TX~_GTwJEgycZHyI~QylJ2fx5E#RG_LpN91GQ&^PXopZQ;J_lMu{2~ zE$wpsHpLo4gxuhdOX>9(w{0EyZd;1SKqZ-;Vo;`Os8-Q^jTFg6Iez2_wo-FG>)1&f z?~W8CATF%GcK;mk1m&mH6H#@(h~r$mIHJ}R3CAK~Kad4#5985=VK(ThY|bdw@tC74 z$6_Mb&E|1)8&eBa?e{AiqR^M?hsN>uVCb6P4^5wJXBxI4k<<#;d^bDN*i;#Dk`qr< zFnXebxwYHYKi2M;THw;QZMW1xnv16P*4!RS7ZHuKg}TVsr|aVFKrgf!914pyXfl5H zu!)o_WIna?WtbD1C+Thtw_rZ228Y5nH{!ekCDj5q$^fNQ>HoxlHsS|EAPQ^it18Ss z!Pfi*EWKo!Uj${kU(!o4zj1_H>&Z!jBN!VT!7_i;p}x>)+ZMZIZ_QnHc@}m2Qp7&N zl4}_-D&u(kR?uCND@3jnn#*}e4MkVdJgc@gOQ~Ii2#wT45&a6x_m4!M%<ly)haxgf z*Mc%#*J;H}ebJR0IaviE*v$wfn5&p}HP5rznN#R*$CuzWnVOv^GuGw_%~OoF`9*+8 z_0`kO&cAfC^MP)5w&`YP4^zX*NwXsub0`?=x?rmemc{2r@}1F<@|_U}OHbkwyp{t9 z6b%;O*8s9m*RSKf_OiFxzz)N&3cn#4&A^1_?e}SsH|*grN2bkQjlB*MXL^4G$}~Tx zOW<$D=Oibqu?2e^p#<wfmAxja1KUOHqg*POgiA9wR!j^njOX4{%(E@4;J3E-W)yQK zYdZ}iNYw~17H4VCn1%E0x@f*=XyZstz|f}oS7Da+Wo>C+(U$gAZE3%0EG;<^vtSgn zU|ongS4VYrz+zm9*VscRen)k67ZziB4|=M0lNIKuehB?!ll4E)aiAY*ecjVo402KD z3fvQnITVZ*L$Fl_^Nm<}tMBf|?ei^-<FH(R{i|?25*T&&TPfxKRN$|1^RSkw3|~ei z>yu5RMoq5ALW|m_hWfdHo2Q^x-Z%~){~hS;Re;z+F4s@u?QftqXg`SqoPz)@RZt}l zzr+Bj*Ve~;Q8BGBY60iz*Se>ExEZ}57j-%iPO$Zwqc3W9Ir4<^6mHjL5X$8lt0AU~ zQmKV*Ut2!#R?T&{W%MX2P8KpsTh2%!(Hi<a%%vE)U|(~zsg~rT&dUaSO>><H=|SAC z%pjyG-P4>YsTq2kNW3TH%0qY3UGFgM`IXk5Ax3-1$=H`*8<8BrLbc~1+^)(Xm~-<M zOa*qOD8-h1JzlFqHO8)1zt@8Kk`W9!5sY9Ij9{UHc?P!|G6+Tuw;>EJV{5!o)Euf+ z?sCeuW`zpMu39T})f#K67CHGaSul!Luuwrgg4;7Q2<n_}Yf#VEE_)m+tZMyEYtYd~ zgUE>n2}TVPEL1Re;&w#_!JM6wVAzE5TbFKCr}c-@CI=g-P%W{m(_2~?M;T#|lRa|; zdm6bFEL0eG;r6r)!kC(uFuJK3A>znJGk&9mQDlTcPJ|&Cg&|m|FusY~<r#!AJ!fHb zODk^4S1UGYK^$oWK~Bac1Y3=q3Ra5wZvQUDo&)nN!r03)_X0*oi@)=7mc|5h8L+`+ zLyxvS?o4(HN$Ro=G5vNO`lFWCF-BVC#L^1JCj{$US{(>u@BHbP)|vTBtDCjS@_;kQ z%dTW$(t1NnYp{_PIgyrNl$KzjmF#ZZJ}W~dJ1b{FmBY#NZGnXNL#{4dy%%F4+LM(D z{;d|s7mYy3$+nt;bs#x{<t32wa~B9UUul{#w_C=?(i#~d$x0w^Yk?FSfshk{2u6Vj z7Ala(aoZlipeNvVCl__6=fw89JXiT-=h@lShiSImy02=tZk%!J$jQ2I!Cu5uf`tm_ zJGgCIWxsIF$X8o>*2*Y-2@{BIeP7qwQfRb=oM?++9mug@p#tGb&YBGN<gy;pmR#hM zoxX&3C2ftlQftf!Mq|iD9qNf->}?AcDxg)kZLd4=Ys|EqH6|BPgbc}q_%+#R%9~nK zjxd@+PP`hyRwJi^nfX+E+CUcZ_@)Cn)|z>?8smTJ`*ClCbsiA=n|RK9xbrS2g-F!x zCyW|ZKBF0%@pLhC>aL#Z@|$?R*RE6hX-RR7q|8Q>ll4-9t-w=)^|YjdU%D^Ad+gy- zzod@pL{ie6=P0Z94lyHJ?h=w1-tS&vlG+_hM~*^(l#vuUk(6MRlwdtAsdu2go=z>s zd+f;(zof1Yk(4*C;SLna$qqSb*jvzV-`uiY6PX4syzvkF9jT?Z+0;aGGO;WehmHmF znIs$tU@x~}bwm|)cmLRo$GE;13z)E0+4&Gf<4K79cDv;p35+u!!|*$WYo6o^8To;P z=3#TK8FhLTb#x_8pGX}y0(-S9MAgTb8$p25b>!;%VxX57QCjn6)U_nlf)XZR&3?oh z{JT~#sCzL;0>9q)(U$O<3<)yb(?OZ`v$aHDMUJJ$l9R5hVC=dImW4#Q?IS+-;NIZN zY3kjtL6l^fwx2JdWRC;)7Lwt~_=iAdS&eBN7}Gimzf1FPOqG;r1t;;tNRH>n5Mla7 zX}epy%C`<IP1)L&R*~ZLaJ7hMgpP&tKjBk(afD#Q>Mw&uXjqxAD?pjIHr>#UGz~4e zC|9F8f>Anxy>75y8_eq)W?EcUD(iSdb`WA|{1gh}mBzzB?A@Q^z+j?OY5XYTWRqUQ zb7pdeG&V6jm3~p&X^YJG^$F$NyDv2xTWKo&j{|AJ53~ObE%^SNU!S<5fBZn-W`Ta~ z=R@|opP5+a!#vCarR1wYq3+HBgI(<>7j-zVBp4+j*m{F;m`^ZmnY%n+smk4-e+3@p z*7^AINETGD*b?OzL`7nN@CA_@0;_)Yl532U)Nmn|d$>^rzF;zsTwPjN%D)mS0#4nQ zVwq8)7XZ6e_&$%qA256iJ}w`$<!XPJ;C={;*0&;^mFrH%zwbjJ5$AMpy&<`XQw8py z3cC#4M~YhpE~4&o!Obp;TW7GBz<qx_pM4cvaKi(tv%OE+Z-E_+-_P+Y$k_Ox|BWh* zv7OqBlj=wzj)$I^oP#;NriG(M372eQ-IvV`TM=dY<$kwF(ccGKZYHUE4|D^69SqZi zi#l5bx+KPsSp2sOz6PL1uI61_w;~GH4M+&2{$;-U?Hc@W@hq5M#!GWN4wUBj7SMA* zIpJ_F=mya9K)DL+X8cmt*HJVj1^A&N_^+_9fpQU8&Yw+vlIhFlb1GK!x1q1n%#jlp zUNDxPV6T~Q)K0<PHP}{zod?h48uevUmFA+(hv4QN!*@Uh6sH#qs<zX=VS%pkZJljc zfG?G#PQxqVS4V^JUa4az8qS;jrF|$s%^tM0pEr(rJp!I;wW;tJkZoC;{(eR)E}sRl z7OAgzvzrIM9X%0Ueb{6&(PFq&9MVLljpZ;+_Bko<L*ZFqD@}osi>hq}1baZ=4NUNM z?&)#wO;|r{+c`2dgyO<hoFhL@?I~<~KW}>)gv0(aiKYF-A3PQBx$bb9uLw9Q`M2@2 zmttN3j1_S@eh+6fTK+wMDBG@16Li<9UxPGg(Q=pKk$91`k~L}rA!UNb0pxWn!g~IQ z-v}|C^s4)Uj%H9?Pomexw66xGPq+s3Bv5>j-%7*(eNg7>8BmtVw_*OI5|NWn0R^LE z1bf<q>oAz<$AmlM8-6I;0GV$Ll+$>me%urPA|ST-j|B$RQ+wAxw7tdOi5fEvc8BE& zEwa0f$jC{DMX=lOlwe(mhbsGVd6g)otBP#0?1h*tBFbV2ex)I@U~|ZZ5>>mUUafO+ zkuIELR}-H*)Mz5xJ*o~bp2+96dohK`KTOZ-_`x)q6~d=#x%?jzDXK(Hy1#-kXM)|O zIoVT0u&iWN6O`2rh{yhx&o8TSUCGLwnD1F}rJ2Jpd7ZB1^|Fx{xhNO3I)X8Gg56`V z2Mm@)*Nuh{T{qP&*1M^w3OE#z#9@2A3don*AEB^Oq9U*o{4ry@;w?po?q#WQ`(q`U zwta37;UERM$I2-o7USLS#q@AldT-D|4Ni2#&P@VkIwylt*k_wIh8#XmHW)=ISe63h z;V%VxSV6n*N{D>jn1B#h0<k}n7z2z#JORHWJJCi=Av7kNQgCk}KCFwxa6slRty^o~ zJjBS5y<D~*(wnVM&aael1-JJ41<5qA_WA|6rI!fuT~Ma=FQ61;ozYHm(pU>dO%zOO z?(h!JO}Pm7Mp<qOU6j7~^~3M*P9&iu(9)=~k6<B}f9lP**L)}ToA0#k)C)RiNs}{j zQRixe6>OR2w4ayZXrN%bMx}fZae3A13Ltj1;$ReQc@cgSI+26e@+mb9Ep^qf=(J8< zsDwMp@v<0lJm4LOn!d1}X|OfmeApwV>jF@wty0^k*NmLVNjoPP+d09s?N%PEgF4}~ zqQ^QwJXq(0mp|^<vd5PG`p*GRZT^C%Dc?ZgIhLl-Vd;w>b@nLO1bwBDsjRlfxA(%Y zXgEdfS>J_P(F_&fU1sNd?QbbVlyFl4%Jk8>Wg1<F3kP<!@^75V(E2&hr$Jfop8=&n zegMk+tOaGg;sF8DN|KXai(squU88-JYGMsgUaj<a4_nJGk@ivo<=-E?j8j{-?6*a2 zQg4Orzt$7>HxYq7y)^+C6HcG_m>h&{_Mz{lw9Pj2op`rQUnXJ4aG%1aa4BpS4u#G9 zxWeXc{32{}B5c7ZY{88Cfxbdumj||=alIW5xb(enBEvhjVDP6Do8#c@9B%ob{uuB? zzs-mppD<xs2*+LjMuMmh>hXn&-bH3AIDSdt*$mdIQ>+>>7Z~g29Q?LsY>KB`Slj6B z2}7ZzU$miA_Bd`yd%;cQJKGb6wt$zrC(Pf$mn%g6VcJ+gyMmT#yaru8rneS!IOvx_ z*?eCJ%GPHt=uFUhQ0A!tl(phoNJ0vVoY)${C>6mTG2tFJSXNEBJ29Y3P&MM{*E_Ya z+n)GoknC|%Hi)du%*qckieHbDVp6j!gYCBAQUGdKaMur7gjdK&DSdH{CGoljXeZ4a z(`SF8d$b-0-N%TOT-3P*VFhDO1*0GZV|@^;TO$22q~(cp6(Y5JcYcvRot;RV*eZ^l zE8am2ai(AX0cfq+L(SBR28O9_wJX(aXo16gBv+(<AL$T?lxlD&=y1@(w1@{95tEaT zas^w3P=Zm!f>FeR8Iu#<d8Xg)*Hy&rYzzpNj*9JGP@`G(Fx}uhlciuwwaXR5GwGLW zE@(`&44Y;tAyOE;+}$W?8e#<W#kAOZS*V4!mk}B{alZs(t^`}9Ir(&4uuStIw#48I zIWGhxc0CY#Uk4hV1MwSz-^MH@HV$V}$rnp8Je7V?W*pL?%u@JG?v-q6s&ARA#1_-x zpTt``snJZ6ExB4Pxr2=4$VJtzw}LTug59IJ{_1o_!9tFK3spQ$_{F_>RKE(cR=gAt zD6O$QAUPHoTaA<OTbrdoCyi~C513<kDE*>5U5nWWcV%*~YWl>k#q_JCv};sNo-|4e z%KaR8J*4GLHD$rLmr5^Mu-*XZ!}BVGu$hO6pv=c4E&R_J;ggfYF9o9{1Y57U{%QwK z!F(R_fG6U$o=?W1FT2x-v?!l!0B8aRN?*nSc1J5ljUtDGfcV{QSKl?Uhfsi+!g~m5 zy=|u9b^QE7nT{?2eZ{junYMFu7vZO<I?`;DlV)2mHrs+3V;AaQDJN?)0&91vvm+C_ z*bIWDCp|Fs&L2WzB1#K`3rQ}=y|I>ul>|n!S&84NU5Y%bgAyq4IHC&`xUGYHzb)=5 z5HHhI0m^hu)#85Dh?|^z>MYpJ2qoAjD(;jLd<2Pk55KO&J-$nEXSD{U+v1+2#XVVz zyIhO=6(eqPB5uJbZoz`yQmBesn{T~Lm6z!tb{*0;-J-1>1{>q~Q5;P;-O}4Bz-a3x z;`eq&Tk8$dRWxAZvg|kAO4~5PZswT=d%uV?9P#MSK@P+;kQ37&7)^s<?nkzEYsAm; zi#h*Y?Cu65qrWHxrv_EslgttzaZ56^@CV_?zSf$IlBsBziWA?vYR=t-4ULE|mn~nI z4tvo8W_i??v=LCIua9nB1{i6PlW*?@V-5wQ+yq-?u%1{h@>)Qmk05TlS&9Rr?77V1 zxr`Fk-Jr9Yu!}|)16QtC#Y>u9ZQAs41(b6(>qVaEq+MrvZOJDgY35-zDDyE#OaAjl z^5mpl7mSh+Y`x~BT^B4dtK>s&W4q{`R^0s<&!RVs-`apQF99;$*@bPYb?xKyZcbH? z8Z~o9bM353u5!T91EXi*qxho~POdW5Gy|uoEA-?T7MWF+R99EdOEolA*EToGJh>IE z{&Q99F3Q7%fSfO&%hO-E=j1TDq*LDZ&H_pH9tiYUmdPF%NOnUW$(CJ8yH0k@B%7Q) zGhD^Nnn8%gx5bfnk_k5}Uf{GG;q5~%&g=@>-bUqa$R6PWZ)xBV4R#$?%WE)kqIMVN z#PJFJQd3MMrD>7)Lbgxnr%pP?vufrAI}_vFV=pF5L1Sr;j>0~)q>U$*#F3i^VA5rU z&aSFJ&I0zJ!e|HN?h0^nccZ!cD!3%nI^z5STyR}ZvRAs-^A<v}tMM!R?%xal$fY!| zQogWiXsU#6CWj7FYS+*x;~G_N&;WH;-82Hd1<J1HcX;B+0zh9;P$gEZ@WhdQ9d9kp z;kY|OqT(<V^6adWz-0}ycr<U{K=20KKVO0$fZ!v+uJFfQiJjvXEDSutHfo_f!Z(zH zwcp?_`Z-yGIp0N;>^^Xaj@J|V?>70<+<#90&HKLY9LvYODCZ7%%ygO;Yw&tUj|77< z?<+yaf!+vO4tf*lxu9PIWoB;y{W2)*e=BqHP0(vVZwJM*&MMGvgWdu9IOv_AYeByS z`XcDPpzncRiQk#ldLs(F06(^uzN;#uBILB1h=SZtN9_q}`=zI=)kERwVO{7AVTi{< zPG-CWdqCffs@f$OYmS7A_Hv)yQ*%)s<E`U6)?g(D8)vXH3^vtZGYrO>EAP0(V66t@ zF)DYcHA^Ek7j>>N*tG^*4{qr(%-crIMV$kByV${+)3XlBpY^Y8Dm23Yot(yk#Z9hN zlhsZ8Lo#BsPBNV7m6X$N?*rUtx2tFw3zb!tv#rgaG}l#$rM(zHPK8l>#+UM3hyw2^ znpq%@4i2*$Tm#w0lO3q)6EF)P8?v3QI99uVA4cpPaAgWhfg6D_>xeQNK~u`=beZLD zwgF>j?Na<6X5QtJ8YKR9<&3(zhFPPFrDd<wAgya<YGGqi8hE*>Le4-7?>73<?DKhT z+&Du_Gm(C|V<lC%RRW`~tuVjUWab|`fly^hoft`X@H63yh<VxEFF3(<+b+@>{U&G; z?%xhN26PqZ1)z6;)`Q*&%4&3|sYc|Y&L)HXL33t;tL@!R)S;qqgeps=6WEi~E9&j2 zARIWo1x~pvX|Fa4GFfqKiA7cFz_loh7WGv88FAXd1yzN8rMoOufrVG9avkX0&*LAt zL{%!9l1WQZ6y#GAGY;f^vmv@<>rSTu;YH@DP~U>3u@q`^x<bi}vtOl{=Rvy#Rq9xD zuvuk}2c<7Q67&qv6F?h5M}fA2o(M{nx)G%!mYH1C=?5Dq*zTI^TBSZ^7UqwW!Y#}O zWOt#ZHhv3p(g6q{m#EFO<SbYVOK|`y=S`azsEe&3fb!P`E+MjXA;h?(O`kI#(+37s zp$S%ls=y;8XkB=O1g#5?kf3#$4@&E@0F<iG4<4ha0y)_UUa(F2?oOu)L*ZwJH8%f4 zh91tK3KQ~C1!Ea}8)U`47^|#oOf?-h!q$?^q4QUusY9|-pmb}}6Do8t^h{KUT-4bI zHbk&Nn%n7AXwa$QDn#e=PZ?BbV7FArYlT9;Mc}^Or@+U_LcMa1DSy>_?F*lv>irFd zQ&f*!)G0&x2v)ASolf=6nHH{kAHaIun?d!ac1!gtF#W|<0a@r)deHop=SQDh!&hpo z7P+WH&quHV&FyrmbLfn4)!7Xh`hEu0ncHpE32Yacr4DuSO#aH$2fl0;Uexw!1m~i+ zBbJC<)QLgnf^qw8!FIAv`%fl@t5a8&Xjr$^i7j20S`-YLzw-1xEGy+<FEoLld-a6> z^hY>vqB`Wn5(!32B-l=-I)_dVSDk-DZue)fL|eM0I-b{4ft`?(RE<s@@Q|?iE6*FB zr29SJG-TwW4wXhQI^u%uWa{&5O}P4;h75g}L4DftQ6JUq$Dj~q4Ke$M+5AkChPFO& zRuOt*!#xovN0#y&TRIXGeA%>w+ryfjY{r(zMV%^?nPAnL+v)tOr5Hd78&LQMtl8Ze z)N!*tdY#SKk{KfKEYuDgll*6Pdb2&$=AUMio16?u3P#6Vu$|0`JqJf2Ol|%KwYejM z+8mUR6*FqX?iq#;^xliMVd^AU{-$QnL$We8+e2jvjo(Br>O`O@f^j@su$@e0zIA%I z%4~tkd?SO(9NvAE(VtFcRu~;9e{~sh=qIKw*Bf;q7ggU}3r58eEV%kG&bd|2=KJPW zF~L?^I6cv}AXd<<7Pd@Jw8sbWdnHV*0$+>C(h3}`-S$H)U%_5BYJT+<K7=ou<g3>$ zZX6v5!o3#oBp$$%Sdu@IJK)3=v>9(!Q?SKl?Q4nPeTYeaI;)bgA>K~{;aqM>K>Gyj z8=M%#7aAl6BsOk%$M9EG7>T!SeY|qr3_Sf;^n4;b1;{Cc<&8Ms2Dgivj(Z#2xeAMb z;}U}(;y2II!>zy&h4W|pO1XkauAXp#xKgIMxpq!{Wz#&h`YrCp9-!_#EoX7h*~=&x zKN~<l#F?(3$}?-{)cDUqtMSFbJaC>CTH&0h@y9V)#(aGb6tn$mCx|5IYWzJ16w8=e z?*ruy5Kn?~2Z-lEp9SS&h97`ZCLN%hX*mj#lx`lms9K~f*st|nI!5Nqiq3cIus**+ zNh=kCc6dvs3{rryFQ7IU#OTM!gin3=2UQ&k#|2j#;;JNNnJ9Drk<t=Z4~|2PdBf5J zEVEI1umW_UWsl~mNwv{Ep%b=&>WMgAM?0WvG2|ota&@g3xAyVeC3n}6Qxv3ijZ0(j zx4N#wJe{m*VpCWpp!%0`<18NLbg=`zT%5qA?r{QlI4CD@$ANMJmlNlsL2E%z2Au~w z2DA+{4odl#fKum5zv${5xu`P?<t7+QP%w^}3&t^X!F03P<=$O!wRaaR7M2$*E99G% zagjv@uBC#FgY7f>c;U|kjoh(;M`#Jl8A?`imn~Nhy-cKB3|1h9>5SpHv>2*91Lu#S zDkO#)#&CRE42_JTMuqpspw~EVQTDh<-G0vL#jw6VRFb#Zi)Gq3Bo?i2g=i|*VHJ#C z5s?6QC5j}1UAG-)nc_GtE9)h=^kud(!CcuePjR<^Tdu-AV#58vgnPw=qv^R;g`=WL ze7#Vx65rn7Bt8yMUZcVt4X#~rr+_=Zj;T5oTyXuxAA#8GFU|r+1t+clMAu)O(z37y zTk6#}RLe5yR-`KZ;<C!0I(<;t)K!W73sbXd3ddCX9*>VHtn`+S#0!f{;!|D7TRIY- zCY`dl+e?dU&pIBTHm1-lI?50%4#O3X`~N*-TuDj!xDxX=W+p=f2s%AJEI$35!eXqh zbTd^@ST<>-?{5cxAFsanV(s)TI-$iX0(AA4*kD$cE7AE@UDk+<)W0lWt~rU~FSmJ| z029NqKMnK@P=54r11LZC_!;P#pq&5x>)$?VJpgn%{yrR(pFE8KJqPpz&~riGL->D! zf81J4ISF_He&g};U3xX8S4w6j*!ElC<I@m#xuz&jv2si($@Ht>id{a_w@JNHHMPy^ zBTiS}CWYwRNT2vv?$kHB8*IjS@f)taLHP~Wv7r2hiwj$(file3V8O(_A}2>5ymuV2 z*KwCz)VUWrwpC#dYA)(vzX|7W3d5!cij$q{BtEp+DrW4y1nyWUe1B(!=Auq%Z;83T zlh9n$*&m6PcO0a-sB;83dB@S3i#m1SB)&$?>2Wc8#pqNxcFRrETCy6cL@PAabSH+t zI{f*~z#Oc=??VcwjY~^k#KgR||3krDr7Zj?aQ75bvZsJ!nj&yI)gjVdHulACV~<y7 zYV2cd7Go+&Y}Hkd=7_)}gyRW!L(ewp2POEJEJ`JpP@Nv-0K_G(K&<6#zQ33j>vTKT zD#qn`5LI5R(?eoaPQj6BvBD|Pn~&<WE?}(UC6HU-#p-huxPL{iE&sJB6=|uz1x{M( z2f<0pzaE^l=zlQbIHe-tdP6g$<)^)saHGIUe3QXRIH;TI%zX>U63dC_7%i>38mpxO z$)%iZX%=U;EF5h{k=)h~+YPCqbK5!ZG@y)Z!>F>^5fj?#zAQl5WItkBHz&|!t7lDn zjf7=rE%RuVcR+jmlxlp9eT*UN>FqK7IQC=Ri)BOW*bhLN1{c8!vfQo!WovvT=yyP` z2Iac9Yd|aT99!dQpeykAxuDmBvi1Eg_#1O?eYb})<kr0Y|E(Lowll`kgt`RVPU=Qi zEoVE*m@VfrP_~@QLD_O%3(A)BR?~8li#p!}woSE&Ycv;i=0HC_P}qf<i#qec{YznA z(Hyo$2Pg4iD<Q>29ez!5oN75oYcA@%0#4rXGtEVvHngGgj;k~mb#4GB@A#VL(6WP* z_+HmsXD#PZp)Ducr;W<?ccbNGn%Huh;Tmrrf|nq)%Pq6I2eAJ7_qa7S;(or+-ESIj z{%`#pz2aT@q<CM*<qlxbueLsF7zF6Fy;OG~a5Af`m?`o_#{6)+3}uH`$#nx(6f=)2 z^~&N{q3e*5i#lww1f%c;3l-q$(47Be5a1QI0JE7^>xp3^yLIb{I63sBW_j}{K5Lqn z#Ww==%sy|8Ho`7E4mkM>kNZop@VLJeZNg|{6UfOdu3&6^1S`eo=CN$|Lg5#r@m?(l z(_Jd20>EX~z9AexsgGL@weFVkn|0i-ptmStWJHn!DW8W{Mbzi|TMr|5w!tm}_cw(_ zz_EGbNOp^*QeOcEX{kM!@7W)WTs={!7`H}os?kJM6Ju`V0qWL7xa0m|YwpfMla36q zC@0UJt@=)J4;rgB`sbD{34o0fZfp$-bTW#S#ZBD3m{0o~q|5q=yKp%un}k--Ge8%C zP653Fv<0*cl<F`QvX;&jIdqT==0F_;)7=OR9~UGx;64YuT=`#uzwD3T`O#Wm{9tgL z2l$U%;%cUUGCQ`eX;uTicFk_DZQn<;?sr)fvwQK~{EQUshl32M>j8*?>3I;8$$1Er zd5@U9lZ!el47O5pW<i6>dt1jKFXQ(i$VHaop^Q|<@qTAw=%^WX9F?(hak-mo=Qh^4 zpSE@3Qjcw@)B7nQ_K=H8$DyAB+)H;gLpQIXujv=mc-ROE>QqqXA)##sM-xR!$jPDH zf~`j=!F&cE6C9}3VH0eo!-nnt4yQ@b{WtU)i}|P5b1P1qxN*SZ>k)m)>i;k)%lE~< zAZ(!A^Hp@O7?JfIjvWMBPIUXph_A@UV~XtglGXoJ&#P$G&_c@Rnr+*9we)^*ct^tB ze57Oz1D5Hy!(OW<*p5J;K2V#8^3sGm)nGHh9dae_)`GiTaSh<MDdRN{+yaGN4el$7 zqskqvxO>6LvyX%OlX~J+gZ&cRohsZWaElc8Hn{s$xCprS@OvM>1(tSh1%^OsIxk|k zw9?C~L`CGbsOsQQd|4?~R^Rh<cZy$a^+G9W>Kf)^n?6;O<9Jj0<yyva-0FqVZ@reu zozVLL>IKUv6MCFvnX99C4pobPKc@d4IYR#agZ}$O{Oy{9xW-7BXPQV3pCE|3{)OsK zIcx)E(*pHsZ3acLt7$#-s+4({IM~&Ca&pSLV6P#xV4F18UpYa7@tqRxeG`uB76jv> z7YVl=YYdan12u-4q@&4PV;HapYRu_Mn^|LSP+TrGMxK2f&w4dRFxHs<SFtW`0@qoM z;TP#&%}`^;+hZo$Hw~>Z`d%kB#u)n0FUySEm`hz6g7(a+O9v{b8+Az>jyPoIUQ{dk zm;T!HE@}&F(_cYZn-E6TCa8p}P5%I8WBVHzOld>NMU@p23{R@NQPxBq?jwV7&j1O> z5|U>N4OV2Z&uSCq_8>KBiP-*ZzuI)Ss-2tgj?QY+7f~(`WvEU2+3imc)FyApGRu$b z@~UZP$I@!rWCeX{Y8tmHlA1;?>hwif2*$c3*yjw!5oN)K7>uPS7<@|oY^lLMt7$u~ zrajqZP3w<xxh_LZo3|ZmT1DD7g?Uw_8`2%XYZTO-s`PhQr8s`>)txr$In!p5i{b-e z?CPelEt-ou{ANlpb{izzt|$}1SUQ5m493<=u+M7Jj;l%iy7U0~QO(U6YEtQT@Bmqp zy7*iYTh(XZr@Bscpv<(>bg1N#?a`;o*9*MC)F^UM)jt!AeI>y-@FZA7bMonvU@RpG zN8eAdqYU<0joNWF>Mz}Hn~DxXq01#B4L#rmvPOk}I+{~Onumc}t3y?%pifKNbRb$v z@$$$?+aws<Cc)S?3C6ZbFt$yCv27BJZIfVZn*{r;ChfSIw6)8c#O+DeWN4d?=((EI z6VoK#+*dA**O(L1>fEsk>Q0^O*-?z4rq+>*Is;KIg6*rhsB?(H1{;jK97;Hrq&&;z z*@AI-wqT#tx*b>R{@i7)qpfVuQ0orwxmst&1lfLhU-{+LuPRAzyN>@<wOs>DEg~0n zevj5kF!rzn!?>Zw*oq0pb#M}nB_r5@24gEG*k`q9$JL^nx~xTgP%cX|)S|NeQNVKb zs2Av-8JSld+EA3%7Cob&PfuI)Z=^>&Kyp#%Eyz%?KWZ+j<^l!#r@{Emh+r%kd6u<E zFxDc$(iVU$dUpjP;mj`PJ-tsSmlduejQP`qT1Si(wf7Kc+c<#Bfw3q{LTm=;Bu)g< zjC1*PAO?8nVcg&+jNsSwW}pw=Q(p}c)3LXg#MBfNZ*kr@apKzfyKGs=5R2vg?Qt&z zV#Ru4|7$t9oH!C6Tk7~uD2dHKqLZiHFuhCgeI?Sg1<Cctr80#@%B5*=mCA$qW>l?j z)}JTgfg0YaVRR$$sZrb0g^y4g^RO<)7jqf%LY(`!BEhm`8lQJQhVPMl!AzFbn&riX zt$YOO86OD6kDRc;e3{(#e_!ef42yjD{b-_nrG9JR9l?!(7p-U6SFSq)|DLX<y*C<; zU2?&W1Sj8`jsv%!3Re$KR`j%idlz#>5$8s5^8M-e!O0Up1t(vp{u|s`>e=3yr=N5Z zpXdiJ_}LOe*$XiCMX2MEF4B7~v(n9tK)CX!K_9?GQKVm7&^$A2K{KDjVrG8=;-&Z) zh%@K<;DUImd@mGO%v_3(fCT1(<>{5D7st;j<Y8^@CqeuKXz1}f;HAaBm-0KLVSYfR z;so_2(ke*B_nj{HQ>H24{2-?FCne`M*It~&ao7U~Qq46yxvsh{S+CHThazxOvRTCn z-^FR{tD-2!DU7~PnHafyvCKKu&lNtmY4A#{a-u$51)2c88uUESrJ(ho*MQyyx(xJp zpx1(OPqphn**#tXdJyPJ(CMIDWPJ|k?f5$hdI#uLpm&1a0{Sh`Ux3~Px*7Ct(Eovc z8<cb8cY|MKEykV+ya2y*@bg{rDU@Gl^4PsbD{XM$b*6pa`CZdapkI3Rv|qoldOA$M z0Eg(81h(~y3$TOw755bg%gJ6!awE!hZ{Rn9a&O+7L1`hWCsRPbq04<`NV&tTsd7IS z)OT&aa_{PUwjFD`vN0puy_h*!MC;;SEEAS-1eA*wc-^AQ`0Jo(l$={ZzXW<4D8ozx zC~g?JsB;IfgN72jTXRvT56b^Qh0(f@i#nWw{k+0B1xqgKTnz32g<Yn(sM8K^e}!GA zIShxx*2#PK(HwS<2Y2exeD5DL7j=^GrsTb~nu|K~z{z_r)?Czi1Dw3~P0dA}E#Tz6 zf74vl;RkK<j+ExG+X1-a)q8)fxu|n~A6Eu5G#7Q&f|GarNOMu=RdDi-pKC7aRKU_p zeA6`-{t-a?5?cSn(s8lG@~PwSJ-{mbxfwrV_^t~$_wIlvHBmm@0*tS_@LM{LKA2wM zr$4DvYg|>o(H!ZZ9WO85PQNO^42yPRO2CQRGYuTG7ICfsC(cegIQd5J25>Bxh?C}J zceZ#E4ql<RWRl(;{;c3>4&J)SpwHIEjX;LuP0_>orc=S4h5mNLIRo7BlgTlaLAUD1 zK&D!~wJKmm__2vP!J1E=CmTRu@rAvJ9uT@-Xo5;Hq|wwMXII7%Mf&Am7I^mHw4PT= z8vpUNO*qh!XVX+63JsRc0LJx$g}|PMF@>X1QiqjS+E1{nI3Jxpka_p2_;Y<^OZ5$) zbQd;)o(}pvD69BBke^g>a&l0EV1Lkeu|Y9hdu+gAJ{#$D5o|ZgF@{2ray;9V<E>M} z%h7?cu*a^dkXpAK$Ay=p8HWm8n`Rer=Fs_+e*KWN(mzQ-mBG^2V4(CrwoAV!%Kl3b zn3O#^*#liLegiMqjwt*0P%WhF&opIUhAJIahesl1>oU~gf-cHF=ap2Q>P5~m<)bry z!Nj~ZSNF7nES=F{Kxg{Mz^G?2dO~OZg|ZTzAt#%c3&xRtjqLz?G2YmVbB)gY5+*-P zXZ{1*V1G00w-@DI=nTiLyR*-D&h5mT>FvaW3bIOFgMm^%@wn~MPE0knf}E^c5R5}4 zg6#-f(SWrTVk-_a<$m9c@N(yR^si;G6_c!C6y4q%%g=J}WCcs7Rw2VP`PBb|(-*z` z6%v3W5NtCv7|?`gY)$Bi`hO|jF7=;WRBah980Xgo+Yx&3C$yZR2UCq695pFi54x)V zU&^BX2iIL>EdF57d`kVm!_ut&mP12IU4wyAUu1g<GE4053exuF>L>mK@|JQZC-q-2 z)_=ivM7b|CcK>`+?iWuFFL!?McU6Y^e|{I`?zQmwZq1#u<)<L6_I{m$top9OK*?XS zJ?i^nWB18PxeLZ}7i>qAdmM&P>U)(b_eW~O%Y7nJ_IieLzbw4mdt!BnZ5VnYPW`QQ zZe2}ln?KYL=ly*`Oo#>piuAFqNO-s>+Kw|(hGIj=Mb&;Sg4LkJ1ltk1^a1+QqDzyE zF8ypwxGwz*d0&)4m;Tg+58>I6yf&N3t<Zmiu`0`Y?1^<8Y2Jbc1BLz*j1Fvv@dd~9 z7s$yu5rT2cf5CP{nGb;#l``Mel=&AYgqJyW{n89&zFQY%P9M-)=VF_LfP3i$%g0YR z{E)Qr-WCffZw&^@yVv&d6NW?1Qpd^3mgs`f8y9Rxl=ls$ya$@{?o}3E-hV}T+s7?d z0YihQ#s&Azro409iaKY{V2pAA1IynF!hAvv2Fg0VeaiZFQ`Y2UFLS~Ap{xbF+Kd`{ z`wMVC&mUR!Yj?;xs()`C2u3bhHNzbe-Ms~xlPNv1+|`a=b;;)D&cmb~e_`sSZL&{3 zsyI+ND{E(0);FXo>uc+>+}PoFm{ierne%#skhe`@ZUbA^(C$#@+>0{dJ_fshx+3{X zU#FFFx&)Ntw-1;$m0Z-}mji<F%K^cHL$}3T<-(|a8-&N7!&(rm%_!xbCD_JJcH=H9 zjBiFbwdsl4{Wj*?(4@F>-DupC<qzn1IkKS%$DZHA?^*mBtum$)f}Rb|AIB6Ag&<c? z_(-Tu;~JV(aTL4p2B<p>9|vkp<0k+yS!n&-X;yDj5`Sz=Kc~<zXJj_uxEE7peE2?4 z=Ieevb;d;=Vh72|&W?h;j!=T7*}+Bca)}blhiNk9v#hX~@P@^On*ehm5?DsVi_2hm zTS}@OGel~`iN*3vdt7bTj>R%TKozrWX*1vnXGzC^C9IU3bb)&KBV4*zoynb8zOwKx z`)%A-;>BJ0dHfzs377a_orp>iQ-h7)2RzYFrE9<w*ux^VA9YLbqoWi0&ev2xSJPBl zQeO^F$5sYKI__4F_!7x<yy~Tc8DLnozu`)iq+mLtRP<sB3S!V4B$Sr6*CA@cQVS$) z2L#2#Y%DI^hPQ3m*9*#1$TdvC^R_M)_Z?d3H>#|J37vBs%<Q*S2rIL{3TBpJJIyRM zFY+?$zFs8|FqePX*gMmpU@S|ebkGRwh3QVit?=XV#PVf@S0jC@h*w}ElCtHC6~Gl+ z*z9^);XUqMii3>;#i1zvrUQtHNUqT$OTlt<U&V%CRPeTqy%3OGAU13o>VLDBK1R<t z67AbUceG~ps$55F^%$(B%wNhb(zgS9QejVnyIpZFfE#@!!@Uh|rt%{`04MuZ@|%5m z_Hc0WY$-T-b_zIomW#yX*&DzuQ!(EMPM&=hoTTMv=I#gPE~mgH=Aqyu<~TTs`CM=k zGY(4DF<%2t()SR!_3CZU8}3iwW~qGaM<b><oWt#Wtip{2_hZFjUu4bA0(Z$=%Af{Z za6a`Sr1L4u#xFpqQHZ($wB71wtBrv^1?~8_i<-FWoN6to5$PA#yKze^R)LSa#+$3V zaL4&4T4S^przaP3GFG98L+?zKs8zdCb1s*a<J-rmu*x4}$dO*ivIZ5BGrVkO0y`VI z+s5d}Wwh6~JdAb1y(n|~34;K<sKMuUmCg4zfSv<vBj|;o&x2k9`U2?nps?R+`PNII zT!a1-P*%`aKo^4k6qJh_UjtnZ`ZLhmL4OW<7w9iR-vfOEv@f&^rm1x{=x;z9LEi+$ z!YgMJ=wi^fKyL;8J?M8q{{Z?E&_9A=cWviwQ2GylVOp)_WQPGOzz@>*U$U&|Q>I+* zy0mJX%Z|OyxdB*_KhYi!>F9FpEZ=ahRlYIt=f6Jv`OdT)&-wp2-@~#iZ~E^K!rqFX zNG|GJjk+Y*GR*-){kRiWsK46Jn_Lu?6-zu}TKYSSH5YXj!1?~C!Y<KV`0}FV6ZK|f zvOp+geNbZga@sD{6ziS2!$aL;g`x?PCgfzpRfCfTCfE^)hi|0D_3d!YVq27(79&4B z0WT${QllLww907YT`<vJz(4ekYd%=HT`}Hsw_n>Rc~VX?yp*Egb8vpW!-{YlJAk{< zx_g+@v(ei+zH=@-C5Q)0kuZ9w8}tfr(g4o@_mFB%X?UgKzZ4ulWRGA%8XH%t2KW|m zvhnr3;4W0yYJ<H1PPRcunX0bU@lcG_R<rvC?$JEHhF|ID@sC`es_yf+CY;r+YDU~m zUx2z@v~r-n9`onWJWdCso5wR78d9p++}G(n(0%?<Fw8zKHk>igKx?`S_AXRLmR;;B z{M?IjW7CQM%{ex^>n`0Mpcqhf_5`KNSOA&?9SAxfbZ^iHLH7myKhV#CQvUmavTC#J zrD~IlI$uD!33iy~Wch?(<p$GxQg*snuB=dX$&~(=%T9mv@yl5Y;Hk?^S6yvfLT*6v zSb;(o)fM8#1f_$pB+maJ)reC9Zlc1@26vj`8o-S?k#|$zf{x*@fY<}5mjUBC;sy9U zVhyPE)NaD#F-}z3*wnBf+XZ>nUc$`#V<#wot)x!k@gIlO4t+CPL@jkM=8Xdb=$1L9 z8oV1DOftXU0WAW(2b2pI?*$zPdLQWdp!b8;f<6FBtvL*d5Un8>b$($mN>#9}27BLN zU1^Ov?#MM}Tsvx1McKF>*P|nlGO=oyO>(N0&QOm;qqu_n424|?u3T}8z@1q~jiPlA zY7{^0`j%z$Rv;85d<}lf!@3%k!QH91-#IHe>z(gN8x9Ck?>49F9UB#1M(<=A&aZit z0qvJx^LV}%<q`)S1zG}1jXMSOEKqdwT3LHbLB9ez4wRaAld)IiqS(&b#VCEjxG+${ z@v}O?y3#z?ByAr(qwKP^S6gAm!|c`15r@5{DC;z(NPBg%tzCLEkDz`5tn?0B8jWFO zd+G-eMv~RS;ha?_KA3h%jsLqUlZ~lT6SsbiVZONd!>=)4f$d>lF9oHox(t-I>T*zO zPAe#F)gn;ZD!A@SV|F{-wN>P><{kG0qeKOJ*I-)>w)1Gr=&9iv!^tdr6F|SloR*Kq zm>GzkS)iPso=rt>Gj~0sU$woo><dsyX%WfEl%ilP1;IFsBN&&V3AXcS*<q)KYZ-?V z-?mykzn1OQEiLorxw70;(l%#CUvrKrZ!7p3#y~z@+PM{WS+tW})ZzG`U@SesrW@=$ zgY7)pnVc4`o!or$o($SKty|hz(alBI`B}doeF|IIamN0Ui#oeN?t-xd1fw@57%ib- zJCBAPJtJJh=xy2)41W7p-)#-++2!5&>0BRp+n+9*R*%k`*fetTVUS=f5y7~;K!-Ef z&ZBX^oEWZgUD>qZ-PX9^>hMmRRGPnF(7fBs-WbElUBA-%nyh&})pK|oUZ!XmIk9Pi zu>=I8O%seZO|YFu!;Z$7WmsR6lWX^7Xf<bbOT#=*EZ-&T`Pr~HK6Sl@1*X*`CyUbr zV+jaG4HJwSCfLrSVb9luYuMSy%YQRy*y4ONtS1&}*~YFX;xyYa<~*Qc9Yn@)q^t&1 zw(E$>7&8V(F6vB0SqjEd6|B)<DTD1iTDuaXnqhX4UhQ2OwDui)&LEpHxR4%d?#uA= zvxxu1)X}G{)%_QgTv}anQRgG*ykL~RVD#_=qjeN)=h3cL65-m#oUY2CT?gl56ODG! zS@Tx%+h(qlV0rs<dmi%X)2zY9pCc#7-3Ug>3&sz|1fz}#w)1G#L#Kyp)_;({+cIcY zQTH_~$4?9LvsXh7{q$+oSB+MYi#q>;tOcXg1>@3D!Khz?Wwp*EY)uGG)~n#Ij@~?J z8JCE7YeG6-NpeW=slZB-(5KW9^Xl+WZ`}%3A$#vaQV#PXbtm+F>rZ6q33}*yami3{ za&G!Ka5DLd`3q-`nqI90CnvJcG2uA<C*j&nIIc;)7S2b+`GyI{^%W9stqJ$C!F~@e zxJ2bWAa`4p;xE9^6ICaTTx(YfH8&faPTRiIwKd5Z)oK|DSLVf$tn|yj9>q6d>#oeS z7MSo9Q{@_>1u_@&%<0*_prbW<0j66ihbqvsL1%(q2U-pKBT#H?)%qvU*`S=3z1g^g z<Yf9oFiw96_L;&%P@km2bLR8P3<^I6^A`H@)?`)o<Vp1G|4^Z2t!dnSTY&mC`Y9|U z)c$D(jpn>wR|>rnib{pP36u(bGbk1M>!4KVTS2MNw}DcjZ!-!_E~-`;3dXr&!Ga16 zi~Ql5ez<8qiNQw;G>x*2EY~!RlrxrT4EKd^8^M3FTJB*`dv1RuFs67IeisbFKXOUQ z=p#Xc#z=#{>3!~SYI}PA^FmKerm!}g)+Oe~AE0ho6ay{a%any#Uqsx!m|pwCqen0Y z&pbQ|%6vSg=j02Gk54Y@tj9gUHfoNGLd{os*vl(7>GI4SPr5%toZqzc-Y?ycKT$)U zOBp=s)d#&Co4Rk80*!fZ$`L<a*n3cw!k0l=3Kwb}r!A767P+WH%@%B{=DJr3&f)%2 zxDRnQXDEfE^XWTdDACq$KyI%k7tu~098_=BOxlv=$g*FuS8DyfO6xZkK`ZOQ4gW;4 z<mA9+!Kmqibw|HHSLB!MCd7Gf2FV_uk7P}Uum{(9<We5haHh5Cr>ckPdA6kygS4bH z$VJuR%z|x$<OJ(ZX}kl~@vIH|jc;WrjlFGaljj)GC$=6Ums0$_w-lngrN|BVq!h_T z9nS4(Omp3{R-*%T>J4ayy_VD8X2iQyr#KeVoz2=*?>U!pc&#U`+jvu-$jKpcf^ns< zVBM)tNjOMeePXNhy$tnfTDMDLJIt@=Qa1ab@$Df?$BpNtj*yGujCXwGsIZ9Ux>rYj z1EcJfOjmVeaJNe)IJs=M^rneobqWT}#{<|4o~o}Lq@$d#2f(f0q$J2m9TALmM6mAE zk%oY^`ZeOThcf)uYC^Y4qKD>dbEy;W^jz!D&Df+Q$Vo{E#*z@MJ0&p!)z_;NN28wo zD}%L~lTS(X#2lnud3qvFGq0IT(T?)woHF!bvi0q_<(iZ(xv0bSjDjUJ*FB5(7j&Y$ z(&dWr+cT8zpYthQW5&FCmgoFmF2xYByOQ1Uus?v5q!h?WPf{@UBn9hE9Xl}4?!1aP zZ_Q8&dv&W6*qG!!PnJsw9CSzzwl_medqYmfs|2I}Bv^M!U}>NPeu6mdO>6z_&4Jx7 zfqdqZa*_VA-c*v9q3-BEH}VqwCl_`80Qm^ES#!1(D&S~g1UG%7g&5;1#Y|4y`T}no zD)vy<TDp#!t40RVoH_rqdy{HLViu1599=9Xzp~;J+>Ht)!nCL%#sVZa{c?vGW4QH7 z&?ea>!hG9fTmR5wTknHX9{<#1Teq8bft+mVCm84A1T*uxofbwc(Kga)i6%BgVAimG z&H$DWipf!X(?oCp1b%_?;<gpztnw-Yb})Y9@q2JD{3Dl)<W5K>n`U7D1@%?d&|%mk zO3AD~m8Hz?#*mcHYqe#@cXtd3j#@qH$d^=)fig|s1w9J14>BoQOfKrIFxX1XQH#q8 z`<+EG6eMu`nWw0iBFK0v<4BsCRl@t7hqB6eV|{Xg<Q$KLT&}iImu?B>9EhEHzTeLL z6Ub~|;7@`wU8{BG`<l#?i#p7*U^i<n>I6olLzPA=3hQy(rd~@rT6Tkmv~7$mjT8#D zi@|m=SU+q#CE@xREMl+%Vz!#Sjx^a523G)sQFEw*11z)PKgVij%k2D)vVvkZr)H$& z^Z2f7^Ti{KW^$hy*3J}u*pp@=rhwEp@c7fkrl^?RL81k`qc7&`>OCE2chEYG&FST| zGOsnD=-)cEpm?40WzdsAF9c11)`6Y@Iv4ajQ0#N0K96qzZN%SLrq;R;6uShe9cP+A zSruL~gH7bbp%HAWz6)3L>a-I_FyE8DZ5`);;+yf9I(#wFj4dM!0HuiY&qU&cM64P6 zcH!@`_V^%fE|&1ZZJ9aX34A0EofwyByQDBt(0q~#nqbfqN(&RsyYp{siN`%D_Vn)Y z?=swp@d!irty}g{kvJ{8^8iK{6>MG<8<iEoL^@mgkz=y?ZZ=EUO^+s6jvB-YIp;jo zl!!A2+%&~~51gE|^8&cD6cz#Z9)3T?&ps~jePDdUU-3I@5dM*?C%PuIqfHI-l@Tp= zBMwm4l*EB{z1bc$xEvuF7c{t{sdldSnSCQb_hOzn4b~sDT7wT`vjyh!5zrGr9|au? z`WPrbGXE~<T+qisF9Ur7^!uPsg02Hy4f=nem|kq9teyg;mQII+#bA>Yr%$kV^<CTT zfU<qKrT{m6ZbvzFKrip0z6Ad)qK*LdpZ-~tIC5j6eXX1&+Mg$nQY_AvFNB1RC3>r{ zh#9qm|HwPIVG1-i#_HhirlMX1MZ;bttkip|`J<8G1}e@~r8Pk8Ba&dwl~432=qSth z&FlJzB<f0KszIqs98siSuDX=tR;xFf>P|~z?1*|XwxI<rH+KVx0dT<?jWcG|rWT6A zq<^!(wA<e-yx2$P>|O#LhWjsr-URvz=$)WAxvTX7(4T@b&#!?}CH94+L?y^YotF*v zn&x(Dl{gI5D58#xJ4$h`O8gC(vrk*{tHk(ll`viJo|)v*Mkjkk`Wku*+Ih=ek?8GE z8{MlX)#w;VSJa4{e3&2@KTHrT*qz*|EXxF=M&$uDdIz#xVmYyXH9DgUHR9Mocjk3+ zR-j$Gqd?o&5=}EIL@ui4A_U`HgkU?d3N@jH5=*pDajqr$FI31L8u6>pm$Oizo}G}& zS*a4}F@Gwp(q)jeSS50D&WB)JRx8*}tWtkQWfqnCo8nxRdZ!DkbW9d16`UTkCj(47 zNCOrOikY;W6=*CRpS%@l`&y;<Az4u&a$=PPqg4`YCsv_LOv840pkdnr6|zqm@>`_~ zx=<l+Y9ilHHgi^@{o%jntwh_?H(FvEHgcjuf>DJ8+lf`^R9JtpLK79|TA|U%-0K;9 zqszlps3$t}wz=wwIQ14+xpn+%y}8Sr{q^msl2cGpV%5k+opO|wU=^C%se66@Ep%1# zBgMHY`A1ka``jbHRXg+`1dvOqj2;Lut(|Apa-VR`*`6JTv9rAG+4gM|dzsNra#80) z$V@OUAQEgRwrEEfzv@c?zv?Yy)7}BpuRaHaTQs9Sbe8g&Db87S$`AR}s?G@GPmzl{ z+aOcHs6>M8#Hw?XQJq@@s`DFU&OVLFuR4X<s7{Vk+&QbwY|M~+N-fSRqc-GZNw#2A zAi+v8)fh`Vex~i+P9|A6ld>URgU20?BgZkQJ$-4Sk<%LG&Va=yz>*0bZ*1Gtw{2VB z0gDH_SfZ^X#VHpIg?oE%tBDgJdL|~e*^L?)Ql`hXIe(H^T2kZ1jj6kqBL3+QSJu8! z&BHJ{HNqbEHnWYlGf9{k9I&L-q@GZLoJSLkiR0%*zJ13#dlhi|RY<CSE0Q><jJZ%} zo7mwfJ-mOT%o!~$fe<<QvjB-JPz~_);NC?iFM^fsI6XpPWf10liaQJ39g0hVle-aw z<1`TOr7SP<dSGy@oOaMXt%}nl6PFX}Yh_Zo7;j0x+@bwAZuurHdA3FZ&|?LxMwR8M zCN*ctAy;=`Uyb&=o?r?$5KbmC{TqK%&1T~!E>0uGKpXo?ob}21m=);ja0ln#G61gY zv3Q1mpN7Z$e{-7+Uf1gTn5$G5!>c7M^e|TlCN~g(6Q`W!UaavGF~Lb$!<$$8?w$lX z9)HI{nZ{E<7lDoi<wv%qpbvqL2Ym(<tLj?mc1-|fRmCx;t@Ji0fmVS|23-Jp1}MuD zN6e^si5HBEK`yFB0|jHJNigm>E*KB15p1}@xTCyaNSh9Ks=;`ajXX;YlW>^))flFE zHC7gCR2IFviFw1^*ho+_Hzr3k@l31Lfc2SHkAUUHqk!lhiCH*tu{zGFWdu+6A<Wxb zRj>*DFu7aMgvnhA<35;ZpHRR%%?FgMJ`DPhSiY}{R}QLj%|l3R?eT)dk!urcxAm5} zw6>?!aYar`pLae&J#*h|62>9>0d327v2Wqjq7I!Arc~RvWdh;_$P*uJ-Xj>J&X@%6 z?H-x*axf5$RATwcLh57i4y+PPlV@g&LnRi><48;~#u1Z>s=x>x1`JQD!=HA4MOj!k zHTXbX#II7x=HTNFBnflt>JbqtCfW<ULMiXp$ukT>Ine5l^sIhyVtHgOUh2l+#wLYd zj+lKZSh2;H!ZL|dPma28&>GUVpdXs7R+V9a+}K5>thBmGa9;_{LT0cuz}1q)g&P?c z%HyjlPG8FS3~#Elxm=Y!1CQ$x(z$TeQO)9Vzk%fu<XneeT7m@&>W<D;@TO15l>X90 zzjvl7WelkgzH-;<H=ykpC44!HOD()ohi$kOgJtNwHtPaOEcf<SaI?Kq*W5D^CF<sp zKTfRucW)m3rHcPZDAkXZmaX*!9#+n7wt^}1Ny`YtE!9w+F?zRl6B6O3k?Dfu*Oo0; zQh1r6<ncs-QucTLqt%A>M2l;ImtZ6c_5NxdMrBOLuP~X|*KaF>6nL1LgvP5R5$ZMW zAMkzh%Z~TDz$>iWc-ad|li5eE(z8z`zd23Gk>!_lmKDX{uj6m+lC3P<rk^0FvWHwh z0$$E`BbQjdOvS72u3+vdbu9{gd|oF9x^2SamFu|BgX`)d_!b$9Xs#r8H@FpwyC2*( z<xz3z#%V>oyDMHWS#jLuNM<Te26w)~PB(XFf#ZBy#JLpQc*R`<?j*%+1oy5Q$$Jmn zc?uhh>i2~s`9!nf+Q7-%UI8~%h1;XI8{bjjPFC0`aB@CE1dWZvG5}mm#dj_^dB=Ca zU7((L6Wk%{?zleg6Z62y-3P!Os_y;<oP_&3xYO0Mg=iRGQWI>afcuH!%E4_=ToT-% zvzU)BgA1O<z_;4F9bAl1T)0GfBHSi@g$@p}ci+vq+zIu~$tIk^s+N^(a^Du9Jj5;0 ztIt3UR#wiMk(yOgIHuBlHa@0MhOOe|<4UHviHhq%h<JS3m_oG+0N0Rq5+siN#pCkt zgmEP$V@mK)rT*-+R<A#0L@tH{<Kk2C=akyHjdjV&)WXJOa~5&OhxsF!)llD@s_fb5 zD^D*Ocgh)|a)_T(IP5b?W?fL3C0UF<gR7GTg=Le5o!|o;0wZnUICU1`R_O7YgV_x* zhd|RzZb1D;*XXR8WRooXWV-`vM^Khbv9rYn>k;*E<uq(dK`4eWI^5*hvmJl0iU*Ey z-!5ESZv|`Nh8*jzx8fNTap1aVHfdHvV{NiporPEo_(6FW&eKH=Q<04HB2j5=z&qJJ z^S}3tNabqSKwM1WbkJWPs&Z0+h3<A}HpYK~CBntf3qXCLdDi09fOJYG*HtI$t5qEA z0N%@|a6Jd>z`sYzTYX2Zu*b*VmV42zaU~g7g0c6*>tGzhd>ZJXpzP71tI_%}=nzmY z$~+wO_n=3BQl3YG9*bv>0!44o`4TAOItG-7gBF862|5(?2cXA-{uA^#(2qe!f*ygg zIRSJy=!u{UK>zx;k6JGV9f!Za0XiNO`-3<M(4T>x23m|9P6Wm2FwP{<>7bKATR>s; zTdxE?6SN(43Mk8AD(FVg>7cto(&vL#f%1JbL96lim7r)VTJHy)1NuAAT2PkEg`gjR z&IRp{cBcV!D(FR^7lSr~J_6bT`WEPX(DNYY1)v<!ScBh<)*+BXfED0}uiyQb9ENDm zLbx_P_QhCbWn-%8xDobzmp1mJMx_Up>3O%Y$oD|U4<P@WtUORhn1}E9bKp2TEDzEU zW;&I!07txh)^=vwG;e2%KPlbfPYSd60Mji#K-=O2qQ&={c0L+r+JT3ecEahV9jMQ= zV?#9BP#SUfqTbVn_5&@`;AqtKy}_RZO1JT3P_`9gKu-pZgEoVffO3^CeAU)fpkqO4 zBOVN?Utb2!`ZW_j-?fA5SEkcXKdWE4xW1X|*D#;Il$S@fo$8n0g+bL27shN8NF8@C z>MQF7no8wg5WfKW&3aJ<dIsnW&~rg&YQ6u|wvCz8-goFP{it){S<2c9a#05#kU7tc zAoi5zq8xvBo>o{yb5Z9s_$1#~7!N8Z7j@1B_msjaH5Ya2z^zeOqvr6r5jc78R?S77 zY6xDi8qGzWuNv$ogZ<cGKQY)F24k;S^6|dGwi#?C{2J~e+26TYb5UpduJGwFWzgR_ zPjgY{@8BfA|I%F48NHjE-?-+Y&O~sM-!n89buIuW`JJh`s525Gly{8QT+~?&E}`E0 zwC1ADnf+baPt#n~xovm%y{j}AbshvK?|oErQRi83^4=e64(nw0aNkj(xv299xb|b1 z-^Vqlzj{>D*i+BKW^_e~_CF`umwN+1ZR?9F&tIp$jSPnRf9!n=oK;oX{ssobgUNVF zF)xiaDyG?hH$>Efq8@dy2~qLZFu^D&FgOf~Wrl)&=zvj~xB5yy&B(N@)U?coK*h4M zva+(GvO>XISy7?>pJzR5uf6v=``izR{oTLcnf1=I*Is+=_kGv<uKQZ>k!-(9-<j(@ zrX|-q9-FB)U=*+~*Lw>7UGfstXAOP<A_bQo6pw_vrf1IdqmD=9Q}8UixbZA{A)`lg zOFs2+q!5Q%dyhf>_y+ah9`KU`9y705np=YED<UhmkEdie*LwwXg}&p)L>A1anm*Cq zPbp(*nW^YaOP1V#H<^st4DF2n)va>|D0M)w!6IrID0OY!4@zB8%Rwz`p-FlS6ouOm z?13hTp4b<Z?s5=`>d+9J0ZN@n$w>)K9QzrJMBLa9d#W*XJSynfmmU8t$|+VXjp9g- z14!itp#S?Y+_`Ab$iB4=Yy02b51-W3zG4It+_{<WJ<3riYi1yngK7SDcvFGB3%?KG zcZb(K6(0z#Zuuq}3DdFevb^0MV=Ln5BIpQW<DjvPJ94-aUd%t&zQK05on*g_wQBsP z?;t!CVIM-ucR50?$owuse(wr|`yo6X{F1pPl`)4!3wz4m^{28yRnwQ!L#WVWh-~<r zoj5*$|2cATXm0RDTVkOuR3TWqg<Y{b^ge%y?Pqa&qBl}~HZXn+x*UVOJOSBe9p;qz z%{M@<nHEZbHNX5T9Eonit=J+nN?<skqw$m-iB8|Mfcc}3hSLbZJ#+nHpak#~LgxFI z2+8Oj_6`|MDihq}FcvUj$wIP`82uz(cXbg)x1=-LHHz!Db}LpuN{c79bSo6k5oq?u z#KVRKjFY=65l#!ltx`ZrD?5d)W2y$*B*OV2UbnD_a7L97PJWMtUpkx|^P^T#YGMnb zLa}^#&xBYsm9kpFoaO{WN;`cBTLVrB+a!Wnjn`dQL@@6wLojt;XH-!MiY+q=MfC`b zYn@8aNB0R!5Gl<t6Sf|l6SheNRjLH-R)(OGOLB^qpk&l4N>FU^PAHajdnCkCTM7C* ztfWjEDU~2$EJ4CHiC~_<>-+)2xPu>8LNL+n@fy~|R8(SOOJYLNtgN5Uxzd?7QWA_X z3P#u_5zOwWnf;=OX=_gxOg&bG_(iK8Y1)-06-hd_&?J=f?%R5WFmJn?N-7u=-yN1h zQfPsL=fb$oN7yD2_V=J$^NR@kKf54;uGC@rs1#PUhNB{>#FlV`QW?6dCzV=ief?2W zk!d8A30C8~g*{`bP1N>z1h2cKh)^==B`{Hyt8!&TMFNQ}j0gqtuckT*<RIs(NM(Yj z!53kxEwzaR@?E^n-|s2ztF|vkAeFB-s7M&G<p!ZJwy9^u;T9(hQW-2p#58k*Q7poe z+mr1SZBO=jM491fG#bjmApC~n_m5%tqsy2X?C{gs*^Y@YV`Bf#iOq*GeK1XCl1nsj zYpYvxW=)@A`dPvxlObFAoHWix=DF5>m}7oo-74|+3G?aidv_vE8eraA5i<Yd5wcbP zA!kBJWr7DC)@Lc(o9Xs&i!tdAMDh1%iZiJnyXbVqxKfNs&La3`x^hmX9A)I&+DaJJ z>l`2{9nm0cCB9Ht(gCLT5u!_J6zfNUnT+WA1x^1S8Xm#Nka|OKFsS<s)d1>c{CJq* zeV#&QfwOyQG=3Z2fj_z;UWdx~2JYy1V&}zWb|JoofrQvRpi%gkGGv%VG+)`jioQYe zh5KcZH{36a%Ki-}LsFT5M=uEDgh^qQ$<T@I(uA<s)9(xG0AzrfdJlfbrxlFNL0IQ# z?qL)1n16-6jkGl}VbOR~Sbs;&3ypCO%+oOWg^l0u3+hfQsJjr7FJHETqUx(+LrQ10 z3!}({#Y}f(wpSw&|7a78${4ea5ujj39^>DbqJgz}Ct6-3S1DJ>Yufx0jOF(|F*w<Y zyE`h$H23hQ^ZDISJW~RwreZ89^>PSXk66M|8G9RUpYNHUIAga=Ge1@O!`9AoO6}=c z&>i|($2|I4*Jgd;`w@~k6Ra=%u=9naFrtWi!sr!+r84J>xIMcFbNc6LU8%}K2|ri? zhf+*vUPG`FCM|XvL`r^882z9y%cO#*aG9kaxxsRS#)J;H434%=Uk$`B$s>X7h97PD zUx(q3uA=^q$CvrlF16Zcbk3QRUMurk^=WAwv0sboB&{>M=15(e!VD$Cuq4xJ{>jwd z%v9Gj6Up!Mm30hEBER`?YZ{NR;pI+QNvR|YV@VcPog65`NDeO|wfjBYj?3ZSX$5~X zaAlQ<CFaabmD)EVmB{5Qu6&TvPI$sN5H2iP$H*4iV{?+NCt?$2I~ds{#4MIWMKX+F z&U4)|chz7HSlT$fDqchH3$S+Aj6f%EFzO`xh)oB{VirJ@0*9)5!(`iBW-vfHY3}xn z7-Dz?DXpDg(zNkx>BiRACjKsI_v~{fcj32$&*@$=J6?X7Rer&Oa05`C@Ol_DRyuqF zC}HgmI~Npd>kVihhw<iv(kZf^aMUf1;sl<rnJ2#IsNcG~e+H$u{o7%zs|(u!lv3Ue zl=9Nz?sB@c?uNDecLMpQSK7EG3oDLTG8-I|=1De(($?MOc6!btulZMK2HSA!4^d5j zM^qjs0kUq&Otmy^TYC7W=tf)A;AQDtieGq<KeU=`)-JT*SXfE&>?ni>Av_x4=?ITO z*p2X5go_a#hwyHM$0MZwIsxHR2v0=#3c^-|TO<AP2)W$gB!ryM--eJKpYKOVxlBMv zuXH!`MD;6DnczU&6UGixVP$Vo!2OiXB4U(&q-|E8!C08({ai<gZJ<qI<5UGMJhMh3 zES22fc>&kqkH@pup>5e<=8j%#s8HelgnKu73U>jp5%`^t-}o{*it0WrIKJcjPO}oo zv>aQIjr@xXq1f`s;#O>AkZRKg=-XgF8Y5akQlOuN-|5eOcoydY918q7g#7-s2-*C8 z9KU7WjCU$nBYtT2#IM3LayK5MDxSzsWxWWRAY~<`ZG42W{VI%w>oyeEA;Ba|+5RBo z!(y}B##^=1WU*mLUW)dHX#0WthT1;TP@%T(g>U#(5p5rY`kB2<rP9vPF?5X+s{A@- zJ<_xzMU@tp*kDmuTxLM$z2ZVM8!vj5l$N)F&(Bs-TI#`+O~L4jiyL^!5_h6=52P>$ z7JL#0Yi1}MBmwI4ro`P~sj^F)l)Y4~-}N~rs)(jS*WxO9tP8IFsaEMP;M~M!WMB0c zeu!#NhdV4RV9S7Xc?FEK_}GG>S$<zy{iSF(L5Y^|_>Orcx)-V9)Z@H{FcmzDUwAQ} ztVaw)h{>Pknu@Lg=Dic)AqdYwcp}1c5%PPcAtXPRI>C}sH@dJsd)IZN7i<+*FBf)A zG#CYACw@afxd;p8ax0MYipXWFv{qbExumv<&EBu$r<dwP3`LSZm{E>Q&IivalNksp zlbHx9lUWEUlP-jm$w$Epxi?bk&Jo7$9AO);tf>B<EGxo7nUpFkZFMgzWecXNvQn;G zKJLm2DU}sreUOVVD;LykQP0iB&bN97QSR~-c^hEixZKI9Oq)Av%CycY=XXwRPp&c# zTTZof$I0Kcd*?E76Xfw1n??&KP$P#aSJ)=v?aSXw4_vToh~MaU4Sgt3C+~+5vhi~X zLMq&H$6!+0V^7!ydpBl`(8NzWf@U0cDO)hFsj>U*^Z{sfgxz&)WrQcj;6NvLItPxv zVq1fTvmsIES_<TJPhxEGu?SDVZ!+tOx{UkBhFIOxXPp}}KJje@OoyF1-o{^y#jizL z2qAZ~NPM4di*lFw;Y9QS2%GWa)gNYrc^rt4`5a`;3Mc5xtdPnCx8a^J7HDD4ti0je z?bsCD9Z@-Vx3t{d%5wK@mb<$+?vfIBg^|0$%H;0gYIJu{LU%ujcb-*5cOR>ayBE=E zw%f`5m8kD4aL+O0kk^5qroV+aywY))R0gfuAP{z^rJQvz=669KYJUy5#b)s5@hdhh z;-5Z4YM2%={$k7&Fy$LBO}SXUS(Bjk%&$r0PdZIAq3uvRx{k>RX+k@!8eZz^4y5Fx zg!Lhou(*#(FzF6NDK;(Qq*NbO!?cJ>IF;wxYh%>MoUb9J;UHlv!3AMul~-&KvT!~g zvF-+|&XUdr3#<0vy(ad1WpjrP?%B@%8%0%v1)d0pFk+KD<{*8OJeLeNK4Z5zUEHIH zjt7hz`zWaGu3%mIN>Do(YB4BnxfGU$hkzXCnTM|fquaO(zpub9+Dop@t0bU~@V@TZ z(>i9g&(u1rmN0rEj61T}A%^iyM&{#z_vj%Oi6)SjL*F?!eilzi4EKz@T5-%4A?g+T zE0AdxWx)LRp(tb!o<#uHw@|U*H+>r+-|`)VM<DD&NYk?%;rR$xAiNME7(btG|6zo; zAbbQN`SBP+R#3KR4qYgz4Av!t*iDwon8mV+M=mQKSN;fl%3&$}OKq&uY>ybR#d(u? z>R6V&so$iN&n;<fZq^=kOQ}%P?0$8q-Hfu!_^?};`3H(OQzVb^Y;B%wcFV&)j6FLu z=Io$n@A&Q6+@i4ut!X}NTiC25jas{B5=%rtx`>T|o_=c=#qyTxecUSW8f2Qf+19>- zt-CwlMcq6e)CNP{3~CT~*<hAsH5dv~vDhy`-DTqa5!A|=jK>6%8({UIyW!iOHd8xB z;I|IHT$<SmYtV1ZGz!z+v_&Ya47MSw`B&IoJQ=rQ!+qRemD>Nj8IizF6F7~Hy~?wJ zg_hFp<2nk^G*d~pWs1*&(ZLE8wAQXE=bLSJ4g<#P>%h4U&vE)USYrSGh5i3N{2z`2 z&$Ac<@|;!utq{&2fa^MpFN{EVJ;I|9-hgld!W$8uf$%1Tod`dJ@Op&*i|~sGKa227 z2yaGsKf+rOK7sK65dH+=tq5O6$PVAfy$(BmTO)qE@_uxwd)v%++^mFOQJ);;vZMW` zP!6<A_c(V(N(UndV@J5K$(9-tOm*07hp`kX-Xe!BcG&R#*x=Z7?(JtOG|wEi!C}T_ zdR^>G##@U8Gr;BJ9GOw6u8$3zoNohX$YjBv_H@LJ+%&U8t#QD{Y}s|Qv**-c_pYtR z?p+HW$nGrzCA)X8!+zj6#4`8c_tEY>4Jv8(wu5xe@a*275sT$*HGcb$(YlNmFJs}Z zHA&qav(A-cFKv`!%XjI)X_R^f84rH!^lnTrp|zn^vS4cmFh-<VT8ux=)mLklzOPRV z!s1};P~0w&Cmb$|+odIgWS6c%cogn`3?c2(QiQZiA4f>L^a+H$2tSGNe-U1b@N)>S zLwF~`>k+O*h;1b1qqY#-h>&)Pai>>emnsxa%|-+Hqutnf@32NgDigfuu)kR<6TI%Q z0nj+b8)~T`0ku%raEI;ZuvMVGVC=@@mdXSN!CDAA)KcjK1#j7n{Q6QQcH?)aq}vT_ zX^wda$Du?-SKMwKkZw2JfJWWcp;uvTVyn?ZYjgNsDb~h<32XD<MzJ=k_q@^e=BE(l z=c=$b8&{~cTPfP8gNBDTic}`xF$2Q(u@r2I!+8FM;vM5KYP>Mkf%GivK*CU&4VD=j z#Z8S!WrABB_63K%RktaxO;?GHI_tD_8^xm!{Jk>bHfl@>8#S@^O^vItPO(iHLhEFA zJWbYxESRuPtM>hGtqZX>dt)uOsm{Wz-72Z>^Z{p=NM!=fffV*GOJxFX=`W0XGb!GY z4x^R}<0K`;JIi6~L4DEKr45$K1fPO65_Y4d-l{v5+t*ZyU3#G--7fKLn$HxeJ54CV zF4cWDT@{wfn|U}5Mf8PzQtD9_OjxRi(8EywR@>%LkNO=L@ugaA)kYO??beHRs)Z1? z27^guf)UVbVXR3B8|yIEq=ezPBO8w;K^Qm9*0bzQ5{BW?;0|NE8ZDIxzU8p*IP9%D zRsHK!vrkI5U8U+&yO&|RlDqEsQx;uof*v~=RZ}0TuvD>adcr!@+C5S%l?4-)>a2~@ z;$uJe8{OWkOPwkyp_+tQyH!%1>fdP0%Px^pok|$%RKi%N62>}}FxIJrQOkv~P9=<W zDq*ZseaY3SNU2UGjCCquZ`q~#+ogvlrQ0QXm&HZuRL7ODOVO4KHSAASg=LEEQWaXJ z6={7@7ED;CA8ZuMw0YE_egymY>00Vgbr)#u)`@kdUf13ul?k|gmoWB731dA<80%5O zSdS7$O&3OsB#b>$!r02Y)7U2VNRi3}pSIMH;ByXp%Qn^DHoY=E-8NkZnf#`RZTeuk zZQ9J&gH&PcytOxMFut;VN;S-a31c_&(2dey+#Kp*P0){ZRoJ>Wk%H80JZU>mck>fS zWdfe*E9^o`WrE8ccBR8U;V_m&J$t9a?six!tm9qAc4CtZLt&B9fDp@C>aD)AjnP-O zQ#RdpvQF;rI~wo9e{~lqhOYSh1lNd+ssUB)cvyvzi|u<D*66mzEFyGvCHwC!m@sl5 zJbYsqxy`}GJq8*12Y(fvV`b+uYz#rxY>e<Nv`1U)8MZS?WrCfdtHRieFO26Z2xE&= z7>*UU7`0m%XILp7Tb#mP0rh2LkJ#cQl?j%>G70;*rQWhf8^a#;9G`BFD7(vx)aABL zugf_#W~Ww_n|)Sci(*@ThPG&ZQ;IFJV8Rydy-`}1n}aQS7-je4Rn)iYEyQ}+p~GB% z7pY9JBXm?4Et0Uk9Y%{J>=1`htA({Wj221QOQ61D><}#ysZ4MMtdFp(EcKQh+8B1| z#MX2>MA=<h#10KB#|~A#$88lhD7MpWXoDK}NU=c{OxU1F|Ft$~Ic(69nr%>R0<4$) z`GT`Qq%vkUr!ZO~VeEMqMoT1&J@3M(&B9t8MoT1Y9jLpF{h=iyl?grqt0U|(OI2!r zOb?jb*mrQW%<p!HW~NuPIL~nqenaugU_GL}Op~LQ-H%Zf=)|gv;;W=tY`7L7Wt|`0 zX-k+Jgv_VEQu-9T%<ojY%<nY2%<mFceI=!3e!}{Yim-xA;<}3NB1{^Pwq7Q-tl2D$ zOl%SDysO`2)2LrXoC;U3B=^m#mQmcLOyfzUw9HQ!XKf2BXIHy$ODirWXu|^Y#$fIc zuFNv|T8q^K6R{~B7DL(1gt!X{qqevm@N~nh*_yNluQuxivEq+gz@3DDPk<a7f^$Kg zWT<XOHGtxj@(1wqS7%-ZjLn%3<M$=cZPd8$57zj#O`U#@(eEsh&%d}dsS*0!hFja& z*=r*Wf`J}~j4*430QmaOy!&g{AH}jBe$Og|{HDk3GN0Q(&-Y9&)`b<`#i~9ZUy+sN zk|@e)bI5Bs$9|H}XEcY!gH$GX!eLKZDid&8|5uF(-_KGwtPa%T_ww1NER}A;d&gU4 z*UF!?k&E8^4Y*VS4nqz^B@1Z5Rg$B)N;0=(qBet^Y)je1=4s&xk)|-VqLgAS?zra3 zt>*Mc5V_tqvje3bS-KWw6U!y_JWBF#6B~toaM1I?Voxd_pEXM@d$YrG`!3HdU*DfE z&N62sV<{tEwzYS;U7GoR<Y1M}G7_*$nvhN870WzvqUIvSyb5P9hVbw>+~{79%_Vc( zT@q_94*?T1SlQ7Kj04rrQ0IY~g!0-DTm-7oU{u=e4fSJCdg3`y{SEeaP_LrAMZ2q> z2(eG{d<a`2R4UUV@f>X#%UdRNcFdU3h11YWtvos@7)W2qtGylZr%Y=;vORh_dt|fT zmd%}dWV21Pt2>*^!sTbP`g{B_W5-TvKQVg-Ecn(gJswzmXzc$0|Bo{3DktM*r^7JE z_IaNMh&BklgF5J&3z&vS;K|cJ)M=h=0%lh~wP8&rm+*0M4X<8&h*{1|<2av)y~snZ zS$Z4(@3Gj^17#e4gK#{s)d;%~zVPB}^DjX7XZ$}O;a?CgM))kkWeC?Id;#GL2>*rf zMTCt=|0RU1(Y=h2qm_R}_%iNOw$nUgi!K#oY{w#uU5PCN;r#tMB!E-}h{O}xR0*!s zvG;GJtYarphqA`W(fP6lm?vvsl(myB8bj_PFDcswge)(-eh=Pnhwu*wS*Q3T!qEty zLC82eq8zFoLn;$20`{o`h*8p{bWX^%2IE>mQaVrZlLlJ{j8rB#4)Rrcl(f?0D6}xH zix4&#wev&Y!*_5tAE`{x14{3mXQ@oE5|rM%%2IF;p!D9SET!=nrN{9YrI+RrmYgyI zhX~95;*j5IIOG>bP{y&~(YqW=kl7-;WVX10st(3Q-@M6A16Ha}#MVq#wKfmt0mpAX zUoxOBzGPLpFL7`|U(y5vCttFoq3BD_aK2<;gVC4lZ>S%G(i8M0!wi=1OTG$?yQYXQ zIWFCoxJF0a)}uv6%G7#Uug$+$>%G)@j1nHG?U=Er#<G{SdCq1No~dB0T0Pb*wCSt$ zSat<nL64;h{rnh%-bkNC9r|n)K5JttQDvU)&7@P+dPeG0+%rmtYW0mHU{~ZDNo4}= zyV83gvF}<c6C45kxY}UcyPQ<U>`Q)?!6pDBl?m<wrSzy#N{?%pg+1=D+3;$kjc=q! zB$Wxag;&#icd%3@_yj1u_c}{ug8u`h_ug))Ot2Ly14^&aQt1t<s(qu(Fny!UaMCw2 zJ8$_$wX>WPOt!NeT+lZjYy8_du=sF8(Ko)+`NsDdjK1*{L(w<t3Hrt(43_U3KM##t zRKzz<DB&9?*1it1Y_B-460aC$tcXj@k5a2Y{A~>_IJ;)^P2vx!H#gMc4@2fhXa4zZ zyB??(_PZQCIzMV{ZN4{$9#!iDsYmtqfs<fA<O4}*&)|EFZ+j5dg;XXO37xpdU<X?& z6VMxe-C)OBDihoSO6gIHl-`35>vI_Pm<|pzJ`lS}8!BUVBGr2v;M?@x4}sEqFSS%A zxEhq+dyS=V5)de*x8729_JK0D^no(BNgv4UyyXLH^nqRbgzdv~3`HN<?tI`pgV6_m z#8C8sdV)UiT!ZENz{j9*Hx==L=a=CF>%JtjY_E8ArCu?S)e`QpK-^mW<Zkb-zTIe7 z48KYIBz5bKTK!}~3S~OX0?*XuIp3_hR;@3kuGQa{&PS^9rKB>!_h6fzhOZbB{LoUF z;8f_%uMKvFr82=epnher^DLDK9tNfKsA)=XwZooq*dln)F~*lJwp1oK7+z5C9c`&h z@Lf=P?<1DV1U~_#_x{{c=xaqQQt4$aRcBu+vrS(rvyJbL^|dlPZ~4+1ed%A&TcW<! z-x`X(^i=0dUoaSb>E8@RU#chQOMhpuzk^DS+m&ihwv^#ZYg{&5w&$$49l(s0aG1#` zwff0j-c`MywCmO1B!03k?a8_+PGvo-Zw@`G)(29L>hA;p0sA2zNJ{O=3(Pno+moc! zo}6tkwkJucJ=tY2wkJucJ*o7lMM{tDNnvbH3S)cnaMzwBl`-u}y_fAty_fAty_fAt zy_fAty_fAty_fAtrN{Q9(yQxuqs%RRpv-O32Qm|Hejhlnmhr}Ex%2zX{FSEM0Q8^Q zxh{4F%kTm>3-+&GZ2CyYf!(tWMSu7K=MOJ682#ZwL(w1V3Hrke43_T??}hgH`^<5C zoI+*TUcw(n6CP{Wd!THOcxAb5$x~czvSAJjIL4weYxR$;nN&OeXm?Ghz&}!68*|Rg z4oIJKW;pkmb7r`%Kb$i|J-Vruc4R0fbf<QAOzEVnEZE_i61TQ?<C{^hs`Z!DtNQ!P z|ABpxza*toAl8|FRgOlIl5bq=`dUe40**XBXE3%XNo4|#JSshEmD1zLqp&9&#*xP( zjKAbu98wyC)O$GwsrTLlO7H!wr82=Cp!D7^TPhQ5kCvj+8)m6Gw;5%QX<B8Dlm3#~ z*{uBKw94mt-uM8dALRb|uUft4a8A%E<TcZ77WA6gcZaRWgA7Hl+2OoqtHJ0sCm4$R z&FhJmKpkwb|A0!iB9DQ-{o3o19S^;vXc^8=_nMperUzxa;fKq0!<gk0pNO6vcgm5? zI!dd%V|ve=>^M2t#AKjx*^zdRY67k;DVJt7^Io@yWvSMSzp_1_HFF_3@0HU}dAWJ7 z`Ll?qKlSwDui$l@`O01FIrDWFq)#u-eWK~bS!)QrIQ4pM6<+*Jqu7--oc}-6^J;4q z)bsk+Do%m@Rjq<lCKv);z5QTfJb!@{dVfKE-e5nsR3`WXsM`$oXG>**vCwU$M=e)+ zXE|)L!`RL~($p#jTPhR$4V2#dPfMYOgF1rV`;ev3Qw~b+{h_5Y!GQzA^hQ~#&b11; zE4m)Jt7NT$+1adW6;-VuX{fb6f$Blw`b65zg7t}iHiz|z7YubC82>(SU#m%8HP~&y z0?c!02-phO6VHKq(cH~%g?|xRy3ngn#9QI-!X_;CGN!i98;q3g_~)1H__bqAsmAxI z1*6s4^8QT?KHKhY^CoF|Q+KYd!e_hbOHpgOs%?fM<*CfMzPWU%TE9qLs=r?x0NWzJ zNGfB_4qPyT*!?gQq%e94y|~<9qb-#Q*e89N!A`JLCSaem(xWCRJ@!cpTj?;)ampIM zIKxsI(>tyA(rfCymxI!Kue6kA0qeb-1xzXvYyhS7U?vS!XTK=3OTQ?yoAis!#GBtQ z4yx5JW{dg7w3`L};$G-i(rE3jhN53Q*|oFZV=(%~0}S<JP<n!XaW{kI`^8(Kee;X> z#hugJ+0L|aW@eQ;7DZ;QUTa}aP3ERRe{{iEwR*(8cdxz`yS^#Wiv1fz#>=&0{neXq zWKT48W@#<{Fe#>jozTf>we>%jz4oP`b|m{sl6i|XtsXj5ttX@o#XTW)rq-1&2g7d2 z50c6RcO%WOjwE)Er7}Sa^x<xU9cZackOlP>gN?IPCiomErAG}?diOhw<F&%rQXFgi zAjfM-VdgF<y_aW#lEO++_&2?Go~1IuLQs0|B1>h0b)b~qOO~p$AC#G;AC#F*`ax#r z&F=>{qfy#V8ecXJ?7rGi^n(+fAH2z6^n;%>6#bx{pdaitSiT?pG_>!MB7Shsa{OTB z8!naY13y%DyU<uBo0G^crC6`LIJMfYBloD@|JnV$3bqLU3faxaFTCDJ|3_U}T(keH zMOi9q2fkT!r&_;9-Kn?V`#;zT`8`sZ;7%ysJIt&jdO%Xzwq_@TaoZYFnP3#CVFnvx zsZ4M^D5XcuQF?bf>>h_rf@eF*_&xTTlEUr^p!D8#mdXTE;l=dcX_k^N)O+a*No9hk zK`Fh}ma4PglUb$TlUYsrJ!T^5_pqsq=?EN#-D6BEr!m@B?J1<<AJNeSYzTh4;g{nd zU8aMs{nXAWJzd@H(|bC*J3!b2*DZQs#|#UcJbmWu8J+Dt7tijTGp48Lg0iL~up`xk z&MDJ6r<~t8wZyh-+t_W_z6i$?8@d{XEZTK^6Q-X#ttSYNv5!~8nh?p~o&$<ApWli> zqxm}_M3=&RelnK4o9#Ki=cbI4LZt@xgmD;ESbXP+V!Zwdp76KLZUPqa`k1=&y3JZU zRN|}R^3xdf_PA_4M#Sa(rQZCeO8NY%n`S{u+nWd@$A!iDykK2Ru6M%&TjA#YkK_8= zm)PDn?fUE*fI;rCam~3oA26r@Y}I6@tl9gf+k9U$dCf%4#G*1OJv0ER<a(co-;4jV zU}a1D3MfV})NH3T8q_w1Iv$iZVCn?*4uf$^A7Ph)db`1{0mV&Oq79gC0dk60CAtCF zyYTx2etT0*b;Y~P(b?&@=m3RcpVQfWp>|(t2_H^`O=vi<Xk~$VyCLNO@!f7WB(wF6 zq|STc#XM5#gAk6f;NLL}%V+<A@IZv?5w;`z7sBZX|BaB}v;iUQ*)VWI=AV=%rwZfb zRAHO57Bmm1B&h}a8H!q<ty8E42O5l8AdFh@UV~8!xDi351)Q$YTSN;+q-%k*w6VQO z%2>CQ8oL_Z@%AOj;VbfWhm}g+39ou+&PZ@innOx<S{UuLu+3R>PC%}uIc<ib=4fL9 zYR=gPqvi;s=A3FUY7Q6jMw-Kh*A+!H=g<<G!-mY!9dkO%P@DXy)#!}3c0Y&w=j+VI zu{WoKbJ7}8@;bukb%brsS~F*#P-`wW6tzZ6aj7*63`VUHMy<KjVAL8eS&Ovhk3g<3 zqBU)0Xib5YkG@-SHj3&~;F)Ul$XnZ*u16cg_FM)|N{dKkg7x5~unm@C10cRT+2&Pu zS!+6H=(S!n)bXIS2#s3wFN0Bwgi(uLF&MSzABJiG^)h~?Y|lH((4v~x5>-;y@z!~z z>&(WnJ^uvfq&1{udxX*U2-}>s<|D9}@>m}=6tzZ6HK;XL8;n{bj9PPr!KgKy@EqBm zpAsozdyXlgHPJYKO*8B((VM?PWU+=(4quS(vo?mUSp?2WYe-3Jgi&jRZO&T5<H@Bp z;|)cv(Ntw>%_M_SYlKm2PBs{|hEv-jt!eHT1Wy&wn#t)}v)Rw+tV9jH3B0LlxG}Ww zR7gTvNJ`yr!r1*LY;)Ga4b7nzzGf(Dp(eOd3kU7VyVOEq)WUuSqZV@dNTh{70CHIo zE!?mRBIt^@)?FPavRzfqQL02;yt!kk>Vmv(42@|3*Q7C|GQl%=kFYhC+Pv#X?>6-u z){*u%6g5UuKRQ7jYA|YyFlx+!2BXGscs0_P$AEmKh{g;_w_8qQSZl6&>PIEo;?1kr zl-hC#I3{f&l?hgZXTqpA!Zv67a=no_wdK=>qPA#&l-lxngHc<AQCn^{7`2516_K_) z4CLY>+Vb{tw56IcuSzt<8-d)EnsO_+B~2lP!58pL*lJ7J!54R^Ol<Ju^N2FTV=j6y z-Jvo=-hqE~Y4F1wkP;1Y<e!(qH9$>Mx@OJkiMmg0Th<IqRDGsQ-XR;zr+=u-8TL?_ zGwq==7|$}@svp@iWD+SIDkH29sR*+>XPfbh1${9l-GM0n=_GL`HSCNCy2@mdGiAQ> ztDIB$XUf#XsB2ukhEyi#!*>Z=X(^{o3)W#UVZ#H1fyV|Q(6BcL#N-Cktpzx$p{aev zaQkdjs$b+&p5l!J#sMJqgCCp5Q#-OYaZYDXdyiRW77eWVoK&C7jLtc+!8bq75d}MD z@?*AG(ah|cql1x}kjwll97f<E!)yDyCX(AMKR)=t@AVb<6r2h}9-L}Vi#g4PUv+XJ zl?fV9%M>=)Qq{_Z2L(lPc>(YKMiIIEC(R&i4sz-0s#Yv{<t0rnXIQzMY2|U24Zr5( zLP~NGM!5(}`e}^NZFry&Y>pM0Hjb`MQi173PuVz)(=`dvIW19yRvz23W$voMe9Fe@ zRdE}7UvNd=+;`;PFfXu=*cTyL6xJw(R{k3%YY%%uW)2<KJZUaYfpP~x@e!o7c7jRM zX4;naF#axS_v~{fcj3o|&*@$=JCl<6weQurQu}~`i;d>;EFD^?hTsH;afD6SxuAN@ z-FXh14@z492}j-HsQW-sZVhI0G*Q2GcmE7ZDgWDH{UK>#+(tnu?*>Zw<0M7h<%Xom z(#8XMzv-2>iNM&CauUMhHdiay-PIEwW|Ku;^RLhjw&B(vB0IPvMp!2SvR>=7X`MJ| zu4`&%z{BL4q8n|=Bhr@QPI!?&w3<T!EVN)dN+WqT86oF_bRaw(;S_}32&W=kjIa~o z-3ZS`NPjjB;Zq2wBjjS*^AK*0^v_4wh;RnNcO#sIknQ>|gp|u{g!EEhhn}eJMG6Z7 zaZebh;|NQZ{sJy@V)H2Kev3+z@tI&+Fb;D(BHNtSZW@JH{Bqi?N8X7)x>OHQgSy?E z6Evnp&aT~pSiBuhPGObJ_k_gY@ywiwlP~I+twhY!l&0_{i7*s+3(&FKI>$%3GLPd8 z)E=KSk!N=q&p$QodQ{-}eK#QFH{NI~bh|f)oF}FBk+5eFOIZCl&q;s(@ycnO^XGVN zkZ_JrlJl4%)E;BIkx_gN{g_A)q{1qW5k&#{_;5Yaq|~dE`@Wbt7V8rxhYm4NT<(7b zN+k&|#^S7r0SF;VbIr6;pJk=qWu<<&D{rJS!C8=tu*sH6_Mu$1j+TQCmnl1kySVvg z120s#U|v(>(92o=bG-|jmoX&Ny=U}qAAGHSYQb{QPnd%G?6=~{^kxUsbHg`>>EbB> zlXyDX#PE6RFX7E|y+00*{&6qjxoWTXF|M+~cU^09`CX(okw?4XKAtp(yREXxh1u2{ zairSB=2H@HY+Yh<#%&v;*FMYX$nM?z<~gOmd3pR9`^~v15#?Yub8u=R2efaqV=s4X zioW?~CT;k8t^Iy|^StPr=fzp3_<ZBS=J|XUFGVX?f-;=pXCrfqbvyd<oOdYlWh<#D z?JHPa*byq*5Znx^8Cug|Rvrv6hM0|(b+ASa!M6RvyL*G`Z|<H6YM6QUT6gz0P<r-{ zp!DpPm`|yccL$|s_XV{DPI77pT0ngf<s<yWq(l&-fgUSgZmai11<0?AK^gFcr}l z{147E)}DOHzd~z&Gj5%cwDwfoi{jS)?ZE)Hmd(WiGg~AlTMg&GgJ?ADkz#{_c<kl4 zJr!S%i?MSEz1ZO-N4_+?$Q!y5<RSQs1-IS8jP?iHAshp2dxR$<d^^JP5$=GH`5K1s zGK4!J<T{g`5&jL~E(rHUPIg1c3f(&q9*M9CVLQUz5i+OmLO2&;Gs0yE_d@s=gnJ|0 zlQKidio;3JEL9vx>3lO`?7k5;2+s-2SV}8igt4ljc(&i7xUEAuK&5>gsu`fNGD|qv z6}667X(5aPX3l#}z$#umUJ^wyDr=LIPcLyNONPbiSbWTFu+$B~*`RJU)Iw0p40R2t z?-{BA)XVs#wLU)$96T~J|IYXQEc>4}gVyK7=~FK*v$Vu2!<t6u`$K-O-z)G1)Hlh4 zWe7ik@Qb$oc`vvpH6o?fr!clYg|$Mc!xqKoUS!i+phNG2r$XCt;Ik}CbT2#$n2zxV z_rJCFP4=!#eG9Gba9a1U&1f2uk#AdYN%Q33LOc|2Y9jIFgIndq<V=-lZ?=gJP?|ci zd7osuqs*bA6WKZrJs<P=Xts&10c!5#*aPMO;u*LhYkLVO*<vbQgR$ASfs$2T>Eito z)G%<nA)tFa%}@=XsGw}>`CWmp1K%6Jf8jT282;$0M^y~A*r`@FOgIsShPVx=XNV^O zYQYc2^{BbiXY|0dZnMo~0IW{~JgM`dIXuTRZgDB=WAMX8i`#@S#o}s!jP^3T$OGEk zAqb~h@CQ&*^5usJ*(iGgA=CZ|!jlpH6ybb?Pa<4|@aG7rd%r;V8-%|^_#DDtAtY~q zjgYqUOh`mZPf8OVg}r3&W`bdmlQ4Qu#d9YkqMIXa-ZboDZ+7;A)%~vM>$!kxl(i?- z;{R>q|3f*O);9V`{C}!?PBW_!*%Xd2F{TUM@1e2|Z|(hVSeHEJfX9wGpzna6#FFv< zX9>wd*{9(%q3mIPUo($fHFh?7Mlctfvy5*AW3*uV3x+xs*lmV72h`1my3A2Gff{PC zyFlG;sBeS%qM;f<QT2BQBmHW~Ux2f>^7r_?Rz&qbIQN_?8aHw6ry}QHq4sBS>qGc( z+xXyiTqAAlYv3~Y|54um6TSbZdjEga`~OS!|Bu`BSd-!PDg5txcUk1Zi@aI1br7Ib z1g#dtMu?_&_cVm4DF)bJfBt6?qUt#Rs|eAanZF$2*$97#@B;|RTU0TO>Oa0`sQRQb z=&20?Va$%OM;-QkhjA{o;{DoT%%8Be4*RFW{^PJMAa}*%7EOA`jt-+%2xGNK@mMtx zRz{ICXHO4ZcrD%+Q+=b|;UU)9@DS_l8pM+3o46@QQRCQX;~w1d1(Y`wGqXJ}(up5M zt-?g{*d!m#Hpc%k`m8cV^QCP9-w#TMNnZ*|r?OrTN~f}hW#vX76TB+>Dqt)t-^Fh@ zl*V4hP1sF;FzVnp=mDuQ?)*UMk`P<IK+QkEzR4}=m-(I?<^Un{#x^**)q=2KygpF6 zim|}?`vdQf@KA&U5T1f?Ai_^09E5Ng!YvTqi*PVPeq#n9&Gk-uhdN6t6MV{H<dU$v z9d?hyHmUBIqh~jT?(9FDmYKTKWGL#+Fhhm9^CKYsv3RS1g}O5`U3c7&V(Ll;U#*JA zu2|z@iyl%nj&<D0_=Ok0XJhHx0pO;p2c$9qt)MV+R@gHRTjQ|*PJR0a{Dk!FWkXTl zo-<UaZ?x}yMQqjUo?o}N%4twEREjw{9Wy(zEE2WKsT1uY3QlG|s=UP%6{l3Oo<5JR zl2{!f&oXXGJ^d%7AU!3O2?jt8!YC18th@?qa@c>Tp6cLG+Qnm0Y8$W;BRt72)KiXr zTwX*^N0+dRp+ZK}QVJTy{HPUcT5L&AszuziKKKl06G`FdCh$@ixhib6!)P6a{dek` z4(Ow<>7*y>nofEOb&a*;Ym4aG`^(U^0_%E;DqVqRD%QT(LZDRb+mv?ha`aQn&XLLl zzW{HAk;}qfa@Z>l`|s2}E}M`))(I=rJ)N);>Ru^3*Hnh?)wqJFg0@C%`B18+ZCX3G z9^93#k&>MgMy?85ZK)vv?VPYps%vILqfOD)SZF*c?cBxAr(R&FP}f*D_BW?p1uSf9 z99u%yq8eKb>y9eWw%DShRBhXocI_%~Qo2Se6R_V!7`ZBJwZo`u!phe*_RH1OCz3d_ zVN+<_1T&hm5c$^5)&C3XV1tDk#~SU=JkQFWE@~V#uOnUK>d~3*d)|7aX=h4Qpu({Q zOKB?XYcP3JO-uO}Jjb4yFC%2n%(oD-XNEiuduC39WTe5Q)M+k^QWC~qJz?zC6IQ+k z*P&O>Y!ALEbXS{t(^_hGS$byeE*t7DYt5H>x=VhB*7E0Nx0I_|=~RJ|#g;jxDH-zY z>lweJ8a*qg2XLTk>5|F>%keH@<ft$Xdkb6buuZCGX1m=@p=SrU8lZM>q@HQ_#!%15 zpAQw$v#ru?r0bDk^R>$LQ5EP|Y;n|Ppkt$4&5u+j;P{m=a#Pq-4x_dS+oU?S$!dPu zfReWClSbR9W4(q7b&UMEu!xTBP>zmOzN)GM{faHA+6?sTHm6^tGQk7jpD=P#*pm*U zrU`4ks<pYvOu<ObM#WfE$|?YiT{W}Dr<oM3m{8NqITF*{%!Y8<JZBXm-sIephE=)V z_5O6W-bXb{eiZVd{xptTowYC9o}3VI;%THV0F|6-#u2^+o>owcI953izmvVyAAVnO ze#e<#=}H)><R&}n<v8V>=`&`Sxine4F#igNeA{p<*2%`%3X=fYE%3OVC#N1y24tr@ z9Njf{Ru3kHZL`fZfM13u;;b_)Wit_*fgOhPRDg}0LC}rqW^pIH$P0SOfd~(@;D=GG zB7ZJHI0oTI5ORF%QiM|weiR|c!Oj{U*0xAx0`}+%YqpeI!2^+FdO<d}1nqGo@F`C) z$cI~}_g&UObeU>xI04x##H(_v!qkBz2+7P1K4n&AyA|#Q7TBKmaL!(QAd}xh#tuM8 zQSbsY=MO@7I6_YEIRYUW`3u*fL`qY?g*{{M7GWg&0X|WLk$oG1k@=;fS}uMPB{;@K zd<*Mw)iUxsj*+CqNMU58FzX-lHS#Bj^64Us{LV&VWZ^E-s`T<>X!#^KS_?z3aSSD; ztx1Hf1Gj_~WawjvQcN>fY$S#z`wFYo%nRXa5`3&lGk1WVt7S?`nkkH$DXbtPS0IYN zp=;b$9$$cw_1@66QWN=AuW*;6iAP{!5N#ypA{!f-wG)ND?=+E=<`)ZN)mK<S2C_!u z@6sA);IVaQpubCNrL21f9<_4qE5y9loTnz030SWa_LQYO2h&P-eLP+Eu-v}ObIaHF zkG2<P7s%P3o!lK5rH0Yy;E?nx6?#_vsuQ5l_s*TuIkkOC$Lx+N(|a`W7%8P(VP&Zi z_vV`#PtUaJbKKUzamT?t`5yTD1EgJ#BV=BGfRG-TTfM4ylF9_j9CoLrN-=0a#Gvot zkxv$3&{63OauvzcYKqUh;<0OCD>u4GsGeVJD`9N2(>zkLd%|e<ge8h?p610EyAqEq zDZ<#3N-#FR+ES3K`B7_O=@v<r*1}M3Dk@DSB|9jLc2HQ^4E;GC`CJi(PAh|<1*$Ja zIa}bFT3F0Y$m*uG+=Ek0CZ!44!d?Q$gq6+YQd+xT8B9)AX^QeT8MPLc9*uTpjHR_` z?OGH7F_e_FRv5KbSaF69jO^<pc;sV6wD!yr46Vx;-zl@Iaao)k8e?gGYo`+1%H0~p zR8ra}N7!m`NLVqZy1}%FwVVdM+G8!UY<xSsZSbLV*4AU-$ye%nr0JUW)yQf(`at5c z^7Ws5DOSHAzry+jt&>DWDiiRO3yWE*RQ;kM5>g)$zRD94^=1%$tkk@7SNzdsnCSOu zMfzXWs7-a6e=ufT$GGV;lld>k%y?yuJN=27q*R*~#@ei~VtT)P{h)}M58@GjYwb8Q zhox)0tA4SfQ034>b&PC7?&`!yZh$97lF9^6fEU8pKoC}(kuj@$KOXUSO^h>gk8&7U zdH;KLOgv|gx-pT}WigRdCU_it5Jq+ivrH_sztobqA!cCLW|^%r$haG?WS2IrOa^Km zt)3>M{S|v7fUymW26u3$8|WBZ4;zX#OOs}F&MI@GjEA;$jO7>yZ6L1~x7V5?zt}V1 zYX&EKNq>t~ar~CwA>{Y0wyWgMa>bsM&XE;HjtC?3g^~Hfs$%}K0?fY=$@=SH;>;i8 zv|P+DV;xKd+>Nz()3}Sgr7_sItCyqyo(x`qkPKdE`}29Ci8Ps%*0l)ZR|~t_QaZFy zSX~*Mwpb+2;9NR`ojtBw<GBK{u#j7moGO-Dgu(+xBotCw{2`2-684Oxh6HOIR#%}s zhGhMj>T#h=EFqNq*0f*SbMniNswPYY;)u1jQ^iqRDLLB-gp_7v3L}?<t+teAWD2XR zK+>jj#|1K@41pAAgcp@efoCcfQLMF|Dxz9S43EfAi6N!w*}}**VJ}%~Nbrio>MEd8 zC1yk!0!p^zi^?S#wPJC^TKcKtsIA2Cv<V4>luC>+a!J@~OR2;NtE)i1j~Dn8gX1M; zatVP%jiwqV23KIjVm$?^BB`Z>T<uI4DNXbhMlK1XK!nk|2&=0=(&o*^1#(%sK<ZJY z^@~zH(zIO-6-YSNzmO*3S_I597gXX%X&$UFa$Okb!3yI%SYdS)@Wap>e{yMDz|F3k zB2iU#HG!zaRn<*Vfh1ym6KRsbchn*b9z7sokkVvPVdRi7_JRsq?XbEEV>y!bXJE#K zu}gYsbHZS?tjcbV3Iq}B+t>(#IMn$eQkqdIjNB2%9wcEDiLkl~f<w{%G{v|e_9{mZ zm3Na=AcR=o$VLzXH_BIOAf;)C!pIq6?0phOaR{qQ2%ot!>_QoWE`##BQ0}UK7fN@> zChS7_qwPX@#&)6n$#$Wf4K9fJq|}8Xj9n<g*o7jDT`0n;V*Zi>%r9k%-sUmi@4l|Z z6qPT9`k12sv0W{TY*))wwyR~dD+Q!viiD9n!l?VgXo`f@RS>02(T?Q^q6$+~z7XnT ziV6wgb|(Z<GDX738DTU<!YB@5RtRPW;Xt+|qtS$=`0sRYXl6TLgYer1zw6KsYA@$n zqk7IMv!?e@yN|~?+oMN!Ol_amHKm>L+PgdF%*B3Z#gCfcjNwM4{(F>dZ-k&Jd@Dlc zr?EedKSCI0=Xkpv?F+68kW?nP4RM4mvlPdv;#==EaoYD_+;n@<n$7YGZ2#PdtVL${ zRy=l^$E{JoFz#%&f4<lG!oXC~+fVBb_ife|iDoxqb7Z;Q-5Fe)F{5irxRZAi63V~A zIYceE_4s=oufmO;`F2d2*6eCGX_}G4i+Q{s;v9ewA7rlcF_VZ-&OkU4;Y>TTXh%el z$t9)ZkA-pMNmwl$eHE%3arFO?=BY(E`n&Qu3bi!-2o*B)j)TfzXkLA~5{~wBI!a0$ z6-JH<tA(T6qD>rel%~KRZHepXAIs;cEAgp))YUNi`LdW@6SsE+H?01G(qOBwr>MUM ztA*R665ReK(wtR9e<xMJZCccnbr}`v^*&}Pg_&$v*ih8O>BAkTNoh1z7@d%?S~%T- z-q1*|S0K%cig5bnDmh)OhqywPf2kan`z`ZIEXg_Gh;*BjW+e$@jZ0W99RFp)HkZ=v zUsuWTl)m2z8QoQu8L5TSzXd16X;RW{VbpD5wQ%}!baO?z{Y#|j&l8Q??4F$wL074I zh3=a}!FYg2k<*zj?3z9`+KCC)oU1n~6h!ana-3&PR_03AHApHGyaYZ7d&N?<)$q<w z*z<28&8{L=W?dCJAJvy#Pkc4JK5t`Nm)XvqlakI0qs|MfMdwe%*nOn)_aMz_ML2z7 zr8<9f*Q}n7>9ab!+h=!o&AYf77XRqb(&}7`Re2vcAge+uW47B6#!d`jwQzVu!m2!j zG;b)v;eV8`%k>*@sL;SXUxw1xB9Vifbs?1r)`MrlHdv}Q>+&4hP?65xk2L+W9^-a? z<gSRItCXF0b@Rx&Xw;z^z5muB8&~gNaBWIbnsO%W34E=vTJ(NcqTX^J(mbz--v6|G zy?0z@oje*&sD{Tc9$1>k`QtX!j&fV>ySh3HDREgCxh$*}E?<%0aw+@$i)y)SJLsz6 z@&0Ah3v00!S33@qlKmD&`z@>t4r`0~QETvwJ)INYAQ+f%k4u4!^OP80XS$lu1r(e) z41aVPQ(^6DSGU>az4DseJ!SMO`K)7peC0d|9do8b3L*2^W;^QGktWwiN*#5=mLZm~ zs#!NX!Mcwj!J~_??f|c55wVV4NEO$CmzJS)c{SilSof;aI#ObtFtScq)vUW9!MZz; z;0KDZ?%;x~bCxo_uc%_KK2Z)=Yho+A&7_f}GC?1{UD!%XmF4==3-j~@Tfcw=&n&{$ zzj(GX(n!ZvIv}r8sA8TDEu%736HD1QCYF-Y8PCGVTwzsf>YM~i??!@Ci?H;F(wa(^ z7V7<}n72#I;B77TlbvB=EvZaE9Tm39QZ;C6SAw;rw6&!?)_UDM6?63c<ye4PSjyfm zv6PgwRahTbDy(X4y(q!bN06XDn}sfbo|0a2UO|@D(4SK=$LEf&rixmLD`U5pSWZeS z0EMjv7lc*K^6mu7mm$HkiWrE)3bNeU+^A_4b=*|U)RQ-|VPOB2SV~G-EUXV45LPuy zXCzp93lcn~2ursu$Wm#s-$PR|FF#&J{|xe2i&0=FmDov2gLT3<SSPG%cJ?IL`C}yL zujGpxg|WriS>qv-RrK~gS%xat$bR-<iT$Lse~++rNLg6b>~GsI-Wl_GB<N3lh_nA- zuQMj4QWhBq+xJqjMt@*rIVQIzjb;~=SV~F;LRcR-AgpSZ&P-_Ztw_+H9}#Eiy9;Wx zv$?F4#X4FlX6TR0>1L_LK(Mb#>?9=vA&dq>Sk>&Dm0)Knd;6X;*%|hzRLsn6Av`-V zr^py`P1?y$C9#u~*eQ(c6jla1TYJrtRGinxjT&*LYVss^Bptlt3YLC$s2zZE5OvBv z1f<*ZYDWQM-E0hg$9g?2HQHSWVfO6KSyRhgpX!|`$?Wg2Eu|7a&^u28%)h@(_3w7V z&p#0IyZ&h>{ET$=fs`gp2zv^#gcaIDvnBl;$JXZD8ax~14#U}?b24TJbpeozy|pio z4dpqGJZNrG?od#SNdPGJ)*OeE7P+01Bx}!dM1qqpiYJJpO(z8xUKB+iz=xTx)di#< zo<ukFzCIizc_IOu2}CxT(D{%qi`m?OvBS9SC$fRV>k>z1duQ7*m*&t%o@8`_QLJ&G zI1RNSILTp`f|3G$3KZA*Hkf1RCK>9dz;-dzUqJ0_sDYU7rgKrZ2X&gk8gTbz{Qixf zud?q#EN+6iE5cjcL`cm;tEbAg;2rr_I7KasTb|1103}qG8-TU}G~I;I<F0egF<R ziZIP(3(r5b5l@;sQ+t9Mb)S#e;l*#Ky3+>qSnxkkZ}MXU!XpsAijY}(4dGb`Uq?6% zAp|kM8$myW>^ba@@J7N2e}Hfcgj*v0!3cS#X$B#AJOm-?6ULaxfYGdEf=1jUH6)<i zgq2~y#@@dtq?=pvb|e{4>umS1qs#&9DW;8i*!@a=25M))47|A^$bwo6t~FrkH`d%5 z45=I4p;`5Hhx{OuPsQ(>JK&ElQ){oM?lgrdC&Ey7s97=Hq4a6)zSd~W9ru$B_bnwH zUd%gX&+j8Icr`;d{2s7$KH9XwUI_VZdn06=gTN8VjFd*Yg*|ESW`dL*gVU`YEKpm} zv*XzNw?P(S0<<Ou?kMM*pb-&3DktN{!@b+Am|^-ttM%-)$WvtBd~?|5o5Qx?!pTwe z(83iohX+P)GE`{#+UQ7;^Hpo`dc41o-9wYi>fh0zq<_@9)4|z>U<xSNGk9O?cy9tF zTliH_vW33|C0qC+C_TY5*JS~B0+qCY&mfks#lsP6IPg6X9ybhxuDWY+MHY}+oI^%p zTFk0c%>EU%b$`X9^X!K(;5Sm+w*o!G;#)(j`Q42OnK$U+{NoUAkML}SJ0QFU;f@Hu zgm4(bdlBx8@L7brBHSA3?uL+-tqCD{xI03Y7TOP$7E&4`7q-FPEvxIXqAJ=UMtd5N zKK)&(D%#iHfk?XQB<(qKrk`8x`j?o^3Tw#;e`ls-msLeO0UW2@IuYR*gsoNr2RjLn zQWZ_uQ-~#OV^`6dSVfzpDw---G%`7&*}1TcrX~jimK(4t$HRV~i0le$Qf>BJ?KKqB z+A|AP&W_?!g)3)FsfkhQQ77Y;{9}xsEdzD9p&kS!J4D~FI@#|*$s+v&lq?c!XGx2c zRwrW(fOQa-uH)-&ks=+f$RbfkbI4ReN9$iF<G1^DvNq^5`SE^)tdmVZ$gG@<kbZn3 z!f6OkLC8AUX$UVxI0+$-(K#LAqX^GJNPeG<kae?mgyivLgtS<+9<o@ZR3{V0TnQ_y zPIgg4!ll=*PBzMD8&WT;PIlr()SV{eA^)m>o$Nx$hPDkXHFdIi2w5k)*vjlsa6~dA zr8=1~*2#pW)X88CQkL_ePL?%wvU9-VSe+~sV4@zaX5s!cD=llt3R0t@I$74%$zbHd z7;BHW1}qz4N@m{(ps~Vz^RB2C6?=k4vjwfkruG$;)S{@r4FTIIvQ&3~l6|7}l70F< zsMAb5Fu>>-dz<|l)31OH$B!I7VKde-nyf7HNc~B!bW&$OZAN(Un`n132x(JzO@WT_ zJ3A55RzfRG4QV<;){xFe*o$x`!rKsbA?!mq8{v--b|WN@<{+efVd<5wl2R|Vuyyus zCK$J9T=TFpjLgvcpe0n5QF5791&vmWMrse^qod9$=FXoMG!7WQju!Q%ZShB!sR?nJ zS$j`+$Ml{#Zemd6H=4q@iI8QV94Dt{4>BA-c6#@m9s`a7m=HswmCbD2plqhOR$AOE zF^_GH$rWh(V`>od{a%F3dkaEx_eG>H?vhfMpfKvUusCDEyGE9}VMFiRa?#*uZR5ug z+vn9Tz=q)W4*Wh{5wGw-%0*t$cjD86Gq*7uXze^ltYU%UR%TvbU0zL)dGdL40C>TC z9*B^6J;?IrCC3|5+V@-7oronY&YMCz_&H0)F1k@_LWaf<K<@lL*(tOJ2g^cX)<N)| zy{L=SO0MpWv~oERe{BwJJF*zG;dkGT_@m2cW&Ku2cW8}iQ<!`rj61Q|^60Q*fw_Zh z+PbtIJN{#9D~n%v@f#??fd~(@AnPoAl64khtg}#iS!dz5o{ErK{9bTKT1-l7b%Z@_ z@0QhSirh&-Ni~@`NlD%0B*i7bk)*zjchB)UyW^62xEx7Uyo9=JDaF=LZyG6m#z~2k zT2{iI0;hx}%M)q=8y?sSH)HFEvyY-#0w}QkE~f3HRt$_&(}Gp~!jA5oI*aM<pFxR= z1amPerbqQV4$2l?CxfJ_jmPgp+)!4RDMIZNIxob!^yxiXSR9@<RNV<0>2vnDB1k(A zB~!&~r*_S3@0c>BbIu%hvQc|a$GQ8tVZ787_iJy*i0Q!xmWUQDN-7m`ucr3)**)C{ zA7~~Eqo=adjH<MRoJxeDHOK<}{k|;v?j!~vEc)^1$osybNr&}$bQ$Bp;C6(R$rli^ zsQ(#~R8c3D36?^Z!mhQHU)1ZSM28_ikrHh{W*+uRcU*~X_mpU6*M*%<fHf#mJvv>e zZCZm?fgHC-L5j(-93dXEg@iZ?A%%D-LJIK+a8g1fr8c85wi$&bEdlIqO4Gx6R@Uht z=SEuRu-!q|YHD`$rkC$Y*&POIk)awuy^P=Q@LT3d@dRKr1*}Ki;MwSQuJ*Iin>eSl zCtlxcGRKd_N|X`R3=~{b9rSP8@*YifVEr*aQj5x4=eg6%?IU{>lPO|?$}4XCzF}J? zi`zHhN%_s+Ldfra(0W#GDl18m%9tGyg{?;{VfB^NSKb{;YNeq<NxgvgeWQq^7P0E4 zOGdkZq@3CGCzQzi8gUhjlP9wxF)J6`ANEfQt|rOd3hqgAq%uJRN|vy}mhuf{d1cJ_ z+tf0qb}`G?j}nqw2E^Yb;RIk|85_^ayRLc|x6z|NSV3Wlbts1;UUApNe6oc*0AaJu z<X(eRR`y27vN9YYt=d>b5XVVr@{h1Sd$-;kSDz_4er&?3mE!ofcEBULHa*8<yMUL= z@qI1F_p=;-kLCDLj^m`nabbP<I$>p4C+j_o3uzmi>O&4edaL0`BLDv#Ad5VEbSyAx zbr!$<cfucChR1$8EWOrdqDC&knU~bq6?=wRsCO6h49q{<U~z5#*#K$#&k<&E{}%|U z?R%m-LE27AwRvHz%?qm^?|)tq@1J5bU)N^C``A9<W{}FSKc(^hSC;p`w!DAZ@_sMJ zds5=PF!Ekl{dnIGS`+F0Kk<gXB6@$PS7Y+^K61O5de||uv!}Cr`iDBFPPA)oxRT*0 zG%oyVR7#nsIHiiq%k!wi*Q>m|;%ZW)GQn2x!ooO<MOgi0_E@64JOG*bTeMT(LR<Cw z5;6;gQ-)CTqgKrI*g3}<&dsX_rInRJcIre|R!C{ALl}FRh1HMm4^_nXUzM;^`ONfp zC+<P9nLg{>(WCRDR?PR<*7z0hy^xJ+b$ll!z6&GYh1HMm*CqJ=eZ1k?A~xzjW$1f> z)oMirP~e%0C9xao&-Jo9J>ZP|G$|djDC`+<Nm%{lu%se6JY9zV7vSk8kwfexf|`By zTqg%ol7leHL0J9d@b*MsRVn-bvohq6Tw++1{mG~mYk%y(fjZcsb*Q~a|4GRX38Nhn zRzJQUnBY5o{LhNmp$~g~7PhWbk2aYvpn9Zfy9_I6U2l&WC^17;PMx=qA3q*8QF0`e z37WuLVa=8*t94ywTQ8H4<5!_6{*uyo{pqJ=l%Hs!jW3#n509c%TyA2+ZgnU(`?_*N zO8ajJdmP*lR=;wy0d<6^jd2&=;O~PT=l6HZ@ZaGf+r_yZF4y4-y-K=`j@%=m*vM}! zx_yJ=H7PAP7q$v13oEg^v+D|1pEtTg?2NhwQ0(bmhM(UHhyF%$G8~v6JXG&Kp(*Wi zFpZqM5;r0F{3{$IVs~4KJ|X7Q?}fV;eL%YbzYihv{|(zGbR0fic7l}pgoO1Wmaxis zxe{qb`k7`A;=DZ8)6c}b{);qEM0y#YGh%P#^)ZJyb+i(u&c~9qnDNEe`#M?)UmtdS zB_(?xjP^iSDZZK>Hak7b49)C~M~_H!U49fu&U2X~fKk-2$-!T?!yjGFZblse$4;No z+1AlBtujXKnKEF~6ut!^-@m>gxheL9K;2+xx@JA844NI7oMNyWEJe4}+C2C)j#p!V zDz+i`M-by!?^_#z4Z?40{C-{ZTeS=}{-t;%<qFFgQ+^eWDqkg<Vox#F%>$F)x?Mjz zZ0Ej}GSjz`8iK9wBuDRCbzVDqRI#*d-{raG>-$GDh8E)ye}Vh%!1(d#b_sryUN?fQ zeTxpr_{u3Avpc3t@42|lozOXW72}0pHkcQ`FZ2=gzcGK0B4i#{+5Wh#p~td0q%y(H zxF_s3OO;|w>>&H^;*nlYE8>j#eL7=YX-MrV_IXx3b~Wtu`#1B9O(hI{7c9CMN=g%Y zggp)J2uqZzJWY!+^g%r0ul<iR^iL%iI?;AbR^R(op=Np=F|}ys@s5$C)cO&|){n5V z8Tmsza(xlae6b8h*1I`hA#42>eN9^0?V9wYGQl(8kFYhCs-W1H($Zg+!Q5oSyI`58 zLMNkEQ{cU3dM#S|9BREP?xdup!l<Rfifd`?tm%jF$o~}4(q~IBGOA6uooEVjG9_*` ztc;!Kr<PkS%)G=Ec~Tl262`$HVa1qv;{$js$o=zQk*^-wF9@FUSjws!eIdMP@Jc#M z>(S@nv%Vf_svo05%Mm+~FSRd_{3upmAfLke!f~!IgH$G94~8(VITTh*M9bGVM8dfr z2^TwCeFSQ^_A<;XJRqkUrO$C!Rfv?`?!aOiB$ZXVVyEemi?!(af6xq((IBNQScN@- z&lOgjiGw00-h)Rz;%Ruij_~7j4R^euNsYR03bHU6tr}C|b@J50z<r$6C8ZXfFt+G~ z6=z_~>fVh<E-u2rpOwSFiYGf)ScYR$o@>><>m2h)smn&#DsVzrjCn)vn}0WocBF9E zAl7LfzqSW92)}LdyPf~&a!M8zz~o_2IMQg!wD!(<Q#xn&Oz)aCr_2V>?@?@G4Ip(7 zG=*<P$SnAWL2YB3JVTt9A*GE{g)PHV!eZZ#CSYu}$c2b<r1$aL0OQAF9&m6*)bKSX ztFybitGj&)&R9Tm7w0#f+tpoeEAIkyYvp}p3*Hf4eD9k6$vH0p8obO)KZMLrf7<~5 zkTW@?G6CDL!j@XftMJ7?`ooCgFOi9VbbEo1o;7tkrCRZqFY><JHx+3g{z3cUQ|yON zwIBWw_u-^4>l)u8>{?5?4==C^#;)PRB;9abUz{=%cf&O?i3qvg;|J%iGLy1m_e-Gc zXL>Z-h^*N?pZ5cG4_vJ_?)aLajt2H+Lvd=duqmK40rg@~Up03dK)sCL3;6jHP(K5V zJyX}=_b<=F6`CrXQk>(Cx84&_r_AW=D7PCnbpq-nd|P<&dpUJ@Fv3;~ZWySJ*w+xU zVD%fM1%Le!o{j$pAe@7+0pV2$2O=cD1|g(ez6dVMkCW0wRbiZ{D$H7v0=i{1>2<rC z3uNEgn}tHfrt^iGV<4!P)F;=dzH-*gUd2?HhF~nH2??R69YoEKqR>ynZ;SNGRXu8{ zekGzFY1*1^1u796!Q+9ioH4|!7uF+mp;?3I4|(IS;<~~r$dw4uP7eMD;V}poAtVp4 zLP$kubBaJp2U8296oj={YDjRP!#1IEu(cBn13ZjO`-fP^mE+M}5JA_*sCic)#ot8Z zuxV069_byj%B%TXiy&Wj-hz}4wH8K>347X7LxR-~+k}EV0F|~#kjs$;e|$GC$OpXf z9KQ*btk(Ml*BSg|G}Znq5aQmuyQ<745aLL1NM@OoPN5Y>ZV6+Df-s6x*d`R>=MqBv zHnQLk8pnnBXgNZxyaiH$0Aqv3n?Qh{bpj-%6KsW%Q^KCK)DU#<gjmYP4{(_I>o9ZJ z_@OPBn+exrt~I;(wb`w#TAQ<LkYvEcm|T|$SKHFQ;shWojjIi7Rd)b6#%l_k1q_V} zvqjpc*cj4fY-oJIlr+agyJpVr=q|M!aeKRV-fj+MR@sk06DP4{ltD+D#rJJ^DZQPy z2ZCRVW?uaT<pcU_NO~Z`Q*nO~LOQtTke==41eFQ;9JbO@m2QPrIrqPj;65i>_@k|H z?k_09{cu>iQUUCOdO4Wt2_TLZ6+m8(eVPQ`jdlw)Xg`FMz<X>vW{r~oDYe>#twJne zW$QopY<plZpTiG>yhh6}X>JO7c46()EEPv_*wQp#_&;I{U%O=v1%`QJ(*#B008mdR zgz_MecCScu0pml{@jHr@PhF-+q)d%Z9RoB)W!9XY?zvO6lApEp{3{$U&f-?=WRP%k zwZmadxRM`pI|#9uWCfktF~ijf<4H5`_oKcz03qrF<~rLJkq;o`H?`X$vK>BBMTC?_ z0))|2346l@#Oaj&cK2}s9bH;LtP12EF=Ez_Rv?|&86%-|?m`9Clg{0OLg^syz74BH zK!-X3k&=LfQ9#1pZ~<`$y|YLOI<7nc6&S0mq8!CeED0s`0-8deq+SvfNvak>eGrMM zB$3h(y0E9g9bs>{ph}gbvE>QM8_c9fs?5&C&OZs|vv!X>`Me+~l21(~=~u9t5)dhs zBw;K`!cqj3WnBy|G`=TB8+}U4Yp=ilI%{8(9%#btHTW5)G@KQ+;X%(1yf>MBCBxml zQF2G4OkDV^QPzvC%(kx>15l1>5~%NCd@E`&eG|ypUIDuV*a-YC#BW?_xka7XZkRQ% zU}ce1{?&qgfI`<3JMn`MbGjnwpe6(2K3ynlk>LD-#k{AvD1HxJ6u*fs>ScsW@tYAG z3x^h69Q>n9nj(nQ<U;<r#K-SFdi3NG_%pSqtGl_ybmzm^rd^l!H!hd8%Nd9weIg}& z5=MOz#^J@U?az3q85zp<+nSlYr<|5sunxODK9}n~1-o&Nw|cT*<?!~iSL}jBerD<^ zRVrl`2{^^8k5V>5)R9thpVdi4l=8^ZO6j%GeM7=e$iL$H7&{Un)W`Kr2}3d&2|O++ z(#JeQQi($LBE@rSRLH^~Ua>9)RK}g0aU-R{Sz%AuyBhWWx=}`|C8<rPj1WM*m6409 zBW3(LUT|s=Wz3eTjNt_J%2hFTphT#OjY*$28F^g2d(t%4Vi~VOdY$!9#FUS&Tn)8F z`ISx)NokN<*yG5pFfJvz$0#BvVvwqjA{Og5*-G12vC+78CoW3yJ5J<@qpp)yWcS`g zJMjxZj`CD&GBCP|Gw{29Tl~>gxa(xL22xwXn2C^0!LZ*XzB^&%{U*LzO~!ltZW9bO zn@0P#2$}!w5Ym>=d&{wr(u{s#efBQJH4&4mHP8C8bsQyNHHkcPTZb)f#@7V7M;A5+ z2w7Qb?OoWMBevw)=0%8_>s1`<r4}}G04j$_CcJ84GgoSxfy`?SnOhRprIzNFEH+8# zQPjrfAw49#u=#$5c$RjL|378_f64qmk-L^IHaFc{dGZ0@YC=3o^~^1q$bFa>H}f$U zlXkOp30{`#y;ji>gP>wSdFJue>&>geyfSHn^sdkKK5jQ`wGTX+yKE(y*S_K;Jo6<C z!!!gOx8~IQhJfY!b%U|L>idRz!BJ#RKND|nP>MGO)R>ukb}XnbLdzlxi9VXV@znPN zI|wP}5WZ~~2wg^fH<$6$uDP>p_X#qYe}%OHD%)!?C3f<G>1YJ>chsX$6+N-@;tSDT zLc=^9Y3zT9LC0e52BCR?pz4g6JcuI~dmnklvDiVt##nr3jH!};yC7VGa92Clx*I}n zt@TcX2Ow-h$hz!v_&wrTY?w(?m*oWa*rmGc<|KqFTtcC5CbJvyV<k6sZRX!RqKuY- z<}UpA$a!R0-%Pi02kevF2B}QI0x4{qr82?YpzcK>9TMDQDa>T*9|TL@OKh2?GQkZ4 zg5Vzp`;4X1YY0o0EW(>*Ox0{MKFMocElIYl(xUV(dBRHwi@B^(J;G5_L46M&*8mR_ zTVgbSHSlPv*~jpo-!9r77!3!j2%q6Ux_ZzpX||Jy8mQh>v$@^fowKm*9U`_*2{(ZZ zA5Vs1M=}f6@6quapN7TyKvOI_v*1rP`@Z%68_>FzAW3PenXqMeN?7vyDS-07|9`9f z{^{7O#;9ZLLt<q7`(J^Dsr36Fx8MJ&`+idTeqsE6VYPh!XE(w3S0n!)*zbSMeLpFE zzc7BkF#G+*CJ0d}>~t`WLL7%bQDx){KxTV&Y1job&u2Ko@9cm-x=dvxv7(dXkQ(&Q z8=ds$0+=C7&YPav(bHjcrzuP~5r(>h8k4^`Hm|RM`CKzNIll5uIC!=&zlD(be-I&! zVh&%evP4RCX<>c#t~G4z3Ti68>855+k(XTk8S(ONApTU~I4_U$2I3REtZ8*@1x)o8 z$NKG)N_hH+<0&Z(DhgW#P6$isGfU+zTY_j2B+g6_pGP6Bp$R_U55zxI^(bJJH!Fl+ z-wA(osRDgkcgO5@Gg_z}OrwFrNG&@psNwXcFo8rESI)=b6|G@o&6T;dEk%wH7CcPA z=Qs21cfekVsmA=4ixBdA=Gm#o!yLa!sc%UbeWtMb@OuO5!jWEo1F8FdG|um=KLNBb zzu{iZ^q;AfvilCy?mc$*z>nL3q=M|uvl*4}yT7x)q{MGw<hQW;@SAO+h~Ga!>i+)e zaelX!&u>?+Ngo(D2DwsEJfAO$*w}bsQPd=hVc?MLHz}QlA#5FW-(dBT#TpD7N3wVU zsejD#k8xRSUxh59Iwn@ml(Q3Hbw%cHrfqHZ9}g|mgJ|29EHX98={ayuaw4Tk&BEB1 zB&<GiIwVnMegrxB^_aMvPOm~v92@ZFDpXZq_BlAucEzSE6fQ8e_=+Q3c_F1Gy293g zQ^M*ahshXakIKtaNZqdk#pN)&N;wpol2DaEzLYPJ*sO$t0;xqF=YmTr7o;))t(LHt zER{M1u8O+SQwiT)s$3jYr98Zu2UUroE8mgCCLa_OLrwPSci@iXKuYC87|VsQ`jm^y zO#eg!Qf22`DL)dhn?qNrI&0J^+&&8{!^SutANdu#uI9q7=~JW48{kE%5>xN!JoB{( z&4i8XNB+lkVv&*`5k@~EtUhu&5B4##U#!{ryG6zAS7#OFC6Y@t<D)7`oR@F6Vv{}! z7MNP>)&<~>$_pu#7hx<f!s;W36U-1wSY94O>gN@ycWqZ`c{#dkR!_(DS)JYOv%9<I zU0hvJ_|c(xMPVuC!;~%xHQB5-a7Hp9r5!YdJp(QYtB(v?5;p5!Nd2ZFGPtt*vQUq{ zqbkkU^ZAA56?FV<WSJf8>=!AW^dgMIQNrpYvuDv45ZSLEKxVUw$ZT!-eIo_^N_A!D zTlvkAt#{q%a(EHkQQ09S`z4I_OIUs6uw$a$^?js1qlg@u$}c-k4s4G^do5Hag%=OZ zvta9+%8)`WK4dpn=OQKhC5-k<Sbb!$Fd>6dKIGli${?JkQ<W3nKfl%+o1RqAiGx$M z$e`EBfRtn)j4}{bt_(Ppb`*<`9aUhT@iL6_L{^BS3jPLv>>))JA{dF^8N={Lm+=f< zhb%@3D(#fIr)YQV+tEXt#ru#+8vgcky1HlDMH_isWj_5L+2b)H!@Qq>koiB+j?fHs z)`gTt6@>L6mazJ9^>(D`FByw-^|zirM_gsMYZXjgny;#{PS;{gt%<AbeU{B8C9Vo1 zSB2G&tILt*WY1E^x%!8KTy=&yy>qn+hI`A7n2lK1YEg#Q#PMyQ+~PPXt(g$^G_oM9 zejNV|(!8Vy$A46s<582U+%D8Ar19l^Um5E_-FVVq545B~N@vdrTMy0&tDiI;LYn@P zhPeL!xwJG`G4VP|t6;acs*8Dub(0olx9=JGY`Hd^{m9}rDQz1k>?x!otbW{n6ltDQ zME74RkK2X1L#trBw?vDqi*<$;V|y)JXRooiPAU`7&Ins=sq*_nOV>wA>G-e8<GR=B zSp~Db^;Tqdtjn_)vum>N>=PEZNlC|rQOAYVPsdBy_g1g(CaR~@(6w2GFy@ZVYYW9X zHj4_QCTU#e`UXhJz6)CqX$Y&IG`@p0KTyQtJXc!xBX1jZU{=9zZ_OH&Kh}L&jNi3b z8usr>_en|jg;Do~)sNfvBTavMJANo$ZCXCtl+b;@o3aWvf4pcXWf3;l!e#c}ip!)l zS3($j)P>cL%WIIPztwG=%YQGZ)Ai|ytU@YJ7VU=INK#>cuB1XL6KnwAgazn@6jnc} zJc!iKEMjRMDJT`!l8P*i-D<T8PJduzo>`A|G;SnLvlmvJCZ$EF!kz?Igw>DJ-$a`J z47j-d|D-ghz0Slc`0OqD<ojb?iADIF-;>2>%dM}opH-YDB~A+?r-jvz)Au9IV)p#! zWpX;~GOU8n-g-vzD%N3GgwM6ubM~Z)%cNw_h0&f1i_N|6&E}$c=a(bKiJl#31U3l2 zt?_Hw9)EPXf=_jv&^c%Bj2^?Go@sWby<2n?K9LN=8JSG}<=tJmHyc%(I$BdKJ|jJa zA55Rw;+419qsRHdA9deL3JV_`_8Ci+o*&Fz76&du>bc(dSugKF0-f;xQTOOlAb#=1 z=!ltgJp$paDGZ7%V{%~vdP+lPozpP|>*lqtu?flKUm?3%aLb#S?<))Q!-WY05W=FF z3){t-$<@yyWIms>%o~8Old_P~M0H`y5KGuNtoR%jU#(bRnl<{Cvvy0%EBbogxrQ%p z?d`+NU`!8o{mz&zJZkN(Yj-YkTeFARH~mrMzae0`nPsTsL4DXzr-AA+)HH`RfZ~je zZ{T-^r^Ocm8;;)v_|4l6e{`wYa`MG<dOBye+dX^jZoSmzb2^~bA>L)TwJmcF{Gc73 zQilstd+<_pVjt7p&6RZAP>l-AYt0VYoYH81PMG=2d~>f~mcTI<zYN0Tw_qoQ`G+7} zfN&zhg$PeYcm+a!=amTgf=_@?5;Cbwz=htzzF{d@31Lq-tX#pH1L{)5EIBfVl36I9 z&jFd>$>&&L{H82^9iDvZE0>92wVjWgE*E2h{6fY2`Fk#Z99wiT&!0fZe18%l`Q7dK zO)3-I<FNZJ<t!3PLnAhto)?+mOAy5$D%b`X6<{cSN2XX9nqc<gjUL@Oqht1*&Z+G^ z(`RZrJf29oLTf_1x?&H<k8pd`rr0BVw{LoPwbR-k-YZlrQrcr#*tK{{Sj^SnL))Sc zy%bT7^RyuTq3<d1p`ov-;!{idnY51`W=qjL_pzjOl$0=f9ASx%oj(r_CHmg05$j~{ zd-;ij@Y@!@r77QA$aPfl?Z1aA#+P&D`B=W*U(Yt&e*0hCe0owkElSvJcuJUC&jf|u z@IV7_w~oD)JIir9xdrov1#`E2w1Jxz1Z%edfiM_)Uqdr&MPtOPWkCJ8T;qUoeb5p3 zO&Eqhy6Vv^M7fzc+n&P3B9VWE1*QqNN}T-1eEMsf*4njA>ku;k&)c<4<MI8n%%n74 zCae#!gq6crxL0ua_{Q9!xxwY|_ghGPp{I+jz{uZY@jKd^YvS)78|kI%R`QpPx%y#B zTr&Zp5|;a?&G^=td7p&B8?W-@8dT*u9wEQ!1cbECG}+=gDYZg`J!$Vc>%3rH`hFO! z>8wHIAcu<1PORLxf3>}(QSZUwHlsuDGrG^M6Cq`Ldf)+|4#yx-RJZ&H5P#_XbYK+9 z$@u*|a*HX<RjWI$$*d~oU!f*vajW#%dVIfsw%*I&AsKnF8|)$_gD8v!QCJz(#xjq$ zU6kMzJF0K@6qrKhG=VIBH|~f(x}u(GEg@^4IHwb<fxA1V_ski?Rb)+O>$PaMtu)ze zYM*vH@371CNG($GSyRibE<U=eXP@&rs`-7~Jt3~-E1}f<=7$kx5k6v-{4ysSQnsVo zVCxY}Sp8(P5?xf09<Re2?kysltGtHyX0ky;XW63i&K&TKQ6+M^&2{sU%9s|eum;!= zVP(jPCMY~HfQJPP7;APmhV^>FYkH|pj)A*iXV{{KU>v9)CB%0-kS<SrG(S|c@%Wuo zci&q!<Ig}nDX$I_H*?IV?|WO|Ynk^E2$}zp*7qKb@0TASCEqKo53z)8B-ZcZSbuE7 zs+D5>gJ`<gt4`IPvRUs{dh$C0(^!9yW&OdH^@mv2k8`XiCDse;!{-SrgY^l|fm&yx zk0EM&u7<Wp*6G`L!<C+Tv&2$GviQBXMAavC#!$h^PipK6Jp*@XOK5$nXYi{(ze5|1 z-?SPbzw7t5&9=9z{*cn3ny{x3OIZDQ|MQA?|I1yF1zkqJ{c2|_H#aKpudj;t&sg67 z$@2csmiNOQ?@5XG!pM7J_2Yd%<UP{+zvB%L718^<yc(0w`=}aU=De+fa;Z3_3d_s$ zW~r=MJ*(d2n##-HT}_HqCfEvoSr~T@6IMT&J(egh?4FxnL}q^|A+xYw$gkT*(>7c~ zB0p+{T>mY&6Sq=nwW4xu)Oc4;NU3vD*c0H0u=?@*p^A9^>k>99pOFO%LVnZ=dG4LM zT$Y{}vP~yBo|6*Kg^}mN>c{gX37$WOH+-Uqp8uu{o)?%`SCsh$o~cj@c?UGtB!>&Z z8C6S3X}Z6#XTT+4^^?QfG36uj5vA<S&&!ZQa;9BT_9vrO$aU{5=bCu_JUpd%PD;8j zjJhwZemp-g!Sf8f$WM#t{v}>(+4|*r)c<|q)FVwT^(((E9XqTo8v2bl>5hd2%Jmy3 zxYjhOOwa`03S)<}u=>d{laS+Akk5HV<oIM6WhYu9=8Gobr=w^UmKpCP-kQqHey+@r z(iT#}R)G`3>c{I1@JW%K`V!vIQ-s$m%BUB$*?AqsIUP>^;Ciw0l{$86R>8r<a&`Jf z$7fQRpby_JY^9}KceNQzT+lZu8b`SrQT#Ed_!!&gDj9Q{b>Z~xu30m&mtwic^?DN( z)M?O!JcSqY;*UA~xWBrWUw30pq%`Iv>^3|lEPLAh*cAEo=z}|PYpkakTLSBk-xm1Y zf*vG$8EePB+jw6v#oTpHi5(IPv?}->e}m|=@G*Qh4-ew|c`^h0&i{d?xjYW33>MXd z*nCS-s?i3~3)Z23qrj-z(EBiL1zRN#y>H9ImX|a7vjnfmdQ5shFm@N5h~H<*VA2JK zM~#S`e{qOmTddn_!Y!&fraZKEp3`HtRzo=su?f@9oz?@%ypLMoHy4;6pP7e(dCcQz zgv{q*mYFX*W|Gn*7GcW}OIW$gG@R_+^3bw|(XK=C$9s%q7b7!y9DbiGhmq}Q54ZPR zJX_=Sr8#<53P&v#=cvz6=F4a3`z=E!AY^_|whU#tm3ETK1b5<|u)8gly2N8PRg`Yd z4g4-{o{xWd)XOC9UXHL0|6^9r!seyCfi1!@ZmC#nc!yiaPv%(hWKz@Y5zNyVXAy3j zIJn!kU{ycdZ_6#gz^5KWl8k|FzuE08CV;xj^lD!SN?U>Vg3uP<4WM4ek5#X4d*b_F z;0NM&J$~nTU4fg+K*a@fJ7%<Zcg#9hDl;2d&A-A;z31bWx2ZQ-pWM_tz3N3?_ybO3 z(1kk&_~8i2qazTKmoMS>xVJ4gi$NoPQOyVc1onuT&5xNCZ_Z6a&JE{PR7k1HDU4N4 zVVnnYAEvVn2`;geb=k%!MMu~y8E<u2`!I8yMGBiT5vzq|Z7alZWvx}y>~gj^JV8sQ zVd<gw^<kX)9RzguFch5<1J#^;$8+Kvg2O<~HB>98iwzZ)pxc4?la=NG8;;*h{HAP& zKe~*&^=EQ*UNCn$roy30Vcbbe7&#HfN33I$x9DMVh<K)%&((f3HdHbvKePes!7rL< zm#*E+r$3|Xb9P48%?O$QTkMRk9(=W=OiBY5!uk+Pn3=hpaM=Z9G>(D_#=(r`tO10e zUT+)5JyhFb6HqZ--~^<8X@cYT0r5FL5!l}NorK>9HzLQ)fdF_%lDm`xdEOq%0b@#> z+Q@k>ye0upmjLtaOW+1@oZoUILVnLpRswUJ1W09qui>6BazxnU4tv63t=MI}DQ{Bw zW$PG&Md(0;t_Uq|UQHP1ZQOv+cq}<8{1=^Pu^RuVkl~<;n|TMm$AtKQ8UDB4jXuiy zIh=LD8;R2}R4S)Z1)vXlwM+JHo2&_u%Kh<V`^S>y4L-ddp?O-#z75~d2MG2iSUbf2 z0~&L!bYl^wq=flg-5=&*y9KuypZqF)s_e#67oi^_Y-=OD#t6ghyO0WQO-|+?U(4GG zFidJygUfvEWRRtd>pp?}WCG8w=AS<N;b9@X&1f$njD6|&+!E9-SX-EFYYVdzv3Q!u zDm=nE2Sf53hmXYhjqjOfQe1mIW36T^gnUu1x2=(pdD}z*z7+I=O1@+5&dD4hJ@>6k zaeT=WNU(jyB>cVA)LE_rwaQTJRNy3lhTwUJje<<SXRy;9)dlK{23rV9sr;Y2%OeBy z#4kWSX5zgH>JdY|6YY~P7-}C-iq{HirNPc~*gQvl%u%0lR0HzIdcclI_ZwcF>JG#@ z68COFc(vD^wYgLSy2FD3D2)6otWB-Pt=RMr?)gGBIrqKB-<Sh}P1A?+wP0(<9NWra zm3%UO;YGf%e#M3(Z6U8`1_tv_K=>zw=YW@gK{yBD8idOcK8NrTgzFIg0parq--~o! zK#2L?!Al4!hv)EnGai%DNkLRx6O-=!_k440$D|wr**D_Xf?w>~td54smvec?q!iNa zH|IAWV5+^tV?v6N_Ml813bzc_ST#^m8FLt>#b5=5@j#ewpyECxxZhG4b0Ew$uuemQ zJ7FD2Wda@u^G}1_Y$;6LhXH>N6lO?pt)<f2D7{OZ>q1kTr)-+}$zDsQcL}YcahQc; z^<J?Qkru3G<)U%H=lKun79|gw2_Ivn#Xg2Q%Xn2;?Ay3hTb^vJqvkp4D~?L37~YJV ztQb-#v5Mi{gwcPIv;7$3@V}{!^dZ!T9=5QVvF73^^~KE*Y*&<_mkt?z$JqP#ABYE+ zyd5zSyp4ffG?jP?^_iwbI-KkT<XZC%-r>9SVsi%%jA9GVZtvAQ*xb`ww~ya2eJsP* zzCVtYirk#Y3M*TQcPU9t@jn#zhF&oN3dk2U*&Lb}EkweaBe*el+Xx`lVve0pd>K;6 zp)YPn?}L#H;;tQSp0cm7QO&nTb0JMU^PVJ@m!Nsi*eFBdoH_Fl`9gzv?a=6^0rHY) zE13Tx=}z*~os^d@YPW-*{kq3diHunqWnSxejl51au;UB<-7*=cH^@;=bMZ+OB_3&c z_6jN_ldD{0@yVxTIFqrGN7CrMi&AanzkY7~Zz)d&_}yzK#NK6f-XPQ(6hxPg*gf-{ z=?w|B(|^Bv3b{vXBA$Ev>*XGC(4L6L!M{It?Rb|3DAa=W{f1s~J#6mUgyx5ZBk|cr zLc@nHJQLBGyel^*kz*_xDz%M$1)9$$c7!8)v9fBkdhQWXejf??@gK#1gbz<dIZT?D z@HToayrQo{VzkH<lHt#8YcmjPkyxv5pL=lh-dtp$@Iexlo-vu=f?VW$__N>jv@((2 zvH9uQ?};U44yH-4Htl;X!_Ziq@4a!cK`^+o$mn&*DZ{qpSDJVG?0XhH7{Rkk-)OlE zt+QOXH%&hGt(-TCTo!q6)QCXUa#=g@*?Ajy`g~ZltmcF^VU^5a*js^KgREC97Mq@c zcv(jzSo)Z*jb%m5l&Pl3AgG#vwQ!BWh3FZu|Mq4ZbFZ%opUz!1wvl}irrLq9&m^P1 zi2FgC%)xe#(?G~LKF2uLcH1*tFI#ytu=W)>{2kcLZiIGF%Ta-B2+jr7Yp4%{8gnJF z%Rzn9P>VpVe;2V&fzlIS0QInWVmYXL4D~Zmiw*S~P)hFwP}dl&KfYcRhgx)ZXHa@# zBq*iKlU5aP3aBOK*}0(f#FY;FG^nqcyI*q@8^cQPSB`oCl+qi}KM1~Jp4btT(mN2; z#|?I@yL%?6uNth&#aj$&slh($?%oSZZ~HbV<@84m`>mt?21+^D0hU_vhJ#WL4t3ax zpp@R(p!CEHM_uNqt3WB0&w>&U?se2-?(UC4DZM{A?0JXvL)BiXYzazl+u337cGQue zt~OtOlA}HVYTCZkh-nU+4@&8M3Y2nn*Z*VhOyKh>s{Vgz(^68TWiN>E00Dw*WiMq* zrNC1tG(dqONE+I-DRhZRN(-nwm;%MLvMcUIcHF8W7E}zjLPb<mR9@GrsI5f=M6HVQ z|NiF8oqM1AJXxM3D8B#qe)8m;d+yx1GiT16Idf(UPgjFkT7Cj%U;9IN`mcbE#2~h> z<-k_D@4gw#-Z%!#xOM@U#Wxeo-ncY`dsm>{5U@{%rw;_$V_+7`w*&1b0mFR~ecq+u z?_idKEr-Wn+cjXUZ15>~3z&sFCD0ncEFW!P_O+|S)At4Jj)1KKv+sTl%-(n!%yRxR zn0@0FFw6N?o5$gH05e)`z$S*LlLPHSFpFhYptS{TDVU}CCNN9Eo#E+&0sB_KejLL6 zD$xE4X89N~B2LxzVAngIz6tDNCqqYqeZbL90lUP}E(o**U^*zGDtZ{q9FgAxd&1EW z9Or7hlv<v3HU5rJas~VxxasxoYFt4=ORw0~DAk{FHFiPrUd3~pn_8PVdSvUZ$3pa* z-<>pPvCb7~Y1DzIZo0*|<YB!YMcQ<xHX-^qqA`$j3Hd~M;byuQG?a4<Pjo%Db$TeL z8NCu;;=5d#7elzf)Az#_DYx$dz*Zm~-@-EBLBNj!#{xeAJQ(<OAT_=49pG`m^}yqS zuK??S+f&vPfI6r9Ex>(&6M;tqPXwL@%md#BJOwC+_^H4Ga5C^F;OW5ofKz~7z<S`* zz%ziq1)d3951b18JMbLf*68u`fXtAH&Iir`UI>)yb~^Agz!|`A0Goh+0L}((1`nEn zBY|^(qk(gQdjRJF4+YK#%8p+EJQw(O;1$3&;H^M(Tj7(yMZnd-#Xwf|M3)2q2D}3J z58yk2+fykDz@vcg23`cb8n_sE9q=o__W*wYTn79da5-=j@Ot1dv>kf0unq7=U=8pl z;1R%EfhPms2ZUGA`+@K#x(!I2(FcLhq7MOY2Yv*2H*f{83;1#14}f<7e+9e~_%iS= z;BfTWy}*Nj_W_w+5Zw<v1NaHx3?N#(&<y+xa31ipz$<~D1Kt2cw--JF`~vWP;Df*~ z1HTCTHt=EKFMwYHZUBB6_&o3t;2!8J(pWeM_$crw;A-G;z^?<R0Urm>1Fi*L4*Uji z8Sn|<M}gl0J`SWkDLf7Q4sZkTDd0bV-v#~?_<i6I>Iu9ki~{}-@O0o$fNj8^0pAV$ zIq)OEbwKH{Ujn;xd+tsB7|m}teyQtq?&=-eXSb&Yrp)artU79?UK&l>-)PGMO}#9m z?Sg!*a<0&v$GUT8cEPswVqJ;ru*5mo?REfeM4!nOY`-w3ty*1*I*SquonC{Ubk>c@ z@Aqh4GcOixtxh(iIM~Lw=R4lP%&1G}B((fcO%I?8Ovk}TQXfa6j<KjNirV~sYxA9t z>P-SnCHzpF4^Oc1lIxjFjvX;P;-&bL7HNmJB+xkh+iKL<Hi4b%u*<+~eegHHp5IeX zp9xRV8Lk1AQqJzu@jIT?^7|#fyE5~qicZbd%uAblTQUbTJ0({EY^HM<rBkC<dZlNI zq}B@S48=U5$%bZyOqn&ywT<-&=>)e~+4j*;8aTV=05n5{D{eCV>!&v@YMXO;Q>0jP zJWib*JA}<#Qu7(*agHzXMJtmvWoND@?nT8Gul5G2q234h7GN##t-yVOmjK@kR9f~2 zUJE<`sJU5cP`?E{2>4Ur!9el-5a9m6V<}6kJi_ecO`|>MpV~Nr4@YTQxZ=5z2;eIZ zk@CbFj{ijR!#})UiOhQ!3WDYwPVub*cC5)YtUii3-sZ$hg<*mgi;^}Z$%@js(8TjI z_}%&1iBgW}ORrdzBxo5?Qc<Nu$rZSUc9pC6QrcDAG&5n_t~XIEdT&?Yp}^gM#{$t% zg~`C(fy(P1Ko#FHq4<Q^MkPjj+CMEj3v;^4YYZX6=*485n5m(QI-W&x7!-i(`9)Go zEej8nFQTAZ%C&{<WJXZ7qg(O4J1?k(_q)uDUc^WS22?jA8F4)LG&;IQ#NV3SIbpPq z`wS58VX@d1ay=pWvITp};g&oFnJfoMNT56+1Wg{J8<QC1J;^VZ?lkY`Eg@UpVF$Th z11j~>n9h4^Q9-IRk4jyf=<tcfNb&TB)vBQ8OIZST>NQf0onW&Zb|aYiO&$UJtLv|* zO1^Vnh0}DLB@UDC<5q{A3bx2$@_pRmFhV*7`vUNm%w!6+fCodL3w(7)5WC#;y6l== zEimk6jayd77A-L8=ADcVo*sX@2*%x)7O1<Df4?SFGbIX;zT!v?)_qam;(Gsf+_%V1 zl2Cp%iF^yf#gil^Q$wUprU2!=k|i%c71n9tYrr#szX6^F)IJ)r=ywL54HVz7UY$kt zIAQL{Oj_;HqWZTnxbhhg(irbRdQ9O9v!hClCP^}y_+d01$7nQJP!Bn4Nfwl_?yRK( z@mP(p!Cwuun#^`L(XNFUrI9WmWY9?H5|NpgmIL~Uc4I(w<(J=LQ@N$0pxO6u#MbH^ zRDgrrkL8|Qy{AfRn1)F8K=oI-ac|qCxY>$%g}#uDd7OJ;NsWU<RL6aYS<~(G4aKYn zdiyqDDrQZ$%R}PNrrYU8m!{hZUuqgLj?>M!+kpvnikH#rWi=}Z>>|{pJ5g<1e0v{; zf$`J~c*R=a1qPHENJ?>O!-Kr3bSizN92m9aeWEY-?qTxv6tO70IHmBq5B#o&C?~XF zez~(BQ{TEl@jRpViAVC4{;uvrJkxwUf{JHaQJRTIq~)<6-j&s;B|lP(?xQ@JmhgJv z_#|kaA$Lj0!o6L~py)g6XtfyfYTY&=Y0Qz9tc@m%zBRFKPuzev2-x7e8Uw5ri_Rwf z@s`hl8{o4?)(ZI{C4Jh0_!r}+v?wV?CDAg^Fn?X1rYX)5d5^O#Zf;Vt;O1zTlcZF1 zAGkT48<mQnSiaQ3)c1Ji1jtQM6sFYN0CZ8@pu5}RJEhGc*p%;l(sRb=>2anewh*vk z_4%Z0l55L80Cu4B)_no&6i540piLz7c=xn9U{`_FyKwT}ALO2X6YNlj{Q>M$_jFr4 zCq_FQ%xEWq*&7XDW8E7qVAlSAO5t3q`v91=zYl|1`}+g1(@~05(I&9-+&AQlKht3c zgIP+C30NbTrQjMcOTnFBhq&*4E?|#?T`)&6KM8i<SYdIC{Z;bwgG`J4Q$ooP_I=<l zlC==&7Te(i>>g!X^udVJujUQiE{Q|w6*u{+52^LMJJRG!?B>!`)9rGTBO4l9XGc5m zKoaO5Xo94pr~6-0RQL1a(ggEqz>6&&H=k1GL~TN|iI?g3r9P%o@LcMsEe58}4z-Tj za5qnVm4!;2o3cP|(~JI6`N;wq&HXY@Yr=v!1$-88G0B__d=F4QKPCHO;7h<ufGk&Y zK0hU=mHRt^^6@<aTnN;t(WSswfb!+-%=g{}+z(g))&Z{qJ_3|)??t{lg1DdUhvhOD zLh%|4TE(W%|4;nr%f!&`_%R;2kqoQvnYzqZ_}{UuK*{9bzDyeZ|A`-cnNZptKlVf@ zBp*o=<)q}lT0Rc%gQxlbCw?5+2Y#q0IRz`pdXmDbqqAvmjHX2=M!Pl8Sghq~UkWr? zLKaSAZ1(Omfp!aR-NUZOd7H;rwoUtXy_=SNugBOr9m8sqqpk87J56B2ABfd8QX?`B zV<)xYjK4YBGalo>=*?+29c{hGy6e>@=CJi@%TH+zCbS<ZC=;sl>M>-|x^CNc+@%|O zZp)X#Q8TK$jX!?VmSVX#=@%|v(fgZym@-We>p}UHtJiK;?Sz2Ik75?FEPKPA3D`dZ z=C`A!zcjit+6xQi%4GM2n+bJ6#`@h38b#u^IDhk-K<o<srers`ljbgHY@aiKcKrfq z$IQ~5wqsb_vS2>L*$o%5U$2wiIErEzJ8Y%FE;|~D+br1uP8MA*6<lc=y|s1Mh3mT7 zFEo5F*1k!;FecFR%xItVn3tk+<rf{De@HL0?&eC(j@<Lngc-L$&7RJw{EHbXfCDOE z#>@o^FPhubPj1{;%#AEFl#K3}acf|PFk^<%#0;Z(f#_+6ijHwndmnave+O}9*S5X| z+OGVL;rGV4tXP7IXA@BwKVB}*WIvqo<7YL_ncHN0E=v+huUJlUJo+C0QgV{zjK00H zx>!suK;oq!NA4Yqi7-3*z-TIWqXo|7$`7H0d8lr9q=xrSBd(+~c@2~)nd*ejbo{6V z?pcN(6WZFETHEI=m>(aLAcib#ZEBd;)YjHG+jb1d@p9=Ea|V?et=PSYGo?GXC>>G{ zXt;19PtI4N(*tjWvEGC*MqA;rP=$JynjwAJ&14C2o|fTKT58@@hD)VV)6SlVmo>cB z(sPlQo;L&z39~bcj3!<gt#}k}tVC!_9tIyOL%9s<<RIbTaYMvUX-p*V8X5>W8^}QR zG*aw_dg(w%hoG|)5qmF`>>*iaL6a?b8oz&R%Rjq9l}j}Cr1|Ylt@9h_p1E-TL>*=% zww^S%k!m@MTIiIugsJq3MXioUf1-M)Dq*RpDLtC!kruT-ct(Db+?ci&W?R1)O?umC zy;VauK&eqGKOp65BkIm?)Q{ca24k)S<}-43I5cS|ER<-+zQ`GDX_((QudmfGqoCX_ zIXS)+U;2JlLrwOq(dLlG8ez6QztQB}Fk0WIIK+bGrzC`1BrZ3(^BaCJ%}HRLlR%R= zsfkn2Y*o>*V7oX>W20v{EN1O@ptNLI+Xzic?tFgZ#bdh$!+|03^c!FIE}p54ujO>g zlZ+j<k;FFGZaeZW)k9Q`@skU}h;TY~<tMu}Ide1J1c1|k%IE1oH7@mV$BIrEmTaJj zwMKJAw=}&&RM}Q$!b7SyDxNxd)A4Z^w>m18;=*_mO13aghPDsC3H(;GpM$>!xiE5Z zyhSk96=G(pFh;}oagbX0!S@rIou99cyG%)_RZka$@{%ox78tMmy&b4Lw)%oNGZcg{ z+l<p_DiWiWANcBcu1*?zG{I6DyIvE0nxpm|C#*VqbJU3+iJ(kk`&^F~vN*|&O*3bR zv5e`9m{J7T@G_AVKN;2WKM8HJ)_vJDqj=sBi`rO!HR{^W`%ukpi2+sCPa3jt%p9^R z%bcU>s^DWc(%eWblCXGw(W_m$D}HezPoe7#N!T=-f0RfV4{DX;+Nk|71!z_PLd9bq zECFP8LHNArmavUmZn%Q|qVk=?NVsNZ)!96y-LH`<Q5~F1c~nJ@ftga-0WtprC0`XC z3HE!3od{-6F9h59YCWyu4R!bxDl6q0v^aog7Xi;217g=8OL<)!ZxM{8ydG*w%B5YV zLHZnmgp}8}w>mMO4k;z(QcTSW$!0UDg5(n7>GPP#l+16EMBK}dOaAq-K>v+%TKI@) zwF&KP(ZcK|)u;l$_!8e#quv0a-4oBG28owbfoi1?cQ?s}36+JJ+@A-W54-@VbTj~; z1~vjU$@e1Q@xU3tbAU5}=L4C#UQqeW21->*cbTdbX4`WcZ8V{bHrZn%qxyt~Y>w%J zi6!wgld2yr-&&GnE#Df4spWgZVO3xf!)N$i)<es8OiwM}BAYp9{`mAPI{%>Lq?(wn z-7G6;0t<9kQ`0!|q<O3(_1pwz6>lT&WfgCCE#Nock`=2ko5^6b7l_4Z|31b0D&Nd1 z-e(h94~q8@AF3C{i;zvvFRyYFKF4l6tVH>Kca!uip-S~{N7s-(Dc~c!QNV5?tk?gE z0?vPT6FRtEI{5J}{=ZsI2hXEuOb45I?@I03;54sl?s|u5V!l1Cf)x_^Iw)C@*A6Gr z7W05-y!Ikr$EQlKv<gm%e5`_Z8Eh3S*^uhvidC@xMv)5kv?3Lp)xd6tm_g9MQb*Fj z2T=~vz$XKxfg6F+z_WnTz$&L$152S<RTWkpX;!e&cJf$tG&Rts1zMl`9vBe$XyHgr zVa$nH8+UVck+r50X@A5~eDW-6J*UT<HK@tWXApk16U12jJ_qG38I9Wnt(IQ{zuUIq zpIxruPwQ1T5xGyQQ!R2GvG_LC#;4={gKxQ$X1bn`exp?ESj~!?Vkw9oM(E0Ko~ATs z_w&rLf2Z=X2T*z0)9>dg!^nzASatMio*7NtFxuKcQwP9k{V$?jT+vuLeQ~rjm+uv3 z%I9>x^<Yu?+yy1;1jKFP$_M9LbWIQC6Sr>_6_KxBeJG-nw~o6SsY%{rNmG0&o!K&> z3b`_w1XTJ@@lG-+N-Gm#wxyuax(H>ol&^i%gLNYk-}0>lxiBNdB+mJkM*(lxo_}_g zaofmE<ED6?+0=sDrl}QvEofcT*g6xJYD3ffMtsfYLX9IShOweVHlv?0(XhySQ{tmg zy4DXXcHg{pr0?j435)e^!r~_hD{N%6(qq9>NSz+dfWxb=Ude={xH8{NsGbHK_N&0h z9uGLoYUMC)9H_7LfWuNR2-gQ6yD;;y8%^9WT1pV|52-nR_0>^WB$W*~99RJ}!hl16 zxY3URhnN}f3(OE^%rKgmVYIq)^UIMZO-vJ*e092CC$)EUre=(UHiX|6{I1xRe|9<b zKD%jtQ|p`=4Kw_y-@S}5m38eX{_H-MA3^o%n=BnK=(`{Ds#xckTeTNf?fOebTTCdU zrAj*y^#^$T&P>MC;Tq0Q33z5l{@GQo$~U(*HO`#8U`FHIW5Q$Ufn@9iWw4+XW#F8; z97x}koEk)TVRn;k(HeiF7^XGCakM}wjqnm7bE(iub1ganJ0J`k+{~<|{kh+YSB*Ks zsw1^YMtjm@Me2YGknl$#Zq4vV3QGLhir+VT<WJj-1uYz#O*hvL2_4{EJb$EUMST0h z9zF6+dCBr^8-K3YgL}t(6J~BIqdm)8MoS4*5#Jso#PvP!?U8>g-zwtRL%SDotaRj{ zC!S3WJQG$O{S-bJZJo#ZFKa9M&9k<4>ghapENyAG-kG1-*>{d;^ECTjNB7vRh;!LG z+7sWtvR5o?!c5kTCRsCDcd~XTA?EcUYtQ$UZ$X76V^PTf6wUX7*2^lAq$_d$_Mo$R z;zv`^S;DHLRpilVU-nq{a-=qGVGsQH{Q&sU-Pl}3d};1KUm62ngjGjf<ke_vJSM)R z$1iX<mkx1i(1H$K=s(zjw%#MB?q4#_R8u2E;Amps%3)PtFY;T-FY9p7++ED>Xd=I} z$MDat!EyCc4;#V}dwm=QP5FFfW2i=sjZ+0wdb7T>%SPCG!pnim#}z=eqEpGewW7l8 zWFDif^-qIDc031fyIb8kOcS1pM@8kMX{I<6Kl=4hre#F<NN9569L#UUcKoxeOr<@0 z{+xDMA(Q5{%*Dn~2%W|<qp6{-y>Z4Rj(55E{UR7!9Ac7=rbyM^lCwmV9-T5X6bMJ$ z^)&XF(#SG_g3|dzpqQtArZG>L4JaG!UjH;OPdySXJ4|d4Ilqt1FauL3bjvO*!;F{( z<Hyf|3B8z~@<mA*JzkvStp3(F<;qFhSj?nz8JtFywhRiZj+PS6Xv;h{fDASaRtCRW zc?Q4WGk9LepfJmz(Ud`>`39;-@$cwbTrB)_NTLF^LL&U{fs#F5NrN2{tb_QCE5i;a z?(=6YpuFeLXl>GQN)0nLd7{Bd{|vVheV1sP(K#Y0z0z`jbFsx(dWeqFA~{G4KKoWV z!DsbBL23M|7yOmM9uig^t>Br_?(|rYi=HO!bk^aizOD+l96q?tEo-jJ=R3LUSd*$I zDu=T()#P|+Vw<L@9NZ1t;weqNFisVu^okjm<I&5-hGVw+C@tCQbDC$91i-3~Fk_R^ z#3rMq%%9G>?Gp7+PFE_i!}+O;^3SAiDp_#z+Y$q(y9Ql?G_z@OA2mmIwoNwgN>6sO z%^%5_bmOOk=_kx|qtT=rjaJ5G*rFz87ea)A@MSdxZcB~@8pX~nTuYIh$y%}ot}Xqs z05A>go%IT!@s8;dFgIA;r$d6q+KXE4rU*K8NRWzotE*L?r-PkH^{$GRfc@*u!ae}@ zq{FJfUgS3fb-F4ewx5807{9yt&Dn{6b~!uZb+WbnocWp&=)|KXPG1oW%eSDWHk?vh zqayGp1)bA4w;NBic#u6NXa{=q$A}ITZ*~HTha34lo>{kqs_%Z?!Rv~N6)#PSRBi4? zicDn)tBy1)+-SRatU77|`_h35*X}W|ZJmjnJ|f6VvP~qH<!VAYaVdj?C6({0=hhKI z^=}+7RsUWPnMKPhfPVS)ZJ@gH%Qb6*Dpn`VRk6jYgDCRU;Tu|}s#>oFqz-bw(%r{9 zR0ortC#!r&2f6R^A!VV+xL<75lP7Ea6AQ7--TQ~Ah5Yh(G=Ac!2ba~1;PnZs_(vqJ zn~+W*YrPBZNt(zPo^nJFxqpUxjaKCHoyj31BD&9#z1zTTeYvpw@{}gJK|E0=EQti( zq##$VSqErXJ(vFzYNSncq{o!Kgmne%XJBu2PoD#O+Uc4%5Z8D|+e3MCm<G?j=bmaW z1PfOHJKe=s#k;CmzvkDP(N0>SAuXr%{gcOl*flu4oRnT!7sp%#W4$6-OKqW|Q82M= z+x=v<`<);(Sw*GULfB+BSB^Vr2PoRKCpcg0pv9N+sGiX<2-3v5{){Pj3h*yLef_V% ztqI3&X9e-%Z$R-(n(3;HHlkH`+Gsam>atZ(19S_jsg^RXT#r~8mrHMt+VizYZ(o)m z!np4E`)^NgUzP~=klug0JRIhl>e`g-rO<FDglk!jMn71~BCI-+@-f;g9;=R~Bkx~! zEz3-gRlCmc4H*9;qwVMx3&TGH_BTgc<1t#Lq3DgVu2u3_`BtfOd7=ZYVR9yLN!#V! zHr)s5EI!7eY%I$Q<jwT0MZ{DjuM3X@GyT{YXx9c>`6jZviJG(s^=g`?B^zADvt;7A znVoMS?#NH2WD6xXQ8UbDWZJ^?Xw)^bj@&r7o0}QWu*}J@wKgk$!S*O&8BzFfGMTeh zDe<2tifL}fPnPE5CS2`g+YSz+Ic!5ubIE=dYUZYgIhb*Fyn`*i)#u%W%M(bs?bme{ zm`$I&80-SqDt!oSn!~;ZW}C(RFkq5I+cs_+r0#4NZg;TaUBCW9sBD`xmQV*ke>3oo zj72?2>daNJI=)eQ#l6IO9;Mo>cn*-1mv4;Jj7{g(lak3C%@Dh7#!g>2FJ(n5SbQnp zYR5)GnCXc>r=1cnegV`(?RCJDfxiSQ%&&m+fzJZ(2CfIH=5GLMLhSE>djX#Vil6Mh z>^gF?FidX<vq_Ui8%-#qmDrLU&mlT}*jY?_lN3lq@Z7doWyPYTLg^paG%x>dGO$^H zJgT!LD;S;_v-TELzwy>&;*{B3<xZBgPTISn6?f7$Lb*L-2HgnlV1AwaMrO>Qwx;%E zKs4!WpVi(<_uIx==CX3C`!FSwEX#D=EjG7(R?2FcPI5}G*lLn&T!r5Dj!j8m0aCU% zrvCd_e(|NeK7|;euY<1>v%zhbg@_cygL{B#o}cEoGGqQooJaFhe?4`X`SYJ)R>jtm zI$aMTDJJ5=s+}*?XxaeFXqt=m71uOg;IZ<}TbXlNP3XFtf!fknkB53#?w|`gS8Vq~ zx~0^8GihE9>wl=u<dU@<)Wp;tS-j>diz=7ZAS#;qPkbdxyFJb$_*&-J*tT`&*9yA> z+T)H^1t!_}6~B&5J^BK)qxgM>-|v#4Dc7ASw=>!aY$BaZBFGM0hI%p;UsrL^Y)w&J zD81sEQsB|g_X;&didmd|d_SkFZKpX^pW7g=bm1DhcV;M$nu?dMKR-ilPS8hy%DdFD zc=RB@n=<vMM|1JDVp7F5#Lg6(O4(Z-5oYG2(bR|-t)80kh^r&&h6*cRM>>~_=O%86 zS!OcT7jOG8^=OOz?P~cnVwm{bKL}+;Mkv#RO&>4gI8JnWJknx=O)<Tpb>aN91AZ3k z7oCBS<71^)Y#@x~(JyH{)8kHk8hH9Oj$}Eyp9LNa{Ec@k4+(`KtlEuQ8tnl>87(jp z)2_@=DXOE+l>oLv;mU<$q)UvzMsd}eJ`0bdjU(cTw4)xB*Tc<|B`0o`dsTEem?oVi zTwewy>#o=Kw93U)e%n+quPmNqH>Ztdkn<g%#mUku=5rm7GRyh1O`g)C1?=f6`(7s3 zDSbBrmByQZY8GxFXD0H(%zbaPJN;8H-sk4K-R(JMYHI2K(T^_NDdBd$Pwdv}d0QN! zX>AF+my?ilGD1EBnzHjYe%n>R?l6t7B7SG)@A1tn%axv<Sgv%&EPsDsxiA|wFxtI@ zGFlMqoCJFW^x&&ZHXB~+WE*+SHLTu;AjhH06SggaQkP+y>X+EYccXpF=mxbs^{veO zYHh!4{P;_nF6(2(|IO~j6+g=!efJrDX^H%$m&jiMm7ZUFiM*H=!z5BzwcBCLXi}&~ z^X#F0AFW<wGNN=JL9!hvYC;%r?%IJHy9USU$5HLG+nXJm;)si3TyIB1&dh0ml4X?A znw{40)!`fq0KE%13iv2cRd*6P$`~cgCX^U$jei=dZYiTaN02Kr(vfCVK4Z=l^)&so z^3n-e@qF{FX%o}6&Z;7grIwx86!U>F?D4=bVK$r6XivfoqlJpsO^ZUG%$@O;UVh=u zL9}+onWgH~`DR3uZ!|X{sh01AGBLyWDbQ3cC-HmVHvF^8Nobkn7AX#P-&V-#t0SJG z1sBG{5~<Vov(xmq@Xhi_pwhLaZ<aTb8<RR=wu;_pGAE5zTs>3M^xs90lQWr5OWluq z9PqVXV}%m*PdaWTHc5_j#FxImVp#FqkgdEfIu?y;nH6T4HJUPOv{Yt`=Dxg_5ZRq1 zqy$uzx8nCok9qBWaC`2Y`L<gEag@2z`X)QJ?Fv4ZdP(WY4sJgmnR@wD$h$CWri`X$ z%4kJ-PpRRn2ysfLoYQ$9(_P!s*xDXXYEV8K<}aLgQB!Ll)$8|inW8S6-|Y4f^*+BN zLc1f(wjeRuhsll6Qu)mf%VRtyEzh+Cs?TIuC9L9>h}~Ky%dyEletfYhK6g%AyQbmy zb$h3B^SyF>Grp7#&G(YE8z<u}zCJ&P<zON%%=V@++6qD&&1bti1CX&$%#>gSCfkOv z-i$u9KiBGDu%*sjRR#8<|2>>xnG~i}p{(x7LhN#?@O3iuJ+E<bgFEm-laj{9DJ+6< zC9H$`FS>|D3aCW=D$m*Z0{^5-t?Y9uoLesbDo~C7UBQhbtlI5+YP2mWU89BK>c)61 z-tdB^FxrNHNfT90bCC&GF15f1cjlj6RxanZHn!LVPg^Vy=6bq$+s=7W#I#)edJ&A7 zCYC;aP=;yQc3<gPMZHQ}ls7W_Up%`BsC3>86wh`dcP8S(Op_T+n#^dG^Xyf$M8dOj zos=}s*7codXodc;>@KQI&vI4?&xQuIAk27XH1W)6mGf+SiY4KhV#=OzlIGd7edk&5 zot-%U(mAaQ=4%#V;%Vy-JJ%Ppb3pP(uD$$$*~-S99IZ?8=V+Dl@@U>mczG8w&Clr4 zG%wfpgO}a-AuFuPHAf7lTpsWECKVyfcxg28(rA_Qawg4G!plz+)1n@D`BFc5+0!W^ z6*BeiEK>&}pUvdn<Wrc<k2l&{IAOHPdHT~L{n(p){<NPwoy5%HfmQU2iz_-g9tbbj zk!$0nFq2QCbrG}CD(B^rBD-k~F)i;wKF`V8P2IQ8iCxv8!!5fX)!YBl1#@N=F<O23 z3Z?d%@kOd&Abgf3X?zw|?Yv7y`zhQpTIGD6U!+s-CZ+{F@c9q@klDoKpQ>dY65sx` zPECVZ|67Aj6=pJPv@SScw90vTXpzi*hnQ~bftP>nJ1?Eg7Wt#(BPn%8^}IT;AL6?{ z!}Nj3?~y@%h1rgFMq3Z3j8-|%pDVKC?;xhRJ@EX{#Btu69UttgM1E6a_!X*w2N|MD zTdD)$;|syI7iOysjrL`7Z?ww!_{O5P>vm$gxCcHy-FMjye3WgKEH&?s3i$nD#atX% zyR}<rw}crVjV3-Ct#UptE#l+Hh^e^;K0ec5KKc=h{%~>MOzS@oSzH!)D2%<@$*<8? zc`P{OZ4ar$dvpZ>vR>g)(1!DS1Hbd$$UnPWRn7FUGc9o(v>3+y>(P)ulj&b)v#oDu zyVq@ajFg^spwhI^dyuvcRZy7i{A{#a2xT-cI;(7}j#rOQa(+2sPRIzwHqi7XrF3Su zIafcq;*57@%Dcqa)3<xdxzZHp{9hEa86m<f=SEY`jh4yzZb{B>B}{hDnsm;ay3Kje zBISF#6*J|DEK>%=mF<E#A*?$3B>6PjN{@wV5X(b~D>o75{2t_CR_|PqZq3Y}shA~O zWZL=xab$eph%np4#c1M<(YlwD4-sZ&4;*Rk8%Mh9eOAnx_heY}66qVuFTN_NK{G<v zQ<zQiFq)L7(YohMZ?ZC@Z=A{WAuDFcsoCl?5RUvL=oDclD@K#77%k?=*>(*}bjoK5 zb9oQ4a$%-xn6x7U=m}QLu({)VGhHf?p^jim3$tNeqdf^Xj23guw?CUF9J`q?*&Va= z_2K-a>u2{aLy1kC^yw<*$!UXFtL6oLBg|yTXp$kL#T=Ps*YJcRGWf3UL5AjZ%aOt9 znN`fX?-a9cAhqw1AWOpRh-sre4Ofg7bI!}ssDyJj5azrdICo5@!<E#&(4r@@<oj0@ zb7R^eMU`tH+}Ic_J7G2mV6=P5snIgr7@Bb7y@bgQfTwF#W4Ce?xS^Ij)k~_F7vDUr zh!>?@B&DaX*51xRGYd0r7){(TT80}bJ+q83*-3+GZd}wyZp3|^ig~eRaVs?txwtlP zLYPe&G}@iy(rBI&-R>w+ItZzrLgIwKiI}o_IX$2;raOLVzZ6bJ8t6!*7GTP%nMfhA z!ev5ti@lYmtOWgyo{<{bzXMUg(La1oNyDtxUl3+`*=W+sMys4}>SrW;yOEf(_H&wV zhgZlq^|C7PmBnm3fjJ{-ww2h=mGJG=AaBBqZ$=Z}j8-|{)F(;!rkF0x=<YP%##P9- zpu@`d(fYyCY2-a&X}11W!cPsunj8wVnS(}K0~d@|IX~5pN%(mmF}3x;&++}`r`m)} z@2(%rTsxTZsi9cor!eEE(Zo-qRnAZKeiD9uj+oxj13&8q!q4vdhW%jd2<)arN=sYZ zO5{|-vc^|oX4xC<Nw{IO%K553RKnNZ<n)k%@HNx3><2rCGs!Z|&H?FB4apimg_)ch zO>%0q%K51tR>IG<#B@^+a(aGuJ<x92?E&;l`@!xu*E5Y<`+?|K4cQv6h1qtRMq3Am zj8-|X)ptvHeLpd^_rU98`zyOiFC^*F_Jf;0D{8R@rVBJQYy1>uvTHQSuF)#zr+Rb= zKfg~*AL)UgCsfGK!RZh8gYgF*P^2{mBF7rWHNFe0b}QP9_8i<YTIGCK-!b9)J;c=0 zM6hw)^_#oV8Nv2S<hb(D%Gi?KG<dw!@T~Dtm<_ZWtqTqqt#V$f=b7+Q6K#5$w6K4L zG8}j*yDQZf?}t=wy?c>V4on}sF|=jEjF(0eFO60?FV%NVc&P#O?Do9rKEXi);$_^E z?*}LM-J^(;1F7E{qBWTmW&^)QlOND%fsb`sjV7;XYBgHD_BBZF#}Uu})(UMMc9z?0 zkvpqI8#+WA-(ag_UR~?A?9h5|x4Q-wUSvDg9t@^gxk*7h0wvqfH9?at(ZKKS!QL06 zXhuUFUnsre;naE_r51K+VRa4?cAE^h;{7egL5we@UrW8JfctymH-?+z;0Yj>Nc2sh z^7kZAVNMMSL>Q-h2ih|p3qx!DovdHYbl)nsJA@|rCPlD}4`lsUM?+H);8}{s?aV*B zT(jqwcB6r_i^0lz6y$0ty<#5M@u=W>Y~c*+tjsGd(=rpnPw<oIC;CbBC;CbBTaz=B zd12<iGTNQQVzeOh<rjkWw&o${3^gao4pS+=$nR_XIx{9lnvE07voUDlvfhL&hkFiP z>dxt%`R_+Jq^InZbVDj(|Nd~q*e}fH?iuZ;aK~r^WdBKl{hAV-NO8HbjWqkG^um5M zg2m2<Zh2oCv_FjByqNI=k^1_;c40QQVKk``qYaSl3sB;wJTz-KVf(lF!25fU`Z;}I zdpACc9{JzRJN+q$Jl5}^)qu<3j@1BRHv7+L>*18q23QooLvXApH0d}gir#9#0evWn zVz)+*B~To+Ka4-Yc|Zn5@Ba}_7~6$e4KSK&fYAoX_RE~Qk>1z5*@W$~V6N?<23*h! z+moJ5=#h8J_cCGo!}y(O8wX9|uY?=MdSPa{7)_Ro(FVx+I@gyM>ot8gVf`rV&S!dH z{X5IEelR-k*&-T@IPGYYA_KMe_Ir-&#D+>VpyvBDxNAiztU9WJzecO|*no}Dzhd2* z^3n|6q$o9y@~R$+a`%j*AiKX%QZvjSkS(8JIAsI&r~Vv4S20z82GVr@3oaPTg;hsS z!Uv;0<*@;?eDBa+>{irXJirIC$84o7rk%>yp1?_&L5bU-TZR`0>kqr@cONu%9~jyR zVK(kyG%?<215{Qw2X<?Qa3bL=`9St;mNdKf><hcSXQ5|ick6!WU7O5u?uVdF1|r!X z3al1pYtM|f7ETzg7gn>|MqR$6Yed*Ai`|A;`JAPu-4YwO^e5(J_v_F`G&=OEDw+Ux zmcu52o$S=mxnKugoi46-=~+f0T>?$LVs-HM*p7d8g&HxTO<Nvwpkln!!94a;Y@BVI zI`q!`6~%I1>P6G{)u;~TN3z}ZMmDrin%H2ypme>-Z*Xy1V81Zi;KFFP5z1(R{oO1l zcOINBy2)$T>sz)Tkr-LLAJIFZoRnde90y7kv(clS%do0gD=_6H#i<<clwPsNKz#gO zu1F(5k)%Qlm%g9f58|B2d@a?1HNuQFMiXm{HW43J=Fs%AE;2S4!|I{uKe=Z5tJ@1R z!IO6^YTwdaV#GDJNHAfkJL!QvcO7RD=~~;)5O<q4y>)&wCci~jI`Jgs(Re4G7lZBV zXjNeHJA8%TsTuAsfu>|hi05gK2)mq-(r~gr2ePTPbwO)54YIfh>f%?5U|a<CP=B^V zD1z;Aj7^8s&JV}fiLI?OSaIl1dd@-e`_!D?IIoHAQI6XBFlf5g6GLj-nsG*T|CN3n zGpRhvJErS&rrN0NrvQ%!)&rHlGyD{sj+(e76;>TR#51FbLq>Z#&{U0#R;HxOI)>t{ z<S5zt%@*#JUv8yM!RO;L%vl*a6_ww(_r{uu6lT53noTb!`wi+K6@{a$*-c|S={dob z@I){x;kiDINgMJ(D3dc~eGN2~b%9@NwyY;DXmiKxHS|>2y=$hIiVIuipDFBQ52rj2 z<4b8%ISvON<B2ndSUJuFvRo``0=^YE3wQx=Hn0F}2CD4eLus0YB+Mp~8|?xAv^pwN zhX0Y;S|Ej0Y-!hhZB-{dyMN9SXmM>_lr6!tE@Q`-c|De29q*T3>B>5sJ-@ucI>5>* zJ=<GNy_}MhOkDv~O??MYHT9joL~jfwD$E8Zj3(|F?J19qbe?ddmD#7cY)#eBM18c- zDc?G$jyLYC{lHT-F|DdqA*~Xg#z!B(DUnpTFG9&4q235h#dSWv4{XCfyPR?@v!~a* z1()__0Bq-X^lG7=pg`UE+y}Ft&(>S3GNt$VIwaEWU#fq86v8&+mRdd4r{m<&UahLA zR1EQ@bZ7Sh+lL}iUiJklKX3L$qz%oj(g~}MKF>3wi6cgn#cVVcmeKlVQ6vUkhjutD zwJ4-qvZu?XEsF8m5x}lse95Aa19$xR`D$tUcCOg!QhPTS#|+dr)lzK6FaD&aeo8NW zY44at!tC%hqb>7KQ$4pH4J_LHtbt`#X%!KviSLaahsJ3mC|q!-X^9<j(N)Bbn<{6A zD!JHke_)3&V~5ei4x@SLh>x`1f(J*sHZRWTl~D4T_AR|wa&A^Tc4x~35g@`cSF9VU zDrrN;HDcLnqwlK?8wx~SxoZ-c9u9U2@D0FIJrmwd0IN2_%(67vZG<vf879;fF`+=v zNj)&(?O7&t+sIeIg;WbKF7$;77kVZ%cqUBuOt>yEL6|YYXkvoV$}nM45fjv2WV>H! zNw_r2gl^i&3RsY8Bok{Utw763f)<QQ5-#;jSmc>-Ltuh1V}jAd1fvCIIa-77RnSv| z@6L$Kb&T6=;TDfq$q^TA+#CcLje0P9%;2?9vs=`?1=_CsWOwb-je<zrH>imP^Jg`- zvvB3IhFOhs<~GfADpWP3^or|Gjz{0)U&<L)(i2lUvOO_IzMaz8GAIpUwnd%MR`8b5 z0+-6R_3H^2Ipg}M&Dz}zgu2d1^Ak4i=^kC(wXhn?-599tpdANk@@o_*Y5I2~n!nK0 zRYkJI4O59o{i=U^Vx~gQf+p@x=eMGFBVhi5_J*bfvm8s)BE{SO5=*!7cEAN&J3HXC zruN2k4=MekzMpN(&qel>rfI<G!1KH;{+WE4RuX2iXf(;9(L9%7$mq^G+T=Lz*AQY# zChwAo;rzDZcMLrPe}$$eaj}Mzs%<0k1q<6}Ebwh}{8llH1xufJfMz8vSS6CBK;x>5 zTj%q<`(sRSWeYROGTI8>GFs|L=Bu6)S=CV1P^gB>YF0Y39r)H+*V3_W2tKGSooH=% z6eevv%;5-AKF=|1s}ww(+-B$8Y?EKU%ssHTI(bV+$th+R;|OA0s8b9?@rEg+i!vl1 zAb<3P=C+eE&-gsXZBY#LH|r;Nej}z%?wrt^*NM`_fr{?Re3Xbex1=Z(5l_n>y|(Sh zqHHa7$L*v8>KLBsOGl7XF=fLoL-}_-|1!~0LERjpW&%YU56(R0`z;v~-*52;5%H8v z=^t1w_*!ZY{hsjJhiJ8<{9j+pcWlbFxsNQ)=_A`^pYt{c;OZY3la}65Gd8+(A1z_O zGQXcFoOo2*wu8MkHbkqy8^3G87gk&8eu{4@DwGw+6Xl1l&2vH#0kQG?sev6`?eYjf z@J1g`$7S*e3CE{gNSAKs5A2%?g(%0l&)Bn3SHD*oj3d_5{B?Q95n|V!`~2k2E`2cj zjkE|>QS@(`tXKSDHJQL0_f($7ao+9Z&b3Mq&r4$5a5$}0IyEG?t~tNoqp7sS`OIG@ zadd16>C`!k1(%_;7^wh=s3_FZ-a{d?ip$pkz2J_DDyaaede|!yrp2lEmGspvCHV&8 z&OFE_nZzg*iRnXGY(`n^8rX=mqy@l>OseeGZWe$1x(O}$<ta_G)SstPRDE@pq_lph zn4I9ag8PQm8jG-Y@8p2J4NP0mRxyd!S_(Vg@s1kN?t^C7*TL>_v}eFR?y!G?-S4oG z$c2U5HDCvW*&Ety_a*m@w}O4by-^6^J{rP(7HoxkiU-iAlr!R@(T;X2m_2<E>^T=7 zi}j-W+|#|$J9j(m)PUU%W~q7{%+mZXFiZ1(Rq-1~gITz#V7I$it`1K*iaQ$RXg>k7 ze7pc=`2cYi#1o_>yYJvu!_18^40sp*8Gn@wBww^}mfLLA#(YW~4B4R|w>Oq1p5k_B z<qV2N&gNJVM_&Zv)>aMA<%fmVR%VEFwz{3TBb*tseKZuK#4c&^ODPR5d6Q~^d-Btq z$fiYZ|J;m2W6Io_E$yu?a4rc9)dkkP%CQM~()=0D^)U{TcZd+J-XDV1Ay3CGJkj-D z=7#G29=i?qt26gM%-sLO-{0up-@@_|-q%^Ry5jf`%G~QPC0#f9_urLy{^891XEOIU zBMrLZ`2XtfZ}sujz+YW)`X*)WKj!b__rIRGe<c%sUx{HVzN7qo{QjAl`;JWb=l#9% zoAiuYe6AF;WO*s(pgcJ<J^ixCTuYY&Wm8`PJPG&?U^5V_y1=ujz~7gER{=NU-6g=| zfmoh}CLn#A!rOt@0VQ>~6AIq}E(iV(@Ot2maPUUpSl~^-lYln^88e8GmI4;B&ZRBP z1ET#3oxl$OKMMR1@NVFTfe!;e3VaN>0{A1~?ZAHmKMouPXYT;M8F(jff8brfDL|yK zFcpYaEL;ivByb3v`xJ0H;HQBH0Y3vg82CBhb-*tGKLmUbs7@dbw!-&-4*}UDI(ir= z9f5Du^_d>qE4Jo^RYyODcSifU$Eu@q;EU0uQ!U)AK)X25#7_%%d7xbrXzvNM_XXMq z1MTiWyFbt#477&>?Xf_6BG7&qXg?0L-v-+61MM$?_V+*=PFYx*t36g7?GR`?2io3& zhEvn?;D|sQA80298r~cq?wmk-YoN^vw2K4n(m=aB(5?xz_XOJe0_}r=c6XrNA7~E- z+QWhNSfD)-XzK!vvz2_BQ$4u+FsbjP6Njir7iBte@}H;^C#`<lcKoxeOed~*2m6-B zR@|%YO|5e-Z<^Vl;0>)!v)R_Z)sB>jBPxb*OEVgBc2E1#ac-qeyV_HWq8cC3O+(Dl zg7PdV&9?yQAVx3m6ITaeHaujs2mI6EhQ;0-o$pNX1(g(K_hwTH<Ie3$CB&{Wd^z*P z@#9+>+hK*B?i2?thUuIy+$FTJ!PS^c1=qK0$sDpC+|9=iwS4{<Mp!3anC(brG&P4t zOLb_wJ?oWjVd!IyT7ojgcui>P(xmTsMDJ(qrL)%)(D_xgCS+QEd3<W6>*6jvLj)Vj zrXyIBis2#UC4b2`Ud<1sAMljI)wsCq#WCsx)Q67s7Vgo;^EaONu=Zd{#S?$OHhjM} z6-}<_`*co1j?@bsw{%4EoROY7JG|g__-Ln68Fm^eH52jzFf)Z0fSCbY05kKB2FII$ z_kz8+r(#(RW^eom>@FAcPXq0bU>1vt)?(4zMf+|JOiq|&)M-yBi!=50&CvEB9(l6v zehtjUmWvu^Tq4Jxvlr|5Qt1`Tay^eS_Tn^1?fhbUQFa;i(Ot2fadhTB9<hp_)1nuJ z|AD{1ekZf@bYi?Ng%9;-x+B>?@knOK7Tiwt^sh!yL3~>S{2K7<z;6H_1AY^@7Wfk& zw8GzkPXKo&9-bA%>u&+2XC4pDuCVIpJAw9nk5xy%2((`Zn#$hZ{ZpX58fZiLg2g9! zuyET3+HQd+iLh|v0_~VUOR4@u>B}0pCnH2}fF|WOlHUu75S3AGQ=40x8fQ*kFr#s< z?YGkXgv<U;TUIBfWr1@RI+-I)Wv*D}q#I8{qI&cQDt}o8dgCxFz~<UmfeNdRUM8&3 zHhC;G6cuc3bJBk4iu(~_nw8=CfzafY<)hIOB-dZApXak5FLn*(FqLLCKCLaaHFw}w zL;C{9vRoWn5sX<j7V3uGU7bu$0WFyztn_8Kxml0UE6p2#O84)5CHPbDstU7xP>m*o z!)QJG>!q6QKrM5Q?lNK3!&S5pem2c=m7sTmZoF8HgPcgC^BwDR?oHg7G~sx0;#i7< zI7eG{0hj!6$?@RDFDM>-QG7s?a8TPWzg2FE!>QM(Xpe_B-C-w!ZE|}0Vz5s5V&}@* z!T`Dv(MvET(c<5Rl3f_^C1_$SMt}5|qyjo&82lP0d1+~oVt3Lac__VNX{qDUpY{$F zObYx2ANnzDlBDA&RUco<kJjdm08aMARjkER9_h>!4gylXg-O6K0Z#>f1vnr02=HUT zuL8x7M}g9`9dOnx9bwhd$et#S8tvIYTOVjkr()h+H@RlSx%sP}y8*J?`6|+sJAZ}9 zi~_a%OXkILd5xX>6`4WMmeuIFVvIyyELp)PyriZeO6M&eVo~@ocGxf{&M&LEmmoS1 ze5ryu8>uL|U?1HeQ^aZjt~VvKVYRq(0x7lgzNgT>RH>U99qniz2YcE{)~5ni1@<Dp zNBAwwC>%PBZk6X}fnQ06XG$DP{qiccENp8|BudFIz2eh~SMVrxvb>hvi%Tv1FcVH_ zPRZ0*Xz``=XHQDJbvT`7=<fq6U+)Jh|B7!(=3HW`sN3HWV>^A>x!wcZU7i{hGoa#= zh$Y)6QKBZ>!fdgO(Vp>7tE2sC*SpZlg!7nhnDVmk&(?9RD74?_m!IavsAElS!`oJm zAp#Q<7cQt_<hsntZWN!{>t37IuNSYJP9C-7E1*)baR{vG{C*Qg<R9HMMD-%4dQq<c z{F^i;e^h?-!cpq*yO%5`7i6+jw}q_-A-wyFC)JG*3Ddo5X?iSVtZEM#OhVHKan5`9 zy)%d?_JX@qsCDS7vecl-H!O4M7+?ZJ-ec{sZ*hXg^*upJhvT=d5+6bOcEFISV%BaH z8La>|#?d|u_C|-{4~l;0-jD*c#oIC~*E`zou-o1^7R=r_8O+`|AI#op2eUU~l_4dX zJ#_aLLaEwtmT>g_^34)<TGrJJ$t~vyRickwhx1Ty-i(v)SMAB$9myS5p7u1a;?arx zxH7BnC(T@p`WT*4A!%Kt{HR$P#fwYa>vZ(#NGp#g0u|@Uz(!ymxDbe!wV<%409ODf z1AhlR4XCjUe0+r=#CryC2jH2&y?|!{Cjid|E(V?h6d$JnRpqy&G_A@Dv)PVD`?7y( zt3-{a3S!{~T#Ioqc2kRoz9zNU@B7e?+UpcSz3i}!mk(68@cC3-)z}%sc0Fj0<l9L_ z-4H73*xI<F8m$0N4{<bA)WaR7US-Z<>PP<Gy(<B+aEE|dI0=b`I~Q!D3l~?)Dk#e` z?f4>S5?DFEe_p;)h7QAEZ5~i*Ri2+1jB!=2bEJ~0ypo*sUX@=WRJtOI2ic0e0y|NB zxgDq&?*KLe?*ytM-vv}fz8km#crQ>r^ZS5*27UtgSKz0B8k+nxP(A+70FMBE7AOV! zIiPs|08kbA0Ls`Zvasst`9M>ujW&kx7EXgmM*F{t+%F?xFe>tMp(3B_DyUjqqZPo; zb2L@t3mvA4e3HXdk^c}XvV~Jcws5M*7ETrU`J#&aFW$VShl>2$UMjMB{sY^FqS7k- z^Sw%1<CTuo&nj&0{MTzGK8y0TN-WGaJu}*Kl$_DFqg0Ki>TI<CtHl4YO8j!D#8>Vc zx5h>*P-Is*nkw-Uhp7_VW+ke`e-4${!l@ElI8|Z`r%L>nqDnj(O7=*zbZh*tK2+jv zHYmy3(4hra#qZ{wei_-jlB0}~{Q?Z4<1Jrc+Q|OzZ<((kV^*n!RY&sU8%^riX!7M7 zO?w#_?f)wEf2>mfI#lXEV=r1?*k}cc?5~cdO8s|-sZ!gvH>%XnhDvSWRH-eTDz$}E zrT$G(rS7d|{%#*Cb@84zJ=W#op#7@CyI|#Js_^rB44?|XzFX#(C~2$2!mMRBnp$R~ zsbw~rT4tlYhLw2OVD*!8`AfR+nyDK)6h9hHrG9z2d=%IHC;G|Bx08PIA44U+#+l7B zuZ>m!Tk2@4#5Pu<N^D~#s>CmZN^Id&i7lKev4vA5ezB+$Yy5m^59alsd#S|9(uDqw zTBba}eROxF236udvgW7$uWX6m9n5QC)fzaAjHceQ(Nu|zrb=wI0axPHM6U{#by<Jl zA=1GjfWHl9RW|RmtIDx2y1!N0M@5x>oj9(O1SR!+Q>f=t9j1D2v}?f5akP(vo#(JG zgMHg!Pl4IqT^qpu=4ks+=Jv)3VD`poVD?5Mn7wg1n7tAE$j*TBKbgA!L1^*?$>BRp zBOrFA$5RJm+$-DC4@R7}+gGK%_3aKQu?ePaQ&yR1Xi)Akt{#2oZbCr1yDpw)eQxEP z=d+1f&hsmPa-P2jDChazKsnF<0F?85DDla8J_0D`xjbWXp6>^g^IXFga-M4%wVdZF z%h-8-A~It}fw1c6Xr38OQ-qDy9B6X`ZNU1Z`ysHZ!PF!+DmEyZ#7Fh|(IiQN5>0aP zelqqo1U3X8lbQWSD?qDqG+7LrJ4{1hlX1OPxj6u~b=<F^o#tq}Q`+{1hQRC%$&$Sx z53aq@4rXt}nneA>cV{$-q)wVdLpP7@0%BKMlZ3u{Vny_4v$;yE{Lf0O{5}j1m$4uI zHw>5kttPJV!fa^FXzM8vqsc#GwCy~m5%OgEM-P)<WBcH#WIWdodUrouHheH^eBHpi z0X~ZVNH-w)c2cQ-<{EZY>ci=|S*12w0osv{rb>OZ!_*D1EeX{P__=#m!(|pu-2e-x zZh(bTH{cg8TwH<w!kh2PRN%COZdEVc06E)|weQ*1J=F8!VEyXD@3VVJd;MgtY~}5n z8}9Yphd-DSw&q$`b+nFhGTO5qtB$s$G>xWeY~fzR%KLwP_+*w$&U6ooBdNUWLgl^P zRZrRWMk|2b;b^M7_c%<I*EYCR<^5%-ycSNC*TSjtS~ykSUlmnejh1FlGEP_C$NExv zE8YmR(pLBQJxVI>y50ZRR@{$Jx>j+8*_l>GTSsXbP4>IdRE3R}nt7fd)&e=1f4+nl zPs`|Nt*05zkEuD)UEA@`uAp!e!>V}EQETJ;nG5DQe@pyMF^ng%j)tt27O7d{61Q9` zw9=r(MI<&XvKdad1Di4$5!@HTs@)_^qp1oQEtTcYf_fZDmaikwnLT9r&Wf|#(ALys z8?g{|nJb;|Ut%w%@=fTzWPPa5`sN|)!tCS>quohNMk`j+(>1YBeeN*7Ry#8=r<Pp^ zoX(kQlLTAVE8%|ePcGcxtXXU~Oo)xins3{&W_rWwalEn*38`{@*o_S9RKZ$C+Z}cR z*dH8L1*VChUHq=gu>KNgGU=Q6{j?XQGFTI6S}$TToUI3&&Sy)nxWrm`l$t%G>D4N( zv8gwdes#o$0x4T}Jx_5dPk#g|UoZIL+ZSG01r}x#OO5snp^TQ6+`5`XY_B0iPkX!^ zw*vv}DpON4d%S4bNW-kY%51;(c%f_OYU|E4E0$+rw#SRnR*+hwrShzW1WBfs5G1Rf zq?V+fG;Q$6$}&B>X>lLbQzpyVI;u2`t1ebgQ+<ZF4H*_@>d9zQPe%JU*U`NysH5^o zWfw%G>*&w^U3Ii+zRBlw5>$HiP(w|n_EtwX`8xVHUq}D$>*$+99TjGE)M%=sMw`q6 zhFr-;msdTf7EAh8VjJ}BvYMR8k1wf_56mrT=)9$-&IMgoGY+_3+4CLTNraJl9xL_C zZbj13V9ml>w8~*AVe`wExTOrb@6tUH*18DeeQxzcEq%VzL+%&5`&(+X{$4g_v-_?> z7W@+nvCQ3vhf7_GZV6kcC^zBZ4gMPr64PxyCWFgdYD3@^KCpuXzSjq~q%U(>34vGo zhZcy<X1I3`-TDpp5chyF*U?$CVLQ0EyA5|J2z**A{_wGNg52w=?qyo&euN<RIe%a0 z@23gER~3-HqXKg=EAT4!FjaaYcKJ8r?C6W(jkWF}$q^**Q$Da2#xj?j5cnDY&;l*1 z(S3NhP7m3|s@4TcF+kC-cSH}lf5F|~;vs>#4>4`>fgL1p<gyxz(z2Rq>A)lWLkqO5 zM)wvI%vq(FR4K$M@xkq)1Jm6X%9N85@85>?ikk0FccGU#QFae+P;}x@au@20dzKUm za_(NgYK<yk!|HmNf2#9OeiY1B>#PmfZ@}J4Yh4v-viJmt9Rz0KE(q9VU>5F1uwz}g zkAc||j=zC@A01y6ZN)dAa@c-g7K^sCFpTX7eJrex_h0*Jc=}wxw!nt4uN?(;y!#px z;QiNTf}QSi)Ecltc>3OeRgpItTbfFdJpud<LTRns2Z4|50%F%-jFgNY-`dnNw{eDT z>Z(F0z2Y@TD)7{rBkh)}O0(^LaLn(l>$cfb(R<?L#<q6baR%BDlzSY|HrtgTc&b7k z5+y6)Bnk1Q{I4H@r3_)BC+@;3CGq4<zy{#1Kq-&ifcFA-2Wms2J%Hldo<Q;UZhr61 ztZLdD+Gu{e@k?EUw5rK7xZ*WUCJ(QV^d9UCu-X)JQYbq`S-HJ__<P8IS$Yp0P<r>I zFeJZ;YH+3V8p`is14{3|zrG#uUzXk@|I5;QRG-s(52D%eAJ@MJ_er5ipS@1f+b4x4 zH(MR{hjrYARYw}dGujxBRY%Lf9%YzwWOReas-t6Qif?2|`N*iwW7UytoWDET3m(G} zKwEkc4f)7ug~zI+$rvxEIa<BPs-suH+8iw!W>|IfNw9Z2+DeaAM;8odn=nV4?lFcj zXy~7E=^O1aPO1ib+R?f^R(|Df=W?arS)O>iw0PIKDO}e*S>M~aJXoYXhLS1Mdt9=D zdJT12zPBLDm)}4E_7<vh`O-dxTGxkA%a<n>eNW8FAtvc`y^*-hn4S=@*<fbqE)Uqs zfc-FpdnM5JAXa-L4`%Vr547%j>nnI)z4cmPs<*CBsoQMOw(4Z{^qAHi)f-vMQ_H~7 zbmF*aV?S%#3f0KjH#_UbXm?dYcPaF4B~kkT^nVnf_#6A#H~i4{k{Y=n@<&aq$?2;A z^_m>*@h-O&6XD&hPm%hs7AXtB_j@9L^rMTqPpt*C)Dq7seG1P5Q_W&t@NB6600CTh z0*p-pXdfy#)waFgpq57&)`)%iqb$NvOIGNvC<yVp4+G=)*(fR<Nh*Z0s<oqTHXOme zn=Cp{7Zh)(pp==qvT@0yU~JPyBS|zHno&&3ol6R-R-jSWu25vzG{s-YmpoB^(qAA% zQ9>nWCOWCCb?F-<xV~(3aWRC<6D-8J;d4VQ)%vh_t)z96Y8NEMYgXa*h1UcNpDTGI z=EU@pCs|GqB1E&{73yo?HL0+qt<}!VzNU@3_95k{yA*cmAuMa|HpDZ82rMI5_;~Rf zd_W;pd0bwG67Groe&(Oj4rzR(rT7(Ja_M3wM2LTb_J}HZBWBd%k|!~vT$VHhlZvZs zU<rf^j6NttWxi$HGzs=Bz|H4EhE%4x?-;P3<33R?Ef=Nn#@8GI-B2!2{M|19P%*h( z8O&8zlrMMKT3Y;K#dFn~6};B4T0={xV2e~mbHLu_um=NeM|gaJqb&iO=CFIf-srGz z1nhaR=jrHFMgIWX#Xa4gDr4ae2h+sws_1QjwkTll2eWtY3^Z;1Xzy+ePq#&J`1k_$ zRxo>acA#Aqu-n7a9|an&X&=k3Rq?yp^4Ma&FktTrPj3jc`vdkwc>1G2lTBr@)L=hZ zs-}P$tvz5L4^JNeJGVxB;Z^5flBYWBU-|~24&`|laLk)P>>7Ok(uz3hA{Y+}tc05K zFKK421aVJ(xQ(XFnnfpf>#e&I(&=N}kxgoycG$)RI&;qK=62_VlAQZD&s@N(@>Z#O zc$%H<q%D@mCd7D)<;<Mk(-+QjU#?AsoEMqP!^VN(X?%&7@>T5)LAJLp%BUdz)&r*l z&j8K?o(X&}@GRh`fK!2w1J4G^U^)l*Yv8%St%z$H@QuK?0yRhXe4yN?7XaIUZv!p` zHUPD`_eH>$fHQ%|A?34xQ-O1U9|B$id>J?oSUr^8gMb$TTY>ijk*LDAfs259AV8M` z-wk{R@LJ%NdJen_SWCW_0PhA~3tR<U3Y1J;2UOqWxSF_cBCI-6+Ko2TWAr7;4$^cy zM_c*ILmJ}`Hs9o$>G_T?*A$>d?K@6bbpv0D_c}`kz}ZV5Jxtj33TGRmotO}WE%rwq z(1H{Qqy9pzT8o@^?Vm2aORF$dEmR!MhDS-SOu6ZzH9PC6I(eLW65El)(Y8Y=-L*-H z73e;%ujqSxG}wRTBImg``_y_8(^$pdBHKanw54-7R6+R1Sd=rT;*5yK1A9X`C5~ci zDzJFbmO2@sB^q_jSBc$c#cWG`PG<?Y*i*+G#9#4)WY@a)>{~L2Te?qTKE=$kNhCn3 z1&lxBvZLnQrO1jt-q6UMsSpCXvg=q=->`ZDsoMP-smN2o<|3F?(ObdJbC||ZO}*X@ zCSk3Ly1=X%<3L#7cxeHJg}XRl>Smjg)`*ZbZ7+wXZ=mAY8wY_|xT6B?EHG=(E&?l7 z;hN;1RpD<Z)B&XH65z{;A8_zhcs(B}y<!zUoktlJ-VA9^ekm2+l8{j0(zc7C__O%x z*^OSxx{w4iWvy`I5@M{C)B4-AvWES;_{EoaBbB^8ga<rvIVwr~x*n)VQ67aUz?*?h z!1n>~2fiPuP19}zt^s}k_*38qf%?vefHGk|4BQ>~5#TYvj{#2w(i9iuWVs9Y3*bFK znKJhQ4<%jq1J4D10yqo!DWJ;m(?F?A4JVm9M_9Gnw#;aU5sT4^rzKE>UwLRtUQH>= zI#pNxG0rSqwTLrrQun#`Bm6zpS$c26N)Em#I#|{8<|t8fPD40titB`(9X0x5!mS-* zibeI0P_m+WB{T`dW&FOD%mf)MQRSHEUJr$oDAn=#l&HohLV8if6qwQ2QnZ%;2wpgW zAD2#X$N_!ev)Hd2d%*9QC9%l!i!bF@;)i=H9Mt+tMx*rduYij4S>PGK-vBQL{uU_y ztOrUACI>MPR_zW>G@69bXxit<Xd^t<$C>-Czv>(m)7sDb>}IZLt-z0yT-39#x5T1W zH`XxP89D7cJj{n^3K&5)c~B#?aSLq%sanYs_ckjB^Vf|)Sn3*99}f8$vQQN%n-@B) z3QVrnpYwZvW}exN(8Q=tes4;4cr7zms%^%C7IsbNFbmsMcYwPQ=4LFI-`1{ubX%L+ zn%bRzyN*PZUa{`0=h0{OkfL*Eyl;h!OoOz$vrJpOy_gja<xjinriEi?KgZ>bz(aVx z3$PCOCg8h(y8*?I-GLI0FYX=d2w}GSuF*F6r~hSw@C?bmu?Io;YBHJW-yjGTiooZ0 zFA;&4v0JBXW+L!f2*BAv0EFSUhkr(U!DIapfOi&Y0!~cpNfV6MV_JqNKcmj=7YV*a ze#RtlwHW4$vBslnh|?Ocj&>$%U$sT7Bc3NiSsn2OXwng%;rEX*{Ijb<(Xhk3`>}Cr zr8;8g-AV*x7e{JwC+^(flmAv|$#jTxgQEOaqBA~Dc<BuBC)OE{>=o+_VYZmuXyUNZ z)Swtm4T{l<ZH+qF8l!n3Woyt}q#KkAi^S-J@UU!y^2S(<l7^+9a`G67T98p8?}H{e z5r-%AwJj+lMPXL%NsTkw7qnhhp@O(<pOW(5o-&Yv(8kbjCw01hyK8sluY6Qe{vCu@ z`77UX`Om72%U@V^^fjItO`J2DOber}3$%*M|KDp+Xm_>5*Yya=&K?bxHYhgswH+xV z1e50LaFWKkXD*zd$iv*m*%b=I^ipBC$dO)4gW;l3_`+<mtkKl+8ZAA!yQ6DyGP(Ow zf*hZzSr{<Rf*A!ovdlt^sjLaK1G6!v7S1(mim+v_*qV}7xhb)x5>1#(y`=9d$udLZ z&#o9^R?(+JqbQ6)Z^9T&^}uKoD{?l;F%!;rX@9eGQTTg3${)q)q1%;EIgQafBs$h@ zc6HaNCF%~QLy7hdXn0o^4_UZ>`jLyaa}ozVuGNSNw=K!Bmn|D-=#|YDo)qHe0M&)# z(h;aPm%b;4TsM*Jpva<j`gp_O4=Hp;e~WkeER$Nu#55fTRh%@rb4Fc%dnS-6`GjqJ zzSe(U&L}%<!1FYniT3l-pW@KQN$Gp_GBWo?ndU2OYR&PiY$hL{Oc~O!F`K~+N5T8_ z$44z0U8aOyA#0VF(Aic(Mad)ib?M}j%)0)R$ve)^#F8zKE3wK#zGZEhS1l3Qe0OD0 z!laEmnjDmh2S#0sKI5mQ)Al#h)5EWJ7!13^_3tJIOnx<^6~JzHPd@~<!eMG}j3xut zX!5O$x>`zI+s7JB+YcCa37EYhxA$ExmfOMX8=nQc$I;}jwQ%1B`?#b15$t}4X(F|K zV~-*6yT^jrH(CO%5NMwOvo|!1WZ`}nu)l&?3bq@{7P;;l^xfio1dI(lq93~H$5rI_ zMSjh^d1*$sUO*^$s@T3Gx;JUCO57#=J<F0+aF=L+WS3~0(e-?%^omvTbRMOSCXy4S z1(Fv1dFNj2%4;{$xs8_vS6)nNo-?D_**WUj>WWV&dW+qL`)Qeb^?Y^3;Xh!v;r_>& z``>5o<uB6}zkgoleop588h;<3kfaIZ>GwaAx&LbB{yUlbKluCj<jEXmosRG5%>De# z{kt;vYclu0$=v@rbH5Gpqf7ZwYpRZ@ri8_p<V*)V<sfJgs;*}v^OF7scoz4+1<nSp z2QCM~<H9Y#jX)V&)Z0QA@DIQr0O?B<-auTq0Sg)odjYs7kZ%{J0$&EoOa5oz{lLEh z{{;LS@Xx@%1GgX_DBps-<o^O50elrGzc>wlVGeLJ;O#(`1r+WDvMo;Gi@;&Pb->Mm zW5^%<m;&CFXba$eK+;w?6v(kqg|`4nV?p(7d*J>={|(GZ^S%l*&x+AD`KQ&9dPzo8 zFUi6wuSOGxjaCzAwSjh6pp6T(iGh|6H1W#fn-*v@1FbpG+5>HIpe+fsrGa)!pxqW| zcLv(Mf%ZV4tqQa?fwnf#o({BU0`1vATOVjI2im4UtD<}?ZzDX$q{ToR6KFMors;OZ z)58Ky)A@`xG0^gXra@27zd)NAXw8B4jzE*H_wiL~Bl<PDw70o*`->G*fytP%!ZdMg z;jj%V6<XKD-ioBEM8(mMTJmerusCwjsAa1&&t(Y|+iST|*MBq<h&1EnO>73xl)aWK zw%1%*usHvX##(N}$4RkqfiI6*vLurMQqyi6=*>FHl~_l0nViQ)8J22s&a>80u7nWA zNlL6DO#}FmYx7S4Gb=%w)i6zvG3+uhvoMt7+no*ZHLw*9`(3~!2KID2<iji=9o1*C zj0ZCd=oByu_f{~ofEI(91#}gdeN9qk?{<ON*M1qW7sFF6oifX2M=*O=_0q88!HO-L z&7ov1o717mvQa&~?=`Y)S{AhR-?BMwtg~!1BB>Fd#iZ4nF{dq<*%Y>ZOBq0N;7lNx zuGr8x!*0X98c<#F^A+wcx$nx{)A+h84o_oQbiWOSqANC3YW;m2eq820pShowxxduk z$A-$?ndgsW?lr8bEB>Ag>-7DW6tAw>@NiRRx*W;=Ne*OrY|rfjp1u<;uw-Lr;4wg^ zy%a72GWK1N2Vz&Cdh|J<{F=-qF02FA0LPF3PLC-Z3fu>%&h@@PZGuPLDBJ|xAE^Gp zfxsUF#{#z@9R~x|`Wyn>6L=VKFW})owKnuZ3X<0&fwB;u2o{2{>gZ2_rkZIqtPvj$ zJH*qlI6O@~91ADQ$l@c_o~Aq)jW2rI34wNUpq&+H=LXu0K${(CZGpBZ&^iL`+CaNG z(B2<tcLdr!f%f@8`(mK24z$Mu?fZfDqd@z0p#3h;{uF3`4YZ-~+jt-?V!YZV&}2s& zt=Kn-i=f;%xDKOR9tJF}Me{TBX;<<#q<tV|x2@B(M}zI)uqrV1(LTYiJ<~@!1=^nc zCh}_-!#}%RAFbis*2b2G#<_DB%&>t;hc@Ckc4G~0=c~4+xlJ?L8y3uOVAQd_anAgv zR<M@Kbj!HJ!Wr#z7TCrYXrwY%+(WD5+2aQV_p)=E$<9x|rL?ZXaW)i4#@w|x-eIMG zAE5G33zT$kM*y>bg;hsgfwsnD*?}cYo>v|k!Nb&u043ojiH5WNVDvZ`ooiSvMsG#b ziO=>nD2*BR9t%y$JCfh$cjlj6j=dRfjvwE5UgqM6ieSu3@$56jyv(vv>B_PaadfQQ z9jNr;QgE!?GO$t@Yhie1w3Qy~FDu6;tW<;vE2S4N>w%SDpeN|BVphgyrWRBCBd)pl z14U3Q)>O`MP$zEV+Smzmqq5Rkj>WHf79+xr#hZC)RgE=i6;>UsA$p^&^;j{B5yR24 z`Nn9h^12a;i(A3pnPJ?UppE3Gr7!=J7%OE)2GYm-hR5=NC%fXE+0?S2mGJ{Nh%k%Q z*F^`>#?uY>Qkg53&(S;^R~zcO3>0aeBOK|{#<>eMCB?e=xl}aDNA?)sTl{3BQM_vm z6lObB8EqYJ87*}ZsQ9Ndz{f0Ix)Nob@b7LypP%91F3_s^sruft9sleK4C-!sDwxqQ zqp^KPb3@bO8BHxxgl5sjF%-izcT$^G#oSS)p0ZiOozi`rl+MvKDP$-NDd0M=Ivn`3 zrQ^?+2_tNzQ;bGSH$sVkUAJ@{VG|C0fx8Pb9NHC{BupvzK&2d7*xK4Ozr8{1gk5d6 zoS%rwT-~rJ=LP7edx%Ai4KqrjbQQF8n--;897{JSw^2ovmk$7ypAUL1_~(6M2@_Tw zJ;^hpJ>{|Ps_1n~*At@e9Q@!wI5=niEIS06PnNlQ;o$A%IOw9RfP)|N99-c!h<nS) z;9mj<g&7BpCJq{{8yU>wm9HX@tQa-3r)C6Ds!fHaX5pYR?2`^V(~aM$m2Gcmn%mgY z#+0k}IrI7~Z@UMDr3rUZSk`;;ag|kBO4l>|(p3_Fk7LIbd&dGL%$ilBt>g`(l~q~! zl)nEoK`+WMLrjpqlB&N^Jrldi=qs_soi2n{Z)!xV8+T?cXkFCUI&;qa*$qwe8!wvM zWcwn;5f#I<M17yl*ZdqZ&4U$>Ol?^-jzy(<OX*!dte8pXk2EHoL5!x?g;~RBw6(lt zwA2>AQd?>kughbh#R78&A<xS2NJ$fqcHnoc{@GQAM`4J3(!7?r#-9ZX+h;83v*6r^ zIqI3Rqi4#O9jS4CLmX2uAaZd^fJ$R_&o5jcPIz{DbIccEc6_MOq}h#DmM^Id-abUg zp7?TnrF^MuleZLKMtQ!plcFh`&6;U~BAYeGFTTq0;{wl*HwJzPtBzEKjP`)Xs-yCi zsU;DVn+bYyMo`j~=`G!8mJ?{TOfuS<7c87Rv!QjNb$Q~H7sGUodCVzXH|w&v##l_{ z8KE>i!!NB>4)YED6G5v8t9D0W8%<`r(aJMoOu~qAH73o7qbik*wwA_4^ZTquQj!tZ z7*iv2+8W}R%GMaAaa?sVW6tpsvVD*cVOC>|rW#|kvNdLxgfA-yncc}Vtx1lqm@n;( z?F;*A6sFjs)nEFsRhY(xHj770=}WD_Z|1bfj)5n_s+|kVXsd|aXk~d)oABhrgq)hG zG-;kpsFWv*TIaMk^?k3%6j#csk-qTbLeGyk1%3!KEn+lj5u>GM7ma$bE~Py#C&&pI zM&PUnvx|=DS$kBfIaVi{!)&u`M)mDy_@%YPFs~)P610S{YB#UYXt(f&(TX$LoRoNP z89kz#jM_A+idAI4rc!;x8(E(U85L$3HJUPNv{Xj5E-lIEJp^g#p+p}|MBDir1~_k@ zCPb?-G@F4Bm$}jn$0OSWt0JgEDarU!>1*jmx@)s$cvKh;{p-L{z{h}CB5sMZ8Cj<| z?}HSgu#r)h$JDi%Tr=WaO>)KYkY<uv+N`T4E%uWVk3%Vw7R_jGY;EvI$Q$0;IH$es z82{k7>?Zs%T{D*};8p=cJhch3s!D&Ewbn64ZwoVv)M&CujaJ00$>P|g5!z=~`*J+G zX-FbrOL^stjD+nDO{K&n>gWd<=3R=f74It^hb&_tnLoDgB2>Wb-vd*Wj_f|e$8qSj z(sn#h>8k@uf<}j~oiN*T*JvyJ(~Ja_FlA`Mlt*|ayCH0vDJNw7sGcdob|0)wn=6p7 z_wQZA%2H25CCuEfHn#1B*&J7+Nu3+5X9-I&Qw{l5JxJKE%S%{brn-o-Zxc6PR`PlX zTB$^CUd+a9HLZk+Qvwr(nX|!YPr(tR^_huJ@XF0SF!7Z>FtM9ce0$_(H}6!+);z{c zs-h1}Iv0l?xiCA-!)VXKC8PD3vAs#>xBI|YnH7DM&f=hzvhjpHi`Y02>3kkRw-#5J zNvF{yokr`KiNg|o`7p0^^dOyo>V=7k|GNLDUsj+iccO(DG--TSsOG||BeBnDPkXHA zh9?{ZnXq%@X6)#dVJAs;Z89xpwD}nR+2srx-~5ysH?n7}dZ#TL;U#8`Bj!rTgAr%0 zQZb*y<b`zkWaV7E=*cb+k7B!Ea_CSAtJa){$Y{)Va9Gd9^XR6kq+lK(;_TR#nuOu} zWQ^oAKx9|CU_$$p$a#OxXRAQMk6>&##lb8CmFAupm^Q5b8LUlV)zMnsHQJLN>y3fK z69%s2m8_|rX5bfkQ53QTl99k3TdpKnrQ%mliUx^!2LvrE%uIEoiH%0<vzC?nY+*(% zq?xy-FU+g>e4+}ZZdS2FU?5WW!N53SHhIEmYv6*>QjEh7lIk^ILy+vbA?Xg`xTM!y zrfO#0?G-r=GlyuD4mBtpSqI_S-ubg#&{e{$4`Z|yyk)dhrs>b6#$lEcB-@coXZnbW zGL1K{X&!^3ee?xnvaOQO@r$o=nLf*BdYh1GVU}s5t>AT|r83=Fm-2>QO^DMoHDWZh z;rzDZH@?z5_t_Jg$uQr_=2_{;7WBD3&pU)X3$r{MZ3S-`Ej<p&F&mp{#_}r<P2_o) z9kk3&aOfNcG0GphMq6W!ARy;%tP_b#8{DbM>#S?(Sf^RPSFd+edo?V`8@1%SrDV2r z(yMN19@9LEUg1lMXd_GZ>;niR`zRST6P7pKN5kHFFO>b3sD8y6bIfY>3R_Z5)uifW z?&JqY;dASF(6M$iJ|;{P(tKc^Y5wMhZS_xke#MD%xvx_0SLzMoQ^r!c|3E33=r@&8 zdDT%vULyCIq6i5iYLb`ckeBA(^Wp>hylgyWBPXIPb4Q=}SZ=X%Q22^6+Z|KVulTs~ zotyHVPx@WHEV9nWl_1GX{?I3l#Ay=THmsIY<?!n?C2AJf9kl&b*gi2Ph8gYaU>|o+ zHw26&B~h)TsVLs;FeZye2RLjd*zFFx0_;wQ-3YeAVP6Q?x4<kG&62fP{tjlbY&(Qw zINckXI&Du+0<)**gZ=G9rFlBoePe~Sfqm9tRiyMqep+VKn$aHxLLJSs*}#8h4DGag zwcks|m=G-otGHZx<xboTeK3A&70DFXs6}Ct)#Zl;n`HZFsPw73WP-IBs*tsyFK?re z4H%e_cGXFTem{@jZl6`?=AJ|6d0Y(>xD@(cppX0Xg_>|S+^s~L=>jAZn6Jp(>zlgb z3C^qSHr)R%bAOR%OC0{P%>DJ5`_HHDgB!ZVM=GH5)C6fw&WICxA>@;|ZvcvY7XexB z6wLrm1U3Q1sM)~p0^w9)1o2!96iem;HFbX;@J!$Wpz6!l_li5!!m6Wh1)9{W(f$!= zuLc?uto^$Oc&s|o23Qu~lt9zsO`|mgnwD`IZ9$-^UK#DmK<f-Nu~1K|qYnkz#{%sW zf%cg|`%<8NHPF5pXx|C6X9I10przZfj^~)pS~{_qEst{W0>!M=y&YXNHf{s0wd+NN zn3K8(D1e`3d@N6tiDbs+C!u7`<8z_y$?pt)cVx`tbY<@M{w0h7`1*`uDRadGCUrcU zO1G+qeudI1K^+Q2ueoa(gGl><Ee9$O?*&TGzDCZ?dn3%uW23F{PrKg?vQ9-Xnqa|> zm|Rm&5ujlx0vcS(2#Vvq+tExrIW}v5!|5uQdOe*Mm&{>SGKZ;TrZJbcu3>c@(M%-+ zRT0%J+Q(s4U@!7hHOMO5#n7}`p_Sj7#9$i?&jY2i@S?bY>WIJeiVLWoN2w7lX}sx> zBs_k7u4YG|2x5}$t7ikB&iG3Ufbx_b`#OF^R5%=Z9Z-3l0909?1&6FGg;l#2-DuDG zr=f%0@f=m4+!S#w>hI{{p;Z~1)GWa{uBeKr{XQwv-YH3%g?JFZownnjU7=%C+~pQW z=gn(uz09>?xj1wYj9Ds%e2*Y0nTPTcKZxPd_g7XI4-%i{_30LS$E*=n9o<4$quu5) zu_ifR{i^2*(8Z!0Fvz#xco`XQwzKGl@ze}vo$HBtr0BHw=M6xX3rbh2CLr+3+_O*_ zI7f79O{2&PYGmp|OKL|=+x-p7Ef%d08}A%YO!YDN6gbuAQ`_+<YVfJ-bBZ`T2e;=N zenMIf?b4dQWy(nA%RY{tKg{T0h#0)&!z3m=?{mU7vW==gMQ?d*rQc9Kd9c+P`YH*R zV9vISUn#L#we4(TuNHX4Hpffs)f%UEB=3eT2iuq0Ru$b3_Ajb+RrFP`(_Oe<fNhTs zs?y?UkL`&J?Czdw4VZ<~YOft!xW!=h#%%%nB-mc=jjw?n=rAqrHS8B)W}9vR+lKb5 zDsr1yQcY}M?qb_?IH9sb|FS_QkiwUEwwl(&UxTD77qMrfEYm_9ZxI~pEz`wNW6M-^ zAhivoG^EOJ(Kb$L+J4e$1N1~5ew4IxWz5y7^R#D=nUwds0IYf2I=zY0N>3FKAEaKl z1;5kN_uo7!h&KlSrvVQFDlrEGKMgztxEgpU@Yle@fU>g30ksNnJa8Z2(ZFMX#{ikz z7aa@KBDmv#9|pb!s60#reinEV@G;=Y!2bc}fm)n338*IT4t`f=&g?<_Si@nn)dBG} zNM}y9QIM4%n5L#^3NmX=kuV!sGupHMX|=Wq@Zlt(7H*e7Q(whsTCV=J0~OyUkNIZI zDeUAlndPU|nu6+Z2hNP)Lsm`FioN4G^yw=P?ZU&9Rxfa?{W7PSR`;9s`z@SN<G1qR zJc?zibk|Y>+lR0ur;B{H$cn?rsB!dt*cjQ=_!ZJtdNmFkt8xFajxMJ-6-&P3(IUm^ z-s<QY9lyzQ@I<lt=T5Qu_k&{H@M9vBMsHt~O@L4AYy16;Z;MmyKlfBVXk!$3nwwe$ zm}X-LM_!9U_Mp%^)-a20Dp{_>9aa@x5-{~9|L$n2%BHqgfxY5r&jf5!z{XJK$GWHE zz%1OffGrN#wP62r;cfwYi^D!1XrBW+!O^}PXio;3R$-pxo@#aXZF7|7--4N&p^CJq z;=c__b`<XgXfm{Z58Pr5h+XNyqQOw+*@2P4h|`ba#f?Nuoc1CZpLSV*x*ZLrH~rKw zNZikHq=wRl;cYzB3S%y<ZL0-dZ(*mlg?8b6?s>XhaK_}lo-82#YG8{7DAKf0UCV~C z{|Rt8P@R75T73=hMxesn1k`*p?Oy#;pcZt=fu&umHwS9BYAHDFR(%XmyH#HR)Na-9 z0NxH%+V22<0C*ShK_Hv?JLiFRt^Nu3_W~ssiu2c%GzkA4!@K=%bk3kAS)(JYI#Rtg znz(JW^8!t^%4qF@rdn+@?O&pGu_N8S2*Uc@=valWJ2#J<a5bzJIP+@N?YKs(KRZ6t zeUe*=k49VYd#CIXyIhTHyR3~-6s^E(n$1?1y^N(Kb7;rLu>ckSdOk1|NSo}gd+-A2 zoA(0s-TS;(U;zP)lftUq+-##QCX~_qP)d(I$)aAQ2HQ_2x`Yky5+%cigQ2MxsXpf+ z-Si@D_N_XWZk1ib{6@cmCC5vpSGpV7>kM3dU(ErM5LO;8_H4N?^df~>FVbkY5!z^} z5hit{lM(B3nMJ|4A*NBlx^6OSD>7VW=P*5}VeT9b^X=Qj+SH1SL?&{4E57voY-ZzC z=Z}ZX3bV`_O_?=XzcV{w@H1O>5_!4;#F<T30Jfhh3@1DL162qI0A;_f4Vf2anKzm; zZ?shAM?FY2uj0vz{NBy)l#Eo%M%Q<?;`b4?DR#NaT{5F){P^|-4Mx4JrMF4cT2rgo zFCcsPmriSHZ$ynu;ZFXMbp92po`325pNM2DU5s}Wl(v(-q`ySR!W4k8YPV3)Xlm$; z)?NOuB*dg1^8e93<)0ZY4eh;WUyZynrnZ{wpU`ZX?@QiK^?9G{^M0Do`=3JIg<07f zO=WMiRNgyNMPF_?fy7EIegnT9x)J+iiV0=kd#2UpRi;aPV#;=oUwrA?E31o@Sw1om zAC6#K5eu{B1V+1sw~Xeq*`tnkt|sp-q?_S3kCqRSE{LakxN*p#U5P*OK|WgLd=Ou7 z*d#t$+&YwFrd-=<9nRo)bT`cO3KKRqv^2Ih&g-Ltv8?{6<2&)CZ%bLKIX}!3|Aovb zJ=zSx(a;}LxYuR~O5+f(Pre+OEzFp0G%?#~ePecgU~8J$3H3E%_F>&H+c(9PGP`Uu zTn8)Ss~oeh^vuR&am>C7C}zJKC}wv6rMy28m@UkhZM6T#-uZxKT9j@7*<DmrR9G=t zLq$VHL&X)76ctxgR8(A1(a6OW6%`ZLH8HWUFj2Q6qavfiq}<-nRwbjv!lc5YL`7Yb z3=NYMbyHF_%I`eSx#wbleUP<!zrN%6=HOv|Gv{10*UbHI?my4{aIjsT4R*oCZer-Z zh27P^V!Kh;#s0Dz<^+F9$G=eaFPJOw=kvw5yL4#Z<vWLkqJ{DoULMpLIq!0m_=gFu zI3X;H#d>I%_HTm=8puKeSK`M|adTy=)e=5lapjhB^`)y`!s-5O*}WKfnh{=%9F|0D zIboWW6!Qhc0KCo@Z$HMl`1Fds3wFn#V8w%bprf~HuD3tv4eUn~VuhAh3Tl^%Gv27& zWgzZb6JlQm-6r)rMnAN2zc%8P4OjDDtQ@bpI$J(3;5^{<SNBA~GSGKb^NFV7k*TQN z1lax+AKulhopJnHfjn;KJbk!*M}P~nPKV#?z5FXaR(am4^Q$ktQah^xU;nh&Ph(4v z8@vFPFFV7yDfoNc%VwmP&q(8Tw1O}Hr5WklW~A?#k?xz3o_X*6A2ak63>$-Qk6Tih zE{M|pWoIV@x+XI`ur)dx{pa%FEl$o^>Z1ICnA;aWf_OjVJ&G6?$77EnUWs@RF^?&a zBjz0C3B*q!eiHF8V(i=NpF@oGs(u17?uFDRp&gvc*B^uU4~V(^u@SpDB35#D0PO>9 z6}t~Mq^)&7z~%kM@*a+8E7lv8<L<zfd&%-%wY<Mu9@lDDZfmsf+So3lt@u*5C~sHG z`=I6RZ+VAW-Vv6^fp+zsY<VBCJdUz!_hQSt)bg&jyiZx)O_uis%WJp1wU%eQ-;B9# zLnhm??lXK%6;BDL--f&jIm>2js=N)zO_e*Iec~LoN}`8X4>`oWgodY687MzH_>C?H z((}97btpH(o;Ag0+ngdS!Uy{q1zgY56yXKL^a&3%X!W_+j#4CdlyZ4IO1Zpfm~gO2 z4yT!yqd@+QZf}RY&GF$h^UUq>&jszF&RezWQohQp5?}3~>aZ^|J@y^u{PHr~L=W$| zax3IO_`o)2UQ)nXt22s8#PkKb0(JK)jECD=NO*$*G?%v~BD*;~v%9q@aO51_Jv&Z! zKUR4mUsSYdeQuoI=lOIQSCZ7_vk|k)*lg70I_omY{q}*&YeFfPH@^*`%r=B@(l?d+ z9w&WQ!;Qij1Ivk*pJ5*qXY+BBKCMZcG{v4d>*L@S;N!!_CVkg0bem5j;#?HG0rAO* zZ$x|w;+qh2($`^|6Ul8(E{~g&%L_NBg5Z1q*P}$qjB()l&+Umvm;$U5QLv{OroMqO z<1z0|{LcT(=YKgS8NM~d^ke4Jzg*$i=XAT^NpesBy1ceXoxV+lkG9{85;NZp7WVm{ zQybMr`g~lR-(5N6kWK9V>sZ&qUCgYfI_Ogq76c9*c0F!Gv`_hg9f3*i1tBi41EpPF z!5QwUW_NvN*XzRTk6eHDow3|;wv0;%xHF8;z+(J!Va19{JgzdoE3dQqz&hKoB87b@ zkNR+t?IcKB@d?40%d3uv4`3B$rky|ac*;vU$xg;e_Ch{ag~KEtX?v$n4_UbvFMoU| zW+rd<qu6#o!b^k>ec*~Ml<`u+OAj8{Gj*}50gcQYf>V*lVdwBHn;L>EFFEg$bF17l zr%*N$c<kVdD`=dKe|&mW8EMG43?E*hQAP$5oU|h2Bn-EE)khvOe4q~*7`Ft(T-6z# z!Z);eg#A6@V-P=$_(a4*h*{=d)aVW|BzMuu<+Vm?G?deC2xIsrf6R95hA>XyUfSCY zYBa={rtqcQQ7Vh6oM^ytt)mV<wD|EOWPkzZ`BBz(Kicxp2UfdErsZ9;<*yPl-$8h3 z3jo)Mn-VgyRGM^gBzbDdd=}EoCG&0MW#PmA95rLf;JF7q4Gd{^;F95`vJ6Om$sAyJ z$b8OHEt?#anYL`)rNnUQ(2to*=NT-8k0Ae#h%ZGvjJO5yv(eJ|ku4pP+gZ81Hk5LC z3-By+at)FQTmyW#8$K=4y5NW#=MO*3yaibcW2uXs4ZZT=9<y*ni~F3#)(c`=M{P_E zA>Mgx7LI7~z$^<M-+lO@SvaD_uco|O?!3Z=ZsA_Da72sW&azl(<uNX1;fNNG&9VsF z=rRjOw0O!{?6NSn)$+}2SUnG+KK$4$9MR&Bv)ZWe#S#C+EF96|`B@g{1s3<2g(F(L zG|S?gz@pnM9MR&hQx;3z=oSVR_nU<yTD<8jf@Pi_Sp3v19MR$*&f)_LW7{ou>k0RR zKK#rq9MNLYAzBmh6pI^MxA*iGJ!avE7F*6~@qk%4qQ!R3BJhfPJ|BK=7LI7KgR=;h z`T4#$;s?#b5iQ>DEEX<^Ev#`xc~8)XUbApSi`|^X4tU^dv9sYhnh$ScJ9k^HBU<d` zEP}Dx(-%kl3v0s>E%u$$;+JOOh!zJr3y#%Nw**fQ+W3`OIHJXeWwE08(sM5kN@jw2 zTzId6JNGc`zS)<S%*<O974Umk>S_2K0go2M%0LC8D$oh?vKDlbC?y*`T;=y=Zpw0p zdY6PUMJfY`eUJa5&}Y4O#NHRGB#%if#2)X3>nF}L=3dThgiqq*OD(|QEYc*&Q8F|~ z3z8Sbl9wgbY+XW|sq<j6t9Pmewtk9Q|4)xS$Mg)e<i@m2w1C^jD!0vYq<whE#>f%9 zET873_qGrUd*cHJWm?+j|EJ=GGb-j9HZyOtsEqHSU&GGT7-T_RDQW>#iq?WIRe!rc zt3+DY?vA&vRjUjN$DZZCDE!*S(Gkb7N+tbT<YSKEty<@}=H9S>xb__#)yCC{<!?mH zK0FYm5yci^;N9BjDB1GTj53VoT0@-|Q~uEBE9CQBR?cHuIil6o&MMf`O`T20V!yGm zaYT!2odws*#cr)EMy?P2X5oky*UxGr#TQ5XTeEOPi_cB95zPed2`qkR7LI7~C1(+5 zAD^g^XU`qc;%m+#*#Gh}tPc-c8;)r4ty%pD=UD@0;fNOBaTdXGJ)FxuVit~Q@qK5( z`C>G8$n!2Ce$*@+(c-RI{ovV$509CJBU=1uRzJ4$#Ssshg(F(r?<}~?m%3$+&A`Ir zX5oky56<!`9Nj0(!VxVVnzC5#w&3Hf1zi3%3rDngc$QZO1{Ukh!VxVVpK2pI=7wH9 zWfqQT@$@W<aC!XREF96|S!WR}!DWG0Pn(4!TD&l;AK~Z@nS~=-ygbX|q@ayIn1v%+ zygp?SZBb=`#WQB%h!$_nY4Jz1a72rDrYxeh1iMHJ!)D=#7MmT)J)-v7(K2UoDpNCr z6qR9qIG23ZYI8)JtyOZa`AY_?LExU57OAq}-gie)xTk+?-*EqaFv>7+S^84DXs^P0 z93>mg+zVrhX~EUYeUT&D@1)jsq>n}}T+5!bzB-~shO-FvEaATBPiEnW7JE92V1F03 zF=7^uXpt?86-QRrth%)JDr6|2(;B}hxycd7J`5cFrD(~`c@7k5ByM(ln$HA<pEoZZ z(aVGX*StK;ygYo$%T>-x&N_Ygvw7)=UM`cD3*wCa3ufVn7Dcj{d)p{g8Me#$h7Y4w zn<LhCl1k3CZDd8}e%m-h7F;@KiTqm6HTR`y+lD`H`4kjiY7g5s93?|@G}pG_>YZwV zo_|!Wr|dO#RREbY_7NAV4D-+8zbO30#=#M5J69z)WgMzy!Ev}$<a<ajU!67%M?~%N zs)aALr;URnj)SAQ#=+G))dD?VrPfpMla@=C?@$vpHDeq;sWQ|);R_&s(Z<0MYpYes zxyB(Qs===h*UEz9&>-?Xq?cpU#(`Ho87{@gm*V$g-Q3p^$HCED<KXI@YJr|#uhvrz zzziw6c7@Ct<M1VwVSX+DMd2kI2S=>!b1FI4IAlfEejL6c3y#CrM81dg@|9`ha9m`0 z31VN0FL-d{;E3bkXs&T^^-i@w&s){{-1~>MDnmCu#(z;5vvF|5+P<xln=%gHmj%b+ zPLb~+y?lAvI21<ho{QL*+S|s#5y!#NT;t&Cooa!e-=)^IXN~3%HBozvUbenEqQ#G# z#oh~Ji(hjy&FH%rvU|lW9MR(bsWw(Qiw!F4{=I4zj%e|qvj}F);Y@RbSvaD_LsM-; z{pbwZ_^VksqQ%2g7E7I1d4a`iX5okykI!lGx>-1)#nW?IjGKicT0A?;BAoyJ%`6<z z;ss~1@6?`+4@3FzhFLhG#mmlubL?mzkQG?GX%>!X@%k*U!mH5}X5okyZ_Tm@`|*}p zIHJWnv-*)5c=fhfIHJX7`P>`m?m%?5_j}~}@OQItM2oGRMKF&D`!Q)2j%bnMEI7KW z+;Jl(@ai9C;fNMH$|B{6Mfe59^w`v~20vf~)y>S4K_5^#K#bo!^x>aYqa)V1vr2OB z!fiJU{@QI@l*x){v8OD!ciCIy_Zv~MSu;@9+l|wvMe?x;CmxG*Blay(I@DtMMSIre z&n+8~W}A28vk;&DDE()|42MJHHO3309$tyq`*Nu5!yIu;9MNw_8Ae$~a3oT>y}EJ* zMl<(+;gx6C!>PV<q_Q<WGp)ii4mTRKazv}8?`q{nj#iFnmA6r=&_g%Mv~onN!<|*I z&hiloAKtO`#StwEokg&H`)BuLbpV$M+lYy1alErQkn3!!t+NmL%Zezmz^ok6s>E4w z+ql`S=a+FMh{8g%a72sKW#P7sW!4T2rf(Z7RgU?$arKG9BCF96Yb;kuZW~+qVo~g` z6;(y+9wS<uCkw7)RU*GWMrO8c_^x;deC!9sr+v)2891^J*tYaV+m_z8ZE1fkvrLpb zQIrk3T*QZ8J}rW4v9F5?K?AC<7&IsXXglJZneG1sAGSLfrFTJR>E{WEH%H7dVEQYF zSsq^jiEV+Hzs$|_orvlG(}=lGnTXPdL!|x@{6kjkLd2*db|o_ru0!m{uK*o#b2CTD z&>eBC9c3708KIMr%I(>eD=;cDDlsZEsxYcDsxhiHsyAvhnz_w~+o4;298pJ!po_J( z%w^@4HLV=c>ausWa_a@H9MS5^ceQfs5Um{1>Y9yOeE^CNZhfPbBU*iCqgLT)xOJ0O zj%anmyIQ&Rm{yKx^@Vq}a_c;;9MS5_?`q|?4_Y~*)z{zE%56)uazv|JomH^6^~XAh zu>{)#Iikhwb6RX>7LI6f$1IERIf%{8!VxX*nbTqmvv5R<AJ4K_iCiBN&B75aekO~Q z18_xg!Q$9f+>D|yec${Wm7~PHjt^T}jgDC3FH~}_vm)OJ_bIgaoh-P&ctqs)EnG%D z)AoETki&30KEBj3nSKxCC>ffgnOkkRO}KieTA&|;YCXK7h{i2!Wqox-i{H;_v9(z^ zqQ$VY2<{!FSPM8FnuQ};{CQ4`ZOp<EEykw2imtSs7qqdhSvaD_YtDk}e{>$j>ry^! zXBLiVF)`J~Vs|yK&=*IXY!;4a@lRQ-;E%l{__zp6)rTxVnD+VqshG#NFmNs045yt7 z^fXq2s0DeOix%v?D7F~ei92(|TO<PW6zj7i_F^koEsCw+n`?r=KJxQk1Gk$n%(bmm zMFnZYz9p+4WuO!h^>lez3))q*<jASBd}QjnSR&#d<gho~FDy|xYKg%JEVdDFM4KH{ z(r>HW-uS{7H<4g2UysA^6k=cMWZR-0af@~|*B0&Sooa!t@2=K$t{9#3p2NnXu)X=~ zh!$DSA~^H&Gf5hynuQ};?B^_St#$jQ+i5u;%c4=(!7LonB6n6B9D5($XBLiVafq`B zw$JeRw4+%#qD8?}8%y0R{c7I;;xw~xM2ll&;kQd)I1fPey@qJ<nt6CW>sK8=hcAjs z(IyR_VtC~4aGWTrLSC7?<S>6k#F48MEjf5mY)5RH$yx@;MwosKJ5A-7k6YdrcCoQ= z#NM8wl74;kvG0qIeHC1reI6_3C(Psed$wxCiXA&gQ~(MC`%Z6<)m6ZPPy&1P;Az(g zca9q6yKB6UG~6B^N_^O#zMK-J{d|Ku{R@w7r`tB?h(0^wl5k#S7-bpd7;#OR^4@t$ zza1@^@$3+UxJzdx#VEKMxm7z#1YMvJ+>{z&V8Qvr8Xd95OH^ZcJ+#cqW3Omyh$C8D z?ks|{?eV}O!z>)p;;N}OqAQP;fyHiS;fNNWl7+5TukuG6w>92@VRw7tn^cAsT^rQ4 zyVd51wOyx@-2S*ugn?thkmVw+JGA(`EV%r?C<@mx7Ny-?+M9FDU86Hy=CfQjVy=Vd zFax0)A8&tFCcS41j<~KlVq1>p+S9u>r&?!C&GK+AE9W1r9MS3)XT^Q@D!1=`2f03c zz(&y#E!vz#aE%&;EM%I6BU*fSPK!Ov!VxVxoW<@7W7{ruGxB0<0ay9V!VxX*b{4_; z%ZY)-US{El7G1Nv!s4@#WfqQT@zXim*xM`|(V}<Ge(Ylwj%e{~XAwN7>W>X{?Sp3F zh!z9Rg4<zqH8|{fwplo$#S?Q{>}wW|XfZU)tF4ji!+vJrh!)SyX|caqIHJX<vk1-$ z(tQJnbIigKEnb;rv14FyfLS=A#kjKw#_E{BVyRg;qQ%?Jg4@S(w|$fb76+PzBU;1` z=e8ZrxGoPYa?QdKEjD)+Tz40{y_~-XNW+87!VxW!oJE}N<3ncQh!%^TMKHSCvGOP! zY!;4akv7XB#TQ4MXBLiVv5T|V4que1aYe%|>ceK?h!&Z%+6cWm#4H@qVxL(Sp;w2R zg(F(zIE!HB*yNnk|9rD>M2inOi(n78EU-AtEF94yf0kEaKMpqwN3>YxEVw4Fa`Ux@ zpp7HU!VxWsW_cCPUJA^@5iL$~7ID^+BhA7QElOv#5%zqUSvaD_S<WKPdUcdpIHE;` zvk2x5pGB?@g=XQ17U$3MD(v~uX5oky)y^VL&yO(+N3>WqtBtVd$C`yBTGTp=I6W^i z3rDp0q_c>#%#Sk*N3>{|vWWKWS0dMk<ITbmEpD9Ek8rF`FbhYtXmS>D#;VvX9MR${ zvY2^Jk1372yMp+=1kRPhz?o1hT5{(<-w<hj8qEYh78E|wymUk_Z*~3RR=nI@p9yEQ zCz*vKTHHQmvD8_FV|TJyIHJWJb6S*`g(F(r<1B);CIz`ZoMIM^Xz}AYEtZ>wBU=2- zSp-{{pM$cUQ_aE=Eq>uFf^+`MgT+y57LI7~n^|6M!^)#@nprra#Usvw&sr~a->2Ej z7f1XARv&kF&Jiu1oU+)+H*lUb3rDp0gR{V|RBVPLkiU-U&uV7IDF-i%?fBZ%*|MLV z2W}Zs`zBHxmItHUClND00hv6b;15(VgmdtCtS6D~p1W<<eT}O!_C>@@|CIIPGmH;I zy!w}%xCk%LNR6dNM`D(}86Va`W*|>Gj9r3CnVwc(bOc-wEi;WLwxwC=Xtuf_ic=2Z zb%>p&U58-ZQB#V1n&ajJ^XwW8{9!+NM~{Jb^r(LoF>Q9mKc2z!`Xkeq;2-sA{s(8= z@$ysl!#T#IQ&;_22dYyb9~tp?5i=dulakAO2I<r88L&)bGA*KyKCq0xLUtK4nf6Ej zyO3s=F^N(riu!vUV)pm8DDAHrjv!6@HxV-|e6QoMKW3kgPMu@3PFJI=e_52EpVX#} z!_w(jOG8_lMXsp^YL`TLzOHtpIX=Tt{@)QZgl)v-X#eiFZCxw4dE@<XwL1S#iV_uw z=@WgSpIpui@!ET@^?#Ce;&VGIM~GLy@5jt|$q9>MyDvyy=%1^pNk$#fvuG-dqoR+O z9LsC;1$K>|?eQm}*iW(#Gnb3MN8;DP1{C0O;d`E0wkI<99b(oMw-3Q~x8y^MV%sd( z&%Qlc0bBPR#7@(mgNWx_)TG+?ezWXpNKk9Thd$ne57XP=AGebX#7v)pe+h{B8Xu-_ z<UfS@_#UrJ%0{lU#`B+TQM-_Ua4kMeHzTGiWBAa2zKn_K9r+I-UfW@QN<N=kSv;?C zWSwmHWY&$(9r&=_9(<Vg$APf^c$~77>(~3HtzWDg)mVtSp*DOb%X}RPYQM#Y?Z1c* z^ZCphmm6O~#eBZEnC1AYC5Cvu#LNFze5_@A`1}t(^yOFh(8s?brjH+j$b7C_ELY8c z2=RQ0m+yQ`o!2<Be)_;?pxB%rzu_po(<b=vZu6d~D%9-SJTq#e4>9}we3agRn1S;j z+GK8u514Ci^O~Dwvkvx+u@7OI{Iy8<9%B0NIzG&gH@1GRvgE+2cDP)ZEaUzt)AmQm zigD~%7ukoXD?T|*XW1`B%Dsr0{u5%_?1g{y?*PPHSNIA(?tcamvs_$%gMFs=eWUTs zn14mbyp&vAJ$N+!91=}hVB3D%ua9#5KImIW(`RmrwD}u84D<0dC4XTo{WX77nmvxJ zhi&`$PCe_zrwJbh?uV$yZ7Z6CrhFJr+dUe;otb^*^<w7nNlf;Q_b{3E=QVNL3zmbv zHF0<RHc_2?=XoXTejooK#I4)UqoXr3e~oaizHw}dT(vsJ%^Iudy4I3Ycq}+(+Oc3C zbe!cQb48Jh8WU!49cA$Oo4KT(nhW#Etg9~4uSZOq2k_zeE<%E7&RdzzMa;VS<SW<z zFGcC0NIwpRfUzqOv&}BVn<E~K(%Zp!3#4%xBmEx4EdLl{p6UG(l`=iZ$`SBpmburX zV7bO!KAT#`FGnud<qK<4K8SOPyJw$Egv)@u*0~&e1ToWxpd;+d_wkSExc)`w=lWLD zs*UeEX}>b6|B|TwY4!Pa&~H~8d0v}!u!?xG*9Hg(&)~zdT>se*&as$I!m`Alp0;HA zE+nw{Vn0L7^fbTbGxq5VV_PoYtcG*SEf;(!=B^^3LWFNeZMxLP|Fi9xfqwXN>{}qx z{~tt!{)PnoU&Mb1c%iub=eZ_VySt<GPownj5OZCA1~CI(ko?~I8IHwP_^Hzx_{HmU zi??!f{N<SIbKS!=LFMBfnZ?{6ERD_uX2!IO_7~oM$#Fbaf8Vrob<TS@F6u<^k9q#? z$AK6dj@8fk58=0nsmEKUZmu)++z@S8p0N*6RZ3Fha$z2iQ%wI3F^86OeCB6G2JzaQ zmd}2#3dSY6-l=2h(#>mTep8U`p$P@@(ujF4hv~5HceDLaWP9R9Y_&YFoKmo}-q^l_ zrfl!1s180lHmiNUE9K^mpYyV8MP%C+&-U((+eT(;uN(;uH`fh@u>aGT`<3Ov9AysQ zTurV&92?fZI?9|@XShAEe(d|~8kFCkMeBXMeXwtfF~`I&lXH<~yZ*Y<XCpmc`|q~z zJsS25m*K;9rqvT&^<5CfDVf}l<xJa;(MA<S|9m>yr6`wq>!Wr56$r#FqMh3g(LU#F z#I(5#J1R;yB4)bfy&fl{aeudU{TQ^tfL+$?{<98jYkr%X76<E$pWoU(E!tL74&r%d z=A7qCY@6fb&xcOJ;Bb5{h{o$1h^c=sN^?HK^t9y^tZym!)r@U$9d+tx>&mkoAEK(1 zWL<u~)`uKwXX78oo^v6lKh1v#UqsCEJa#eM9;M^?GA-Zl=Vy%RT<a&>h?<f=Oh>B? zQNHYjn8!B0D~cNT!SwwL_|W!Nd>DAWg}zVoDHyl;<j*zlWgFgCAA4VY%rf+0IRW8P zd|37deCYH2QJU9SXoJm8edBzKX?{D4$Ln7s{#W}lt-o9*H{+PXZ(ZL!_xS^ww`D=5 zAKce6@K^)aV(m;IaK6QUJ%<nd=kf2o_&wJ)jB0J%*_ID%hx<&n%kxNT=io#C=qJN< z_`DZ?rtJsf?H`!W{lM~QuEW^RWx{O$<L-~Cem^qTHsSk4|5t9zf7ZP!sMBwEeqYYC zpI0yreSyy@Nb}r)^)s+NM~)AP5~oJm0!*6uelhR+wEF0W_h&{s)5@XUe|vhye94dT zk`mr$+Hcx@ri-HW()Tlr!*$B%b4)%GB^qJNb&9_u$WROe+I$B8xL;br6%b)B#I&2X z-OXeFGuM4L*5{wRIS*~js^1@n@HCKrw;Fw6ImQg+(;dcmj?DBlAN}(4>rI$mIyFCi zx9cj=@TeuWQ5m(#^K+)ZgP3LfoEfJPO79REPV*_wxNXYy<#4%%{#+aR!+9f{eheR$ z<uxWQ%A1hMG{2!o{Z{@%n2	ng8$W{~y=?x7LBVubW1jfwl#1PahM-V*dQ(c5Wm1 zaE{6C$6tf@_l?7CBOY(+KIT8-!#w6l?Egyik-_iZz6@snd7YghZXf^C^}oyY@Bf|U zIRE>ATvvRU&w9ms0^Cp6qa(EC{+fN_{+c1)xW~<pu3;{CkMX;mGtejY%U{#udcyRb z^cA0Nq5+8KU&=uXV`(=}JvBpHm?@A8BfbeS)6?pSj^*>Y*2QXQe@;}NzZbK0G_Jgs zI;;NhIF094c3Snmngvlj^Nl{VjjC2X2S*8>*UhXqC1>jCW)_=iduU|K^Q&35oC__V zIy;_e>#wu$y3R~nKZn#@6?JHxSh_=vJLi7iyw162uFv~MzBVG}Q1;-%GQ2;*^_VXy zW}5dZsqfE!2s|g8<zG17ad=54=J$8I`F#oMS+KLaM(wUuWW~K!!M6N7u@!bR+txhw z=8fOmV_9C?XSfxgS+=~Ec=PQ05G>EKejC8;idnWxig`UaciQ#fTcWX{Jp=1l<1n__ zM(WVDIo=P^b71>TtBbagsUn}|GGXv(&h;65dUKbwbmENkR#BP}Z8+~`D1z^-o6mo6 z`Li!f{~_vA8WL>l%ZS;=!-#p`>BT6W10&XV5n{G^1PZgQs}S=$5Y18g3B)WnZGRAF zo%wf_dADcR{5tY;_&LkBJ@Cxd;%%dCZSlOeHB_T|&Ltr5nknnO7cquY&m=ItMKs38 zAZGqK{D&}~ey3o-w^@)kFMqIz6u4Z&z-u}Tex2d+WbpZ0x}=sP(Wkx6Joe*40)jt} z8w9f}TjC$v=DlUMeKBGzeqGOF`dg8H2V(ri?&Cj%#}TvMmk_fp>~`hjd5G!bEr_{} z-4Uhli}Z&Ov;0<3M|VTa^f8F(dp%;VlYD1P65_iMZ-e+*#4I<4m|;HS|G!!$ItO<9 z%6;PQE9JX-;KrSZAyM!#6C7LreEi)=bJ%<EVHy8i*awiw^eV($W_+%aY2L@;Sn;|# z)0f~MFm^Q)2%kmF`u}a?!+V*FH?wP4n{u5wa!G#CrveatJr^HpoJ(+#-yWs?SUiO^ z!zTA(UtGsrzC(?_Z(+x6F2Chd*DREewB{mr$G@jUUm1KqqSaH&gZW$z3^TW1zt8vE ztKa8yKkNg?!(U6{y)w3S13ql)IeggGI6hqVi4fTqfA*AZaXaRA$YTZDdLA*`!lSX; zzK%l7w$4V(?d--V{cXf-caz8UKYV-${h8|;D7vC?VvMdR{Hx1^m2gZr|Kph5fe)A0 z1Nd-EAIFDd{1<#U=KsKl%OC|~&SkO(VlJZ(Bc?AWAf|60MU21LrTm9*E#m*mu@A57 ztqQISbDLQjq*?A?y<WRGx;~9|=334ir=#7lZT$XZ^gN4uKKJ-(&l1r#GF21}zh!xy z%Zwpj?6+Z-q0LGHf}f8cjEcFuk4DToK8u*^1COap`{xWsqVyYxx!#<Km4o`15OaOH zGfE$c%Gl;rh`HYVHcCH@nB`BvKl%}FEB_Jp%Nh54w^@*;`HlPjz)tV_{Q>&Ndp!*I zASRvx{~7pZvN`={yEjkW4{-CV`QOiUt++OhiW2_$*l#0^Vb*g@^yv>#`bETaZ?ni} zZmV<p814uCI5ECE@_RXAfA5FqS3GVqUK%I%`f})dVxD_5=DC_zmd!b@q>pfW);`eZ zb3J76$0eWd*J-X_3_jl<mw2pT@cG-iBz}<01)rZ1r58srBWmYF>H86LNS}z(&myM& zHDq!*aGuF=$0@ni?E=J1pMaS9>G;R;Pa$Ss{)w1<`2q@Yn^}vP>3b1V??ue=1=vQ| z$MX=gk9_8i`|_8g^xq?WOBk_y9b)$VR>bUkGAiYKbZ^8=AB>p#(TG|8e-Lv_9!AVD zISbAtBfcCl)7K)V{sqJ=|2ATd)vj=gWA#6Xw@3V7lzs#;^*<tJ`TxlF9ImtfZ5++3 z7vKbc$D6meIp(x^n?D9|+u}1cix*Cn<F?2AFkXs#nR-?*V_wGvu5S!8W9D(0T#uOR z^3C|L4A)_-Zo2Qs^pi+ae~$kU-a^cLJ~xWhEp{(rrhD;^MR?xM@aHHWUxCp&%;!ZZ z@mz@I{J9V-Vg4?NnZGwHMfkU^E79Ee-R?Jj!!;XQhj`Yy8r9+F)l0C`-+e*4eFuo9 zzsH6`yQmsP?2ixB{4+3o_L+U&4gXk%^IC>^^_lAe)&YNCnfue3@5`I%2kT~@zkbNM z9^2(P7{k7ZsmE(yW4CJK*T7s2&b|-{R>^yd4Dsq)QaJm2E8j+W`XIyTU*w)r)E)pa z?@#z}$nue3`dI!$h}Yh<e2(8Lj31tdOIw~gbv*OOwdj0M^S8U>Ur+VdaleXo>D#n6 zqB?jD@BR2*(9~6IJaZJ4r@suey~1IP*KbtUjAswt?Rz4=9zNg1@a1S+x}x-hh*fXA z{bMv2p6h&(_SLR>U3ZyPU$~86pZ0Eby%p8P?;FjmYg4Y<-xSr;kC@%vJ?b;BH_ohg z+A{Ke*0s@$d0iW2eQeIho_Q~f;ph0U`IneLcmp4nEkq{Q*Oie^etz&&lrDwH-QFt1 zEI-Z9c*`taKG*M?=YEbBO)0P~o)^;RlU-Kq9K>__;KxnR0H)1(t%y~!u1BJ}*$~^} z^+<+O5Wj0%%W;n8pYIRXG3LM5^vwFAeZpM#Zk)%?U%%~t6q)P_uSd?+4|n}Nb<TB+ z^|KDv$-ryItozVttT<+Kw(&0Cp^vIz)vD)s#LVM&NV#r4gP7^}Gl4Llb<lmkHGSGT z@F;BQrz(m5v0fjj`99u=Oll9}!)Aw~^gfZn8HibaKEC*M!QD4GY1&w?jJ7LOZ@#hK zFpX)6LNxuDRSr{K1x#fXe46ubA6Vy?qQoB&Gwq+x=X0-2bK7TMUyagdA;Gp=5wq=K z#GLb2A(QFL5mUbw|7d?0GBG`m-GG?shY-`3BpA`ReG${A3lMW|e_fQm9Wl%O5HaoM zHKy_QG5@CgjeS4*wP;-6s{CY(EDQ9#D@y$nG1GjOm}T&zG8)@65Hro|`PAprS2rh_ z{vA-xiD{2Wf&A%+6VL$DVcjX4`2G8%Q5XHZ4<EQ1<FSzG0{%k?>yFEQJ`={_{BVx_ z0{!=MkGs$w)4x#5IKPAsOz#x=;_u7y`X7UT)8jP1{C?HP^l5o?ESh63#W@ti5Ak7} zVV(LO!K#hlLzPivb2wtU_VFk)tYaES<FupzZ!KJKxZY0^nZ#a<`s~w;qwZQ3w?!Z5 z>j_a}5el*_$BE05<HPj%{D;tin6`gH%<cMc6k?jsRWfitFthK|{GP`)$9a0nYa1Uc z*3Eqq!;ARLY-<T_Vx=rNd)hUy=OUkE6#a|3qdqdrr`ab4pXNS_!KeLx)2ID@llv$J zpYLPl(MLb$<Q$9IF8IeG<NS`}cU6?W9x?u6{5}DFc>*zZb+Ii_m}#6^OFslLeY*fL z_lGS}`n!?74=Savs}b`Wi~pXZKX2U}mC^SD5!3ez5c66JzX!>*zb5k>()1?_PVkz` z(TJJmH5pz*xiL!LhM3__#50%4rY`^gTjkw7vz<12O^<zI|JZj1pZ2^W61aU(<MRN_ zO2P8LpSBaGdA))9FA;OO^ZThxZ)%_2F(+f%oaHst$GQ-0G*I(%7Ju*gg{b5~aE^X* zePp;1G0V@#FLy08W6p77U9M(VufLYNebf%;5p4P&QTqFEhW`9`6UN7V7yrg-ejJbW z*S9@0X8jCY4h%kyR%LB>PH}Z`9>;KA<m1JtfLT{XKE8mMb*@51tm|$3L-Vmj{A2n$ z#H{-k#N2k*MrkIv4R4E>`lX0j{u;!r?<U0beLl<LUn#?P!n|+6F7~!XG;RA>^2P%F zIz19NXXbc3AEon<p#T0@drdTM^YJkykG^D2^M!3iRnI%3jlX~UEm+Y%-aBMSiu~J~ znFx;{=D7bcO7ng!7LoR?)Za#$%O{bA5bzTZ|K8;i-HVv(SuNMHYj-&kboHJnGv2tm z=OO0)t}LtISZ$69StswCF~qCWuG`_F-}ZO=_j9^BXvex3Gmxts#=aS)e}tG#aQ{O+ zUOOqMKi+$!V5&g-6G5!c|CUDF`gFcOeSS=PSCji6b=|U}#jP~Ut^l#j7xAI?U3|En zEI}sIy!Xfu&xd&VOY-qtMD%_LJ^RP`C$3leb3&ch-@NhXAn4cGuGv@xVx~ElVE8Ix zraL$07q1sC#dn{4TR!Ie67z4(TjzN8&mT`XCT!z|sEw~hZTf3>VV~cv&U56od;WxV zem<)6n^B$JQ97(M2R3)$-=bJ9=uJ$c7sc{HW&4u~K_A_ZR1A7dc^u(qGMUHsZ8)kh z;`-|HYK(ZF(&cr4Tx;t<2}iINp3R-5HhMs(sf}LHAJs;`5s$nskJkwtjTj}PZ|+wi zcowydYR&*n?#ni~W(}*pY@=MGH6Z6z6R5j@7A>G_<W(E!QhBu&^sHzdXm^bo*Nu!l zXu;8S)N9mlG-xzrG-5PnG;V~K%0yn}f%@fD0VrQy6@qqCyF7z%#OsKTR)buRYC%uR zwjQ)fwvC`F^`i;&2NCDNyQoLJ60y5#Za3;M>NM&$;=Lbd(Qh<pG-NblG-fnzG--s_ zX+_=_fL@UIMWC<Adt6kHeL((|8kHN>f?Ut*K(ENQ0rawZxdzm%TAD$hay<v_sruTC zcn8+ytuyK}>M=@4@U3yK@(;C^4EnO#NCVZYjdal7Y9rGq+bGv4->4Gg`cVbi{79~0 zHK4Dk=33CTs<{rdk7{l(T4ThgVx8J*Gz_{^OPbe=+%}U8DqY4l(m}VVjZDyI)J8Vw zRZ$M;)IC@(tt$f(4q%&5Ys1>`*F0J&bS1N~4Qbb*eNe?6ep@}&=Sp*$D>JtJBV z+EwL-Kp)+MUX2)y8I2oF8YN(6=q!?qQjOA$szJ`b8qlxgUoEIuUe$w+l`oB;KG7P` z*?Z8JW}{Z4cB2lXPNQz4agb|w0`$1r<y3c2Z6tzL%7bK3x$;s$E7WefQKnJ0QLa%n zDC!&N&#rHvy)~xwpeD7^2&z*XO`w-V&7gDCTB}jJQHN2dQMXaAQNK|#PPv^gsi4>8 zOFAe^zGQ;d$d_zTtvtvDy&%d1t&}eXMny&?MrB47MpZ^NMx7w%OBZO-QCyZipuecK zKG5go%K+#T${PfoD-VW@MvTUc#*MOYX~DIT4N6fPxu8+imk;`!+9(8FrMx0grP?Sl zDl@7usxqoEsx|5Wxpvoqc2&Dwpp(^F59oN;OQU|!d1`miXvk>9C>0k)+%}yBa(k6* z(1B_r4^*Ny3P2~g9)W%%DlsZEDhE}m-Abcsqt!-rMh!-5jGB!$fLzbVLCfXUB<Nsy zkbp}!AC`Yfpl;<QgD#Z^X+{}FSw=ZVc}4|Bt3j^aT2O`Btp{zU)*3;(s<kzs8nxDJ z)N0gj)L}FPay1WwKBk&SLH(+418BM0m;jxqyh+e1wULnIDak0+DBY+8<k~0&U86S2 zL1(MJN>HWRr~+NCnrn<|jk-XtmTu4*)zV8<wtb*0WjkQB-iQ~^+}e}?`i5+iLEn^Z z8t8iYk^y>Mlm*Jxej^8Tf+!EPN>l)<7ZriNASwafA}R%4C11*oDvhd*RvXnBH5jci zYBp*$YB%aI>NM&$>NV;&8Z;U*8ZjC(8aJxn){lJysJ4)Mvo)Y|G=9yXk7(3dKwnnR z+l<y4tuyK}8U?wfItKcTY90qo?8`PLKwnjTe00oFqEQ~m+2(^fWLpS2X+PQ)gO1yu zR0{gFs2sF|mQe-hHq~5ZRAW?YRBzO1)MV6R)MhjWa_ia#(6&d@gGtb*<W)j4w$S~V zmjrrFlnVNQyh;ZhBg!<&0^KD~bBywg3XF=3N{q^kDvYX(_|{=pbFERmQKL~F9=~%v z$_IV+7<yj>x>-Fc0bQehl!E>wPs@!ejjD}S8?}Ml5^M)8Dq_tYpx>#!PS9y;qZ?GB zydKcDd$L@g(SXr<qhX^_qx{9bwE|G<aq0)?pIX<7K}V|QQloOCT9EU!4s@Gr8$dhC zzedn9*)|!q7<Gf3Z4anRwtb*4%C;X=B-=rwA)^V9vz-L}OtuMlJn{|soCrEjw#i0m zM!6ton+JMawgsRAHIhZ356XjLP_gT|QMpkw$koyUI`DXoS{o=&wX6jlqFOpYXR4M? zqi&;wR9{OX=vdW~3~H2Z8t4kumkv5xwPYG)8|5118&!gwe^sCo)m#JGTs5x-tx$b+ zMh!-tAZObJI!CrWpc>isfi93&1E3+%deF`}9D^ayO4U4KG-fnzG-;HugSSXBN;OJ1 zssu$n0zKt=1lrE^2vp;GWYl0Z0&=#apv_O9ryD?f$>#}Bk!TWBr&<!;=PAi3)hOL4 z(<s}h4CGoX2Q5}>m7s6P(`wLXHEOFtuZe0w*Qnikqei19qZXq!qqRosjJk{xcJ#g^ zg3c*s&yzvB%9k|IzVaXg)FsLSZLQJB0UaXB1+A5T`9_6C#YUw@<wli8>p*T?Izi3y zr5m)BeCY-4CJ*{ScZmi;o6CbC(7~b+&>5mp&=2I*2BQfh{<x%56OEFM(u^{UvW#+! znn2FyX3&%JxfQg9d~OG2$kPtcI#DNRGx^sA`my}$G3qlKFj{XkY&2?=wZwan4H}UL zxuBipK|bh%YPS&dBT+GED|t`?`iVR!GpaDEGO97EHA>sbx0?>yvV?0+CMZ$uW`RDm z7xQwA@{F26Zq!;p8M18yRk=|E9U<EeqfVpR_xs~&9jIKkji7^N+XOmDy=(#9Cu#$2 zqyDZn>HwXlHad;Eje3pxjRuW|j7E$y(|wP!K-Kap2XuqH$_1US*7A)CjjBLyG^#<@ z%62s<S+=#Hvt(Ou)M(TXa<&7YZ_0K(=y2H%gAUagjDmhD8UvlH`o@hWjS_bDYLZc^ zQMyqn$hBJr`kvaY03D@vt3U;6tp@a<s1~$+4%dh}P^CO*Fj`~OY}9JhZq#AaY1D1R zA3JqkC4lagS4p5F<y9)^aQTuBdO(y3N|9Gtp!4Kaj!~Xbfl-lBiBXwRg;AAJ2grG~ z4)mbB>H;m3S3RI3<Vzpu=b{17VtF+PI$vH58I2f?8I2oF8YS%NZIg^rjmkjIt8&nQ zys88pA+M@I`SN8o=x3rj(01~w9&~}cYBXvxYB6dvT5Gh<sLQCwC?Ugpl?eKSyh;WY z$g4EaVe%yd)Fa9QCCjU9P?fyOHOe<CG%7YKH7Yl%G^#f007Xj>^rF1#0v+R)Am}Lh z(g*s5s2_Bpd>J$vG8!=&Ga5IVG|Jh{x0?(4o7&9>6{_7r(2;7b7}P5&0bQha%Zw_F zs*GxkYK`iRIzg_#U7*-0+-iG3MQXPXbhPUw=wjDPqamXaqcNk@-F?kzpe<E%2Iy$j zoCR8@nzKRGZdn@T8x<NA8?6R8pKC#jRdYS)Sk>GJDpbu)pkIobL6@kFR-<;K4x>(^ zZlhkKNswzd_5mDq)ovo_IJKJ$I!3Lffqo^*0Htb;%>;c+9%LKk8s!@m8WkIr8kHMW z8jXOQSEHcA<kbeyDe`IpR4iX6L08IygiKFKMyW>WMui|(a}nqm)m#Gl+rC^&N<p=% zuiU88Xbs5OHi1r-Z3}1*dDRA5DzDl>pHM9wMx938M!iOpplB)VfiZPU0klXpCxPl! zU#d~MQ69+I=7X+~Z6PQ@wnd<8Wm{rYX0#gQY->SvvaJWbU$zaPPs?_VQL|A$$k`5n zZkFwOP`Ye~LHlSlMnU(AHh{L&nllc%K{ZbrC157!@{){Fjna)Wjk1k$jaGx))#N6S z^RF57J^9xPs*rzepmuq{nZKiTM*X0uZ=iLqZ=g@gb_nzx*^U^E86`q-wn?DFmvg;J z1syNjG|>0)Srp4K$}%bfxvMV4pyOm)25OUSIj94lMVfy&s<ymlkZZREbf#?EKwpyW zTF@u86xJDafyR{A1KLMRrVn(SXuxPa=v?IugK9*hpihc67)^jar@Tqfo%rDQ0JA(L z8KoMf8)X`08|5118x<NA8<iTB8&w)r8?83l0CHnB4!T@pH3_;*V-?#QOF`Zz8YLU$ zft+nV=r-9Ff-aJ6F=(a6v=sEDs0{Q&)mLFuWmIESYgBL4Xw+oX2XY?tgYK3GgP?Qe z!4T-9YIg+mxM&QtL`!BIbc9<*EGJ6X2S+PW66h16RL~8gbkLVYnV?^)jcm|wMY%@# zMg^dI)!!nc5~DJs3Zp8c8lzgHdZR|8CZiUkHlwvh>x{aLdW`yv28`Al4I7ObZ7`ZJ ziha=cH_<5Bs2k*#RuAY2Ev-J#85+L<&~h!K^`HUKFla}O_$cUb(FRbtXdJ{X7gv~# z60&_>l2NKrx>2T4wo$H8zEPo3u~Df}56JbX7xapH)DPN8{tbdIaBCvy9JeNdo)C?K z?vwW$j3$g?I0`#8(J0v{&8QLNJXiy|=v0nIGblyvwt_O%T07`&Q3q%X`PT``6Lo{i zM7^L3Mg5>FMT4O0MMI!3iAF%ZYGVxa8__uE5fSfSa9_D77DL(*uO~R-`LLrjqYR@g zqa33=qXHw&VO=dHMrB47MpZ^NM(G#{H)_19bAv`L3$!~*;7SK*e|+$S2LAt8#IxWe z^}GmlsEF6(&k~h^E)rFMYDHC`Mo|r@SyT)9h1#eG^@|!nPid^y7&RNU8nqjB7<C$T z8}%CX8}XS3*T#_1h!Kx`PE9z#k4qwGT;q}q`k6dU1@Rb%CtQp&jrg0&ZcO<L!3#=R zt_*aEY%4%Vx^V%maN}ZBYg7-qL~0}GYEcvDMo|msE21{guT*n8=rwuOVbp2VZPaVj zZ!~B$WHe$lW;AXzX_T<kx0_^?YLsr2X_Rf$336lA1v*7z)dS-Ci+ekuQ?X1I#ri>S zt8arwLq;P;V@6pA`kJ#rUsTPxpc7SdK8Wito=OBgBq}y40d0n3KbD(Og;AAJjZv*p zy-}l4lTk*l_bL<gP8r+C2DQqoT+ns$B_H%x=O5^UTGGX!<3**QN>MrJGEpVyQ=)3n z=S8bQUlY}VeyuhdKo5)7fF2VygPstzg4T=LK~IS~K))Atf}R$2gN8)Cpg)NEK(}br z28`Al4I7ObZ7`ZJiXG%@Ni<3}N;AqZ$}-9^$}=i3Dl#fDDl@7usxqoEsx_)NYBXvx zYB6dvT5Gh<sLQCwsLyD?XuZ*}(Wub|qY0zfhiv?eDi8K+T@~n+Gr88)fYP;Y)PgS6 z608TEueGib^t7l6v`pn%Koz1^(9gA`+l@MmI*q!GdX4&x291V{MvTUc#*HS867swU zNk*wg=|-7G*+#iW%^<h;X#qWd7RRLx)S}U72R*7@b{KUUjey*F*(hj>kJ5G=^m~ok zB<N$RCE>%k3ah+C(3t8=HcB(fFv>Ej0XhFxgG$e48+D)+s<{DlmRnk&?J;*>6l*eS zF={hfYcv3IH4lPTspcWj>8fu8^bxf&3ffUMZ!nrL$~?r6K^EwG)shS15fx8<gFd5L z3PG!sR|MKg^_3Wv8C4in8TEpkr+uJxD_HXY=+mls5OkpG8!{R(N;=g0mkhdJw&|b~ zWSapxNVZu<IYuQQ*KR531=*H^J|Wvm&?V|o73dJvQe#wWRBzO1)CF=icZ2?}ntMSX zSIvE(!&KjZ(R!nVd~cfw+Ps3Jkqo+0wyB^3*`^z18Wn<EyG5X6*_ME=kZl?0BK4>o zbfjvjG^#dQZB%Ep4&-X?1ns7pyFs<8xfgV?YVHU9Q8Wn3(7t2{R45uIsohbd4Mr12 zvBP}1M5AP*G@}foETbHw29Wc)5%d}P+yvT1KDU6f<!LMEM0wS2)M3<VGzxO{je$O| z`o=*wslG|jm8vgxIIa__zC@#Bqco!oqb`uExf}Ggm0ae%pzT$2KWI<YJOKK-YF=+N zY&2?=dW5ep4fI{rmjSv;^<{yoRbMu!RrTc><r@_m6&tMvIZtarKUK~3px>&#M$oBh zqX~49@|r>4QX8#C?M59&okn9Ix8L0W`mNfS1bsm@Clp|=teTTRFN%^uZE7RUD8ner zD90$zsKBTm<l1cjji}uw(A8?U1@tks)&?3Dtp)9-HG3WCXi*pF98nMGW1>D#ooE1b zlW0BYtD<3}QBa>+8w1^@9*rAK8YLX*)g+@-qjaN8qimyGqkN-6qhg~{qjIB4qiUno zMs-FFMr(|kjk1^dan1oPJXc2&P=k722zp+lTMXJmBUA!v*JzX(RTxzn)fm+p)f;tz z-16-PZKHPkK-a0=e$aQ+#-P!V(FDk?_miL<Wt(sm&JpEl66ouyB^A`5yfn~vRbPft zmQjvTo)MpPb!{|(b~~Tr(gLbe&8?sb)z@y+Vbp2VZPaVjZ!~B$WRzU!+f4=Ks@-(Z zwQ4s5^bfV0Wt3x7401k~fPOC9GSJByg9=coYN-Tmu@8GxZM52GEyyhyKHK@EYUu)< zF54c^DXOmz^ss0E^gg#8fesT5fwoc`BSvFJ<3^K42}gU2B%@TLbfZk8Y@=F`>v<h0 z{Q~x_0d$ajZUiOEmnNeYqb^XiCW7{oZ6By!wgaHc)XVjtKZ%Axnd;>z=vdJP&`Qw+ z=u%Pa7(8_)N(8MDC4*W-X`qMHMh572qAbv(q8!lUqCC)(qI^(_`cY_9Y*cDgZd7Sh zZM52`&Zxm?jZw2vt5LgAhf$|dw^6TAztN!4kkN?In9;b=q*21LzUN6ssYdBWnMT=0 z;~=+gOn|<80oRRK5uTCLm?nZQ*HTRe{aKU-+EdFY9kh!^Jku!KDAy?8sL-g`sMM(3 zs14-Sx^~d_<<&Y+xxDHEogrU(K#z)gLA%SBexpI7A)^taF{5##?Bo1s<bYmQyLq5* zsoerlqgpEhjf;vwd#T-0qjIB4qiUnoMs-G=AlF|#iCe{`(2Kl7)owrN!)k31biZf_ zw5^uH2q<4P2KtC-9CWd05_FX)c09gyBu^8Kl8w@gGK{i}a*Xnf3XF=3_@t|Aqs*wn zsLH6usMe_7XdL85V*<2Hqmgg|<{%o4B+#cd2C1M|L}{RX_u;5z7-bpd808ri7!?`S zgWR^z0NU;%*0%;!t#+G1m1?aO^pvO_^nQ(Q2dF^Q2|8QU1v*P!^%(UT4H&IA8a5g= z+F&$c#4jzoniGwZjna&2LD8Ncbdh@006J6NuK}H{zBPeX$kP_1Hlu!!t7QQ6h-z66 zTCG}!LD#DmJ{@_!Y8f*cH_ANG*OCQ#PPOEK4wG#j=n&PH54upb6dDy9l^T^BHGrId zji6Ula}#KV>T3a=r#4za7pdlUqYk6>AXm!}Xp4)v^hZExT9#v=GgZqts8lsi8YP^B zaZz3(=n}P&Y?Nk{VU%T*V^jl*o(%vwUz$M$@}(8@*?s9%8|dR|W3ACTqb{Q!qdudA zlYPyJpx@N8zGTpKsyP+(;s=?RZj@=1ZIo-2Z&U_yK9_?YRn3*42Gv{zdPz0c7}Xlp z8#Nj=8O0Ei_%8~Wo?E~!+QRupSgRIHC5{gGjj3#X6W%AWld*sc<QA}qEyT;;+DhOm zNWec>IF<O_6zXkmK6$4H#CrvPmIe8Z0e1&{f50~c9F`CBj}7Xd2zW5C4SCzZ|33$1 z_@+M}{M&(;=G%6C2+Qz|13vgSzc77Tke?CoslG7c=71Lm{#+a6uL$^W0bdZ*`Pm@< z13~^Df_&UWvT$oq=E#6EtOVBVIQ(Lee`&zGZZ?&;a0+9m2mI@xt&a!!pALAhfN`na z!qdU{gzL{TOzC_`_kb8v0}JIwIN}D3i`*7M&a+(X{R0lyy)%ORki+`l3Hn<a@D2gv zf}@3Sdk>e_C#?jY8VR@};BX9|2=X5fxF`<a804=C7zYOnAs1LK&ea1B>q!jqL*|<= zec0du@zntz6L7c=gnUU*CLI5e&kD+f{Lf(g`GyZ4aB<5**jBg={?ba|{#{^uX25)V zs1L0k5a(|qhd$H=wjo~><cIa2ANUaVD_p+e{wG}b!gcb>p#J25JK}J--iF7NilBVB z+;NM;Lbz^+ywpnIDbIjE^k2rf@M|IT?KI29JS*5=h5Ojhwk;?hj(@mc4cEzVe--ip z!8&mNzrY_1Y(ox@xgm#T?hb6P2>SJ(;6sCB#BD)aD+Bg#KVw$7Erc8%n?4cPhRZA5 z);<-K3Adwg8^ko%!mo|+L{7l>2E07z%h3V11!dkJ9CP0Z@=F5#TrmDS2m9WdAfIms z@*(WYbv_gERzdmlAV1u<hwJ(3piG#5N|1j?&~7-73Xkt$Tj9EWL{Lw-EJ8kL9%aJv z^WpNK&T#)3a(E27IvDeC?)PSp-xBN-jtIsXCpH$o801%3F0M!f`8NmoD*`?t;M{re zH9?tk1LnJ<d^l}OPdHZ&e8>qnT%W^b7jn3*h54VJs(#v>Cp<3f7nC_G7|+l)E$}Ct zpM-pQ(66x0kk1P0`Df5Be-*@saLhv=!gVI()4d_$aI8v${AYst*9Q524f0n8`QiHT zg&_azfKLi+FA6xUhrf*FLuF9rGM|Y!+y<`*%6vU26V4CA{4WP(!u)s~mJc~BALf56 zs6WiF4D$aNa8=+x-_7O&-zMn8kO#y&Z$6c{D=7b)p!{V4hwX+OZ+pBhux*)YDi$uI z-vs&L`QWWV{@(*$6ZpALQ2#5zaU?BR?&0~`o<aU^gTDVDsORjUOt{Z^DDWX1=fWWW z9|4aB9G*w>mt%Yg%YV{mB0enW;~_!*s{y|mFfQR)I5MyekGZE~Qj2d>pqwKf^ZtYh z8{R1bIzuYw#*R`!FGx)TohdclC<FAW)J)J>QnQS*L4TE+1Nw+mt|5-Ne|%kPKB!!3 zfe}aZZ&HguAC=19IpUmPAvRci&kA(5)G{OPm9~~z0a_uo(x?iwSZXzBrPLau)gV6A zuqajwI#+6)Q9WpPsSTh?sf|W!K$%jTK<7zqHfjOwDYX@JgVZ*ocF?{BY<DeajnodK zb)Z9~c7kq|+GW%Y`iayY(6^=b8ufvGUBH_ALAOaAFd76sE_FSK&jRD!6h_0K=L?uO z0{V{BQKK=?nA8oR?@ApvngG2ibrN*D)EL%zM+u;}q$YyaN=-6K2K`-XD(HJsdF*qP z4oWzZUh!Jg|47X=;xS_zso9|KOXYFgQ7&jZsd*qi@r)<Vj0!+0QVT(MNG&od2JI-d z1az;|Qlm1^aZ<}cKapBt#G?+MZ&(!LKI1;A)kZa-k4fe1;|Zy?Ms=X&%V=8<`lHka zqejr3QrCcnr8XHggYJ>q0(w?zt5F;17gF0n&q-Zt)B$=->N*gg>s}P=H0mNr?FKzB zwa2Iz^jE2Upg&9PHyQvfIEwWRf?kli-e?H4oz!8_sMHaoQP9p($3TCPy1{51w5QYw z(2G(hjbaP&RJ7Ct&`VMijgmkINKFRu>2-YH&L|C(FEt(XveXQtOwi#{@e<zHD^jzK z`0L&UQgcDCO640>9p!_TNi6_vkXmR|1S*tT40=s!iBT!2L~0r6b*be>6`-@FR)Y8x zKGr{@YS0BzYe0XKy4t7~R4ug*^oG=WqXy8`QX4^UN?l{r1Zt4l44RPIV$=%ytkgEp zTT<JN)`A+Pc7WcNy3VK*bfeTR(BGwY8})#`D76>F?;7CS07m_wuS*>OZI6pDSpSUH zgZOL-_J1IL6Je2l3CGb0@>WV61*J(HGui<9xYTjb5~&kLlb}yYMU}Cgq$U{gjpWx# zO#<<I54g``lnVO1RL*5~mYQyq0cw((3EEw1mQgn7f28Js_LQ1ylm~i9YCdQ`sRc%b zAU?l>cXfgGms)I80(!sHQc#Z6GNW?P&QdEt2T83ossddnwHmZsYK_rq(1o~UisLWn zRH=1F^`MKTHh@Z{HX5w~T_Uv!behy=qZZJmQd>c%OKmf12VEw0EvQUthtWFFRZ=@a zXG-ld>IPjcwFh*T)Lx@L&^1!~K_8JiU^EE&l+^X0a;ZZ`!yrD>g5xjfda0vEW1s~^ zR5yTbk~(fQ0V<L@30fnS(>_NDpyQ?Tt-+s@nq<WH2lKfP?EgTYm&!K@JK~#!Pm-De zx=(7RQ5NVH+_1nmR6yNQbBy?&;ajEVf$o>eHx4^00Iii;2;w(-u>KhpgYK1D0(wAd zsZkl|eyQc4Ua1vEm7vF@R)HRtT5ZI)8t;2NTU!kpkjnQPJE{ZiFSQ=@h|~t7M$iFL z*MJ_C+GNxWIz(y<=rO6SMs1*csqG+sM+x&kqYlvFQrCeVm)dF61>%z(c<VRl38_6s zy`ZC|_JN+1+HW)fI!WpvXuZ_+Mnj;}qz;3gk~(5E3OYmT80hy>HyDkBR!E%yJuP+8 zD7G1nDN++af0mkPlmvQGYBJ~rsi{V3pl76}gGQxh81YTf!&0+Af03GPlmmKBYA)y{ zsd+~EpckbUfcRZ7e80<xZ<HRBS`2zwYKc)P=oP7DpjV}q8&!bbkXi}aAhpV<8pP*j z@U0rqYf@Jm)q?me4ZgbpdR=P0Q3EJhY9nY|>Kdaa(EFt}gWi<dV$=%STWT9<LTbCw zTF?ijc7S%nZI4B<bw-__6~)Z!0`c2&SpSTAKsQV61??lX&!`{tJ*fkrrBVlt)`K3G zIs`gU>afuW=sBsQpo6838EpV9zykpIE)6J8>V(lGXpvOj^#8C_zJ1$KB4{(Id=K{_ zQu!;@j#5EeNKFGBDwXf%c9a3yQfemX2&q{{*`S@J=75$-%{9sceNbvXh~Fn%6e}<) z1RW@~2z0d6Vxtn!K~hUW$4V_TDhC}VwE}dK)Jmf&(795pK_^S)o5dZi2AwCh7W4zD zbw>4|ElTKV18AMpMx!;LZKXDW?vmPU)B;MD+6uZ`YMW6zXtC6_pnIft7_9@PO6>%7 zO6@Z02E9*e59o(ddyV=)X;S+^_evcw8U*bmbv@`uQiqI&LFrOQKwVNtjmAK`NZkPX zvD9&+3D6!=CqX}v8r#BC0%$L(iJ<$WCK>Ua>e*6LLETc*jQDo-1Egkv?w6Wrlm$9a zYBuPnQge)QK?h0A1N}^DzEJ__V5x<m9;rn}#h?#MEdf0swbZB#bg0yF(9fk-7*&D} zlUfCOP-?YN4d@7|t3ka|YmMqaM@p>+{X%MkQ6uOmscS&Ll-gv}3_4nB3+Pu;TaDU4 z$4YGn^+{c8)B!q9>N?OvQag>hKqpA;2K`!Uk5Mn^M5%qC-$?B@8UURvbr94qb-mFL z=oG2Lpx;UzF&YJ(Ds>F>u+$Ak<Dj#oPJjlaP8#uN<t~z%0D44fqEQm)GO2tQ{-D%U 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%0A*wuziu|&d@Jp$n_w(^!w&c)ru4{bi_Rb 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≷3E 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 diff --git a/resources/3rdparty/gtest-1.6.0/build/Release/gtest.lib b/resources/3rdparty/gtest-1.6.0/build/Release/gtest.lib deleted file mode 100644 index 7ce843d371d2a8d7eacff3d3e38db5d5b6cc616c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3237446 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�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�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�=at&dgd>_Rf`{?AlzHtui<&%d!lHzoP|D$Ccc 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	W87Xd<fB|Aoe6g`Sk-3Oy+| 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�CnA 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 WP~PS1kRcz^@z~WfkrJ2x@Bas@lqdNB diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-string.h b/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-string.h deleted file mode 100644 index dc3a07be8..000000000 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-string.h +++ /dev/null @@ -1,350 +0,0 @@ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee) -// -// The Google C++ Testing Framework (Google Test) -// -// This header file declares the String class and functions used internally by -// Google Test. They are subject to change without notice. They should not used -// by code external to Google Test. -// -// This header file is #included by <gtest/internal/gtest-internal.h>. -// It should not be #included by other files. - -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ - -#ifdef __BORLANDC__ -// string.h is not guaranteed to provide strcpy on C++ Builder. -# include <mem.h> -#endif - -#include <string.h> -#include "gtest/internal/gtest-port.h" - -#include <string> - -namespace testing { -namespace internal { - -// String - a UTF-8 string class. -// -// For historic reasons, we don't use std::string. -// -// TODO(wan@google.com): replace this class with std::string or -// implement it in terms of the latter. -// -// Note that String can represent both NULL and the empty string, -// while std::string cannot represent NULL. -// -// NULL and the empty string are considered different. NULL is less -// than anything (including the empty string) except itself. -// -// This class only provides minimum functionality necessary for -// implementing Google Test. We do not intend to implement a full-fledged -// string class here. -// -// Since the purpose of this class is to provide a substitute for -// std::string on platforms where it cannot be used, we define a copy -// constructor and assignment operators such that we don't need -// conditional compilation in a lot of places. -// -// In order to make the representation efficient, the d'tor of String -// is not virtual. Therefore DO NOT INHERIT FROM String. -class GTEST_API_ String { - public: - // Static utility methods - - // Returns the input enclosed in double quotes if it's not NULL; - // otherwise returns "(null)". For example, "\"Hello\"" is returned - // for input "Hello". - // - // This is useful for printing a C string in the syntax of a literal. - // - // Known issue: escape sequences are not handled yet. - static String ShowCStringQuoted(const char* c_str); - - // Clones a 0-terminated C string, allocating memory using new. The - // caller is responsible for deleting the return value using - // delete[]. Returns the cloned string, or NULL if the input is - // NULL. - // - // This is different from strdup() in string.h, which allocates - // memory using malloc(). - static const char* CloneCString(const char* c_str); - -#if GTEST_OS_WINDOWS_MOBILE - // Windows CE does not have the 'ANSI' versions of Win32 APIs. To be - // able to pass strings to Win32 APIs on CE we need to convert them - // to 'Unicode', UTF-16. - - // Creates a UTF-16 wide string from the given ANSI string, allocating - // memory using new. The caller is responsible for deleting the return - // value using delete[]. Returns the wide string, or NULL if the - // input is NULL. - // - // The wide string is created using the ANSI codepage (CP_ACP) to - // match the behaviour of the ANSI versions of Win32 calls and the - // C runtime. - static LPCWSTR AnsiToUtf16(const char* c_str); - - // Creates an ANSI string from the given wide string, allocating - // memory using new. The caller is responsible for deleting the return - // value using delete[]. Returns the ANSI string, or NULL if the - // input is NULL. - // - // The returned string is created using the ANSI codepage (CP_ACP) to - // match the behaviour of the ANSI versions of Win32 calls and the - // C runtime. - static const char* Utf16ToAnsi(LPCWSTR utf16_str); -#endif - - // Compares two C strings. Returns true iff they have the same content. - // - // Unlike strcmp(), this function can handle NULL argument(s). A - // NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool CStringEquals(const char* lhs, const char* rhs); - - // Converts a wide C string to a String using the UTF-8 encoding. - // NULL will be converted to "(null)". If an error occurred during - // the conversion, "(failed to convert from wide string)" is - // returned. - static String ShowWideCString(const wchar_t* wide_c_str); - - // Similar to ShowWideCString(), except that this function encloses - // the converted string in double quotes. - static String ShowWideCStringQuoted(const wchar_t* wide_c_str); - - // Compares two wide C strings. Returns true iff they have the same - // content. - // - // Unlike wcscmp(), this function can handle NULL argument(s). A - // NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool WideCStringEquals(const wchar_t* lhs, const wchar_t* rhs); - - // Compares two C strings, ignoring case. Returns true iff they - // have the same content. - // - // Unlike strcasecmp(), this function can handle NULL argument(s). - // A NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool CaseInsensitiveCStringEquals(const char* lhs, - const char* rhs); - - // Compares two wide C strings, ignoring case. Returns true iff they - // have the same content. - // - // Unlike wcscasecmp(), this function can handle NULL argument(s). - // A NULL C string is considered different to any non-NULL wide C string, - // including the empty string. - // NB: The implementations on different platforms slightly differ. - // On windows, this method uses _wcsicmp which compares according to LC_CTYPE - // environment variable. On GNU platform this method uses wcscasecmp - // which compares according to LC_CTYPE category of the current locale. - // On MacOS X, it uses towlower, which also uses LC_CTYPE category of the - // current locale. - static bool CaseInsensitiveWideCStringEquals(const wchar_t* lhs, - const wchar_t* rhs); - - // Formats a list of arguments to a String, using the same format - // spec string as for printf. - // - // We do not use the StringPrintf class as it is not universally - // available. - // - // The result is limited to 4096 characters (including the tailing - // 0). If 4096 characters are not enough to format the input, - // "<buffer exceeded>" is returned. - static String Format(const char* format, ...); - - // C'tors - - // The default c'tor constructs a NULL string. - String() : c_str_(NULL), length_(0) {} - - // Constructs a String by cloning a 0-terminated C string. - String(const char* a_c_str) { // NOLINT - if (a_c_str == NULL) { - c_str_ = NULL; - length_ = 0; - } else { - ConstructNonNull(a_c_str, strlen(a_c_str)); - } - } - - // Constructs a String by copying a given number of chars from a - // buffer. E.g. String("hello", 3) creates the string "hel", - // String("a\0bcd", 4) creates "a\0bc", String(NULL, 0) creates "", - // and String(NULL, 1) results in access violation. - String(const char* buffer, size_t a_length) { - ConstructNonNull(buffer, a_length); - } - - // The copy c'tor creates a new copy of the string. The two - // String objects do not share content. - String(const String& str) : c_str_(NULL), length_(0) { *this = str; } - - // D'tor. String is intended to be a final class, so the d'tor - // doesn't need to be virtual. - ~String() { delete[] c_str_; } - - // Allows a String to be implicitly converted to an ::std::string or - // ::string, and vice versa. Converting a String containing a NULL - // pointer to ::std::string or ::string is undefined behavior. - // Converting a ::std::string or ::string containing an embedded NUL - // character to a String will result in the prefix up to the first - // NUL character. - String(const ::std::string& str) { - ConstructNonNull(str.c_str(), str.length()); - } - - operator ::std::string() const { return ::std::string(c_str(), length()); } - -#if GTEST_HAS_GLOBAL_STRING - String(const ::string& str) { - ConstructNonNull(str.c_str(), str.length()); - } - - operator ::string() const { return ::string(c_str(), length()); } -#endif // GTEST_HAS_GLOBAL_STRING - - // Returns true iff this is an empty string (i.e. ""). - bool empty() const { return (c_str() != NULL) && (length() == 0); } - - // Compares this with another String. - // Returns < 0 if this is less than rhs, 0 if this is equal to rhs, or > 0 - // if this is greater than rhs. - int Compare(const String& rhs) const; - - // Returns true iff this String equals the given C string. A NULL - // string and a non-NULL string are considered not equal. - bool operator==(const char* a_c_str) const { return Compare(a_c_str) == 0; } - - // Returns true iff this String is less than the given String. A - // NULL string is considered less than "". - bool operator<(const String& rhs) const { return Compare(rhs) < 0; } - - // Returns true iff this String doesn't equal the given C string. A NULL - // string and a non-NULL string are considered not equal. - bool operator!=(const char* a_c_str) const { return !(*this == a_c_str); } - - // Returns true iff this String ends with the given suffix. *Any* - // String is considered to end with a NULL or empty suffix. - bool EndsWith(const char* suffix) const; - - // Returns true iff this String ends with the given suffix, not considering - // case. Any String is considered to end with a NULL or empty suffix. - bool EndsWithCaseInsensitive(const char* suffix) const; - - // Returns the length of the encapsulated string, or 0 if the - // string is NULL. - size_t length() const { return length_; } - - // Gets the 0-terminated C string this String object represents. - // The String object still owns the string. Therefore the caller - // should NOT delete the return value. - const char* c_str() const { return c_str_; } - - // Assigns a C string to this object. Self-assignment works. - const String& operator=(const char* a_c_str) { - return *this = String(a_c_str); - } - - // Assigns a String object to this object. Self-assignment works. - const String& operator=(const String& rhs) { - if (this != &rhs) { - delete[] c_str_; - if (rhs.c_str() == NULL) { - c_str_ = NULL; - length_ = 0; - } else { - ConstructNonNull(rhs.c_str(), rhs.length()); - } - } - - return *this; - } - - private: - // Constructs a non-NULL String from the given content. This - // function can only be called when c_str_ has not been allocated. - // ConstructNonNull(NULL, 0) results in an empty string (""). - // ConstructNonNull(NULL, non_zero) is undefined behavior. - void ConstructNonNull(const char* buffer, size_t a_length) { - char* const str = new char[a_length + 1]; - memcpy(str, buffer, a_length); - str[a_length] = '\0'; - c_str_ = str; - length_ = a_length; - } - - const char* c_str_; - size_t length_; -}; // class String - -// Streams a String to an ostream. Each '\0' character in the String -// is replaced with "\\0". -inline ::std::ostream& operator<<(::std::ostream& os, const String& str) { - if (str.c_str() == NULL) { - os << "(null)"; - } else { - const char* const c_str = str.c_str(); - for (size_t i = 0; i != str.length(); i++) { - if (c_str[i] == '\0') { - os << "\\0"; - } else { - os << c_str[i]; - } - } - } - return os; -} - -// Gets the content of the stringstream's buffer as a String. Each '\0' -// character in the buffer is replaced with "\\0". -GTEST_API_ String StringStreamToString(::std::stringstream* stream); - -// Converts a streamable value to a String. A NULL pointer is -// converted to "(null)". When the input value is a ::string, -// ::std::string, ::wstring, or ::std::wstring object, each NUL -// character in it is replaced with "\\0". - -// Declared here but defined in gtest.h, so that it has access -// to the definition of the Message class, required by the ARM -// compiler. -template <typename T> -String StreamableToString(const T& streamable); - -} // namespace internal -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ diff --git a/resources/3rdparty/gtest-1.6.0/msvc/gtest.sln b/resources/3rdparty/gtest-1.6.0/msvc/gtest.sln deleted file mode 100644 index 4b1f901fc..000000000 --- a/resources/3rdparty/gtest-1.6.0/msvc/gtest.sln +++ /dev/null @@ -1,55 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest", "gtest.vcxproj", "{C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest_main", "gtest_main.vcxproj", "{3AF54C8A-10BF-4332-9147-F68ED9862032}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest_unittest", "gtest_unittest.vcxproj", "{4D9FDFB5-986A-4139-823C-F4EE0ED481A1}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest_prod_test", "gtest_prod_test.vcxproj", "{24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Debug|Win32.ActiveCfg = Debug|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Debug|Win32.Build.0 = Debug|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Debug|x64.ActiveCfg = Debug|x64 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Debug|x64.Build.0 = Debug|x64 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Release|Win32.ActiveCfg = Release|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Release|Win32.Build.0 = Release|Win32 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Release|x64.ActiveCfg = Release|x64 - {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Release|x64.Build.0 = Release|x64 - {3AF54C8A-10BF-4332-9147-F68ED9862032}.Debug|Win32.ActiveCfg = Debug|Win32 - {3AF54C8A-10BF-4332-9147-F68ED9862032}.Debug|Win32.Build.0 = Debug|Win32 - {3AF54C8A-10BF-4332-9147-F68ED9862032}.Debug|x64.ActiveCfg = Debug|x64 - {3AF54C8A-10BF-4332-9147-F68ED9862032}.Debug|x64.Build.0 = Debug|x64 - {3AF54C8A-10BF-4332-9147-F68ED9862032}.Release|Win32.ActiveCfg = Release|Win32 - {3AF54C8A-10BF-4332-9147-F68ED9862032}.Release|Win32.Build.0 = Release|Win32 - {3AF54C8A-10BF-4332-9147-F68ED9862032}.Release|x64.ActiveCfg = Release|x64 - {3AF54C8A-10BF-4332-9147-F68ED9862032}.Release|x64.Build.0 = Release|x64 - {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Debug|Win32.ActiveCfg = Debug|Win32 - {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Debug|Win32.Build.0 = Debug|Win32 - {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Debug|x64.ActiveCfg = Debug|x64 - {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Debug|x64.Build.0 = Debug|x64 - {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Release|Win32.ActiveCfg = Release|Win32 - {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Release|Win32.Build.0 = Release|Win32 - {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Release|x64.ActiveCfg = Release|x64 - {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Release|x64.Build.0 = Release|x64 - {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Debug|Win32.ActiveCfg = Debug|Win32 - {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Debug|Win32.Build.0 = Debug|Win32 - {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Debug|x64.ActiveCfg = Debug|x64 - {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Debug|x64.Build.0 = Debug|x64 - {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Release|Win32.ActiveCfg = Release|Win32 - {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Release|Win32.Build.0 = Release|Win32 - {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Release|x64.ActiveCfg = Release|x64 - {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/resources/3rdparty/gtest-1.6.0/CHANGES b/resources/3rdparty/gtest-1.7.0/CHANGES similarity index 79% rename from resources/3rdparty/gtest-1.6.0/CHANGES rename to resources/3rdparty/gtest-1.7.0/CHANGES index 591924583..055213242 100644 --- a/resources/3rdparty/gtest-1.6.0/CHANGES +++ b/resources/3rdparty/gtest-1.7.0/CHANGES @@ -1,3 +1,30 @@ +Changes for 1.7.0: + +* New feature: death tests are supported on OpenBSD and in iOS + simulator now. +* New feature: Google Test now implements a protocol to allow + a test runner to detect that a test program has exited + prematurely and report it as a failure (before it would be + falsely reported as a success if the exit code is 0). +* New feature: Test::RecordProperty() can now be used outside of the + lifespan of a test method, in which case it will be attributed to + the current test case or the test program in the XML report. +* New feature (potentially breaking): --gtest_list_tests now prints + the type parameters and value parameters for each test. +* Improvement: char pointers and char arrays are now escaped properly + in failure messages. +* Improvement: failure summary in XML reports now includes file and + line information. +* Improvement: the <testsuites> XML element now has a timestamp attribute. +* Improvement: When --gtest_filter is specified, XML report now doesn't + contain information about tests that are filtered out. +* Fixed the bug where long --gtest_filter flag values are truncated in + death tests. +* Potentially breaking change: RUN_ALL_TESTS() is now implemented as a + function instead of a macro in order to work better with Clang. +* Compatibility fixes with C++ 11 and various platforms. +* Bug/warning fixes. + Changes for 1.6.0: * New feature: ADD_FAILURE_AT() for reporting a test failure at the diff --git a/resources/3rdparty/gtest-1.6.0/CMakeLists.txt b/resources/3rdparty/gtest-1.7.0/CMakeLists.txt similarity index 88% rename from resources/3rdparty/gtest-1.6.0/CMakeLists.txt rename to resources/3rdparty/gtest-1.7.0/CMakeLists.txt index b394cfea3..05094977b 100644 --- a/resources/3rdparty/gtest-1.6.0/CMakeLists.txt +++ b/resources/3rdparty/gtest-1.7.0/CMakeLists.txt @@ -77,7 +77,7 @@ target_link_libraries(gtest_main gtest) # # They are not built by default. To build them, set the # gtest_build_samples option to ON. You can do it by running ccmake -# or specifying the -Dbuild_gtest_samples=ON flag when running cmake. +# or specifying the -Dgtest_build_samples=ON flag when running cmake. if (gtest_build_samples) cxx_executable(sample1_unittest samples gtest_main samples/sample1.cc) @@ -124,6 +124,8 @@ if (gtest_build_tests) test/gtest-param-test2_test.cc) cxx_test(gtest-port_test gtest_main) cxx_test(gtest_pred_impl_unittest gtest_main) + cxx_test(gtest_premature_exit_test gtest + test/gtest_premature_exit_test.cc) cxx_test(gtest-printers_test gtest_main) cxx_test(gtest_prod_test gtest_main test/production.cc) @@ -140,10 +142,13 @@ if (gtest_build_tests) ############################################################ # C++ tests built with non-standard compiler flags. - cxx_library(gtest_no_exception "${cxx_no_exception}" - src/gtest-all.cc) - cxx_library(gtest_main_no_exception "${cxx_no_exception}" - src/gtest-all.cc src/gtest_main.cc) + # MSVC 7.1 does not support STL with exceptions disabled. + if (NOT MSVC OR MSVC_VERSION GREATER 1310) + cxx_library(gtest_no_exception "${cxx_no_exception}" + src/gtest-all.cc) + cxx_library(gtest_main_no_exception "${cxx_no_exception}" + src/gtest-all.cc src/gtest_main.cc) + endif() cxx_library(gtest_main_no_rtti "${cxx_no_rtti}" src/gtest-all.cc src/gtest_main.cc) @@ -189,11 +194,15 @@ if (gtest_build_tests) cxx_executable(gtest_break_on_failure_unittest_ test gtest) py_test(gtest_break_on_failure_unittest) - cxx_executable_with_flags( - gtest_catch_exceptions_no_ex_test_ - "${cxx_no_exception}" - gtest_main_no_exception - test/gtest_catch_exceptions_test_.cc) + # MSVC 7.1 does not support STL with exceptions disabled. + if (NOT MSVC OR MSVC_VERSION GREATER 1310) + cxx_executable_with_flags( + gtest_catch_exceptions_no_ex_test_ + "${cxx_no_exception}" + gtest_main_no_exception + test/gtest_catch_exceptions_test_.cc) + endif() + cxx_executable_with_flags( gtest_catch_exceptions_ex_test_ "${cxx_exception}" @@ -222,11 +231,14 @@ if (gtest_build_tests) cxx_executable(gtest_shuffle_test_ test gtest) py_test(gtest_shuffle_test) - cxx_executable(gtest_throw_on_failure_test_ test gtest_no_exception) - set_target_properties(gtest_throw_on_failure_test_ - PROPERTIES - COMPILE_FLAGS "${cxx_no_exception}") - py_test(gtest_throw_on_failure_test) + # MSVC 7.1 does not support STL with exceptions disabled. + if (NOT MSVC OR MSVC_VERSION GREATER 1310) + cxx_executable(gtest_throw_on_failure_test_ test gtest_no_exception) + set_target_properties(gtest_throw_on_failure_test_ + PROPERTIES + COMPILE_FLAGS "${cxx_no_exception}") + py_test(gtest_throw_on_failure_test) + endif() cxx_executable(gtest_uninitialized_test_ test gtest) py_test(gtest_uninitialized_test) @@ -239,7 +251,6 @@ if (gtest_build_tests) py_test(gtest_xml_output_unittest) endif() - if( MSVC ) # VS2012 doesn't support correctly the tuples yet add_definitions( /D _VARIADIC_MAX=10 ) endif() \ No newline at end of file diff --git a/resources/3rdparty/gtest-1.6.0/CONTRIBUTORS b/resources/3rdparty/gtest-1.7.0/CONTRIBUTORS similarity index 100% rename from resources/3rdparty/gtest-1.6.0/CONTRIBUTORS rename to resources/3rdparty/gtest-1.7.0/CONTRIBUTORS diff --git a/resources/3rdparty/gtest-1.6.0/COPYING b/resources/3rdparty/gtest-1.7.0/LICENSE similarity index 100% rename from resources/3rdparty/gtest-1.6.0/COPYING rename to resources/3rdparty/gtest-1.7.0/LICENSE diff --git a/resources/3rdparty/gtest-1.6.0/Makefile.am b/resources/3rdparty/gtest-1.7.0/Makefile.am similarity index 99% rename from resources/3rdparty/gtest-1.6.0/Makefile.am rename to resources/3rdparty/gtest-1.7.0/Makefile.am index cb350b75b..9c96b4257 100644 --- a/resources/3rdparty/gtest-1.6.0/Makefile.am +++ b/resources/3rdparty/gtest-1.7.0/Makefile.am @@ -6,6 +6,7 @@ ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = \ CHANGES \ CONTRIBUTORS \ + LICENSE \ include/gtest/gtest-param-test.h.pump \ include/gtest/internal/gtest-param-util-generated.h.pump \ include/gtest/internal/gtest-tuple.h.pump \ @@ -57,6 +58,7 @@ EXTRA_DIST += \ test/gtest-param-test_test.cc \ test/gtest-param-test_test.h \ test/gtest-port_test.cc \ + test/gtest_premature_exit_test.cc \ test/gtest-printers_test.cc \ test/gtest-test-part_test.cc \ test/gtest-tuple_test.cc \ @@ -261,6 +263,7 @@ FUSED_GTEST_SRC = \ fused-src/gtest/gtest.h \ fused-src/gtest/gtest_main.cc +if HAVE_PYTHON TESTS += test/fused_gtest_test check_PROGRAMS += test/fused_gtest_test test_fused_gtest_test_SOURCES = $(FUSED_GTEST_SRC) \ @@ -284,6 +287,7 @@ fused-gtest: $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) \ maintainer-clean-local: rm -rf "$(srcdir)/fused-src" +endif # Death tests may produce core dumps in the build directory. In case # this happens, clean them to keep distcleancheck happy. diff --git a/resources/3rdparty/gtest-1.6.0/Makefile.in b/resources/3rdparty/gtest-1.7.0/Makefile.in similarity index 96% rename from resources/3rdparty/gtest-1.6.0/Makefile.in rename to resources/3rdparty/gtest-1.7.0/Makefile.in index 11c9feb1a..874de7473 100644 --- a/resources/3rdparty/gtest-1.6.0/Makefile.in +++ b/resources/3rdparty/gtest-1.7.0/Makefile.in @@ -40,18 +40,19 @@ build_triplet = @build@ host_triplet = @host@ TESTS = samples/sample1_unittest$(EXEEXT) \ samples/sample10_unittest$(EXEEXT) \ - test/gtest_all_test$(EXEEXT) test/fused_gtest_test$(EXEEXT) + test/gtest_all_test$(EXEEXT) $(am__EXEEXT_1) check_PROGRAMS = samples/sample1_unittest$(EXEEXT) \ samples/sample10_unittest$(EXEEXT) \ - test/gtest_all_test$(EXEEXT) test/fused_gtest_test$(EXEEXT) + test/gtest_all_test$(EXEEXT) $(am__EXEEXT_1) +@HAVE_PYTHON_TRUE@am__append_1 = test/fused_gtest_test +@HAVE_PYTHON_TRUE@am__append_2 = test/fused_gtest_test subdir = . DIST_COMMON = README $(am__configure_deps) $(pkginclude_HEADERS) \ $(pkginclude_internal_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/build-aux/config.h.in \ $(top_srcdir)/configure $(top_srcdir)/scripts/gtest-config.in \ - COPYING build-aux/config.guess build-aux/config.sub \ - build-aux/depcomp build-aux/install-sh build-aux/ltmain.sh \ - build-aux/missing + build-aux/config.guess build-aux/config.sub build-aux/depcomp \ + build-aux/install-sh build-aux/ltmain.sh build-aux/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ @@ -107,6 +108,7 @@ samples_libsamples_la_LIBADD = am_samples_libsamples_la_OBJECTS = samples/sample1.lo \ samples/sample2.lo samples/sample4.lo samples_libsamples_la_OBJECTS = $(am_samples_libsamples_la_OBJECTS) +@HAVE_PYTHON_TRUE@am__EXEEXT_1 = test/fused_gtest_test$(EXEEXT) am_samples_sample10_unittest_OBJECTS = \ samples/sample10_unittest.$(OBJEXT) samples_sample10_unittest_OBJECTS = \ @@ -118,12 +120,15 @@ samples_sample1_unittest_OBJECTS = \ $(am_samples_sample1_unittest_OBJECTS) samples_sample1_unittest_DEPENDENCIES = lib/libgtest_main.la \ lib/libgtest.la samples/libsamples.la +am__test_fused_gtest_test_SOURCES_DIST = fused-src/gtest/gtest-all.cc \ + fused-src/gtest/gtest.h fused-src/gtest/gtest_main.cc \ + samples/sample1.cc samples/sample1_unittest.cc am__objects_1 = \ fused-src/gtest/test_fused_gtest_test-gtest-all.$(OBJEXT) \ fused-src/gtest/test_fused_gtest_test-gtest_main.$(OBJEXT) -am_test_fused_gtest_test_OBJECTS = $(am__objects_1) \ - samples/test_fused_gtest_test-sample1.$(OBJEXT) \ - samples/test_fused_gtest_test-sample1_unittest.$(OBJEXT) +@HAVE_PYTHON_TRUE@am_test_fused_gtest_test_OBJECTS = $(am__objects_1) \ +@HAVE_PYTHON_TRUE@ samples/test_fused_gtest_test-sample1.$(OBJEXT) \ +@HAVE_PYTHON_TRUE@ samples/test_fused_gtest_test-sample1_unittest.$(OBJEXT) test_fused_gtest_test_OBJECTS = $(am_test_fused_gtest_test_OBJECTS) test_fused_gtest_test_LDADD = $(LDADD) am_test_gtest_all_test_OBJECTS = test/gtest_all_test.$(OBJEXT) @@ -163,7 +168,7 @@ DIST_SOURCES = $(lib_libgtest_la_SOURCES) \ $(samples_libsamples_la_SOURCES) \ $(samples_sample10_unittest_SOURCES) \ $(samples_sample1_unittest_SOURCES) \ - $(test_fused_gtest_test_SOURCES) \ + $(am__test_fused_gtest_test_SOURCES_DIST) \ $(test_gtest_all_test_SOURCES) DATA = $(m4data_DATA) HEADERS = $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) @@ -205,6 +210,7 @@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ @@ -228,6 +234,7 @@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ @@ -257,6 +264,7 @@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ @@ -291,7 +299,6 @@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ @@ -326,7 +333,7 @@ ACLOCAL_AMFLAGS = -I m4 # xcode sample files # C++Builder project files -EXTRA_DIST = CHANGES CONTRIBUTORS \ +EXTRA_DIST = CHANGES CONTRIBUTORS LICENSE \ include/gtest/gtest-param-test.h.pump \ include/gtest/internal/gtest-param-util-generated.h.pump \ include/gtest/internal/gtest-tuple.h.pump \ @@ -344,10 +351,10 @@ EXTRA_DIST = CHANGES CONTRIBUTORS \ test/gtest-param-test2_test.cc test/gtest-param-test2_test.cc \ test/gtest-param-test_test.cc test/gtest-param-test_test.cc \ test/gtest-param-test_test.h test/gtest-port_test.cc \ - test/gtest-printers_test.cc test/gtest-test-part_test.cc \ - test/gtest-tuple_test.cc test/gtest-typed-test2_test.cc \ - test/gtest-typed-test_test.cc test/gtest-typed-test_test.h \ - test/gtest-unittest-api_test.cc \ + test/gtest_premature_exit_test.cc test/gtest-printers_test.cc \ + test/gtest-test-part_test.cc test/gtest-tuple_test.cc \ + test/gtest-typed-test2_test.cc test/gtest-typed-test_test.cc \ + test/gtest-typed-test_test.h test/gtest-unittest-api_test.cc \ test/gtest_break_on_failure_unittest_.cc \ test/gtest_catch_exceptions_test_.cc test/gtest_color_test_.cc \ test/gtest_env_var_test_.cc test/gtest_environment_test.cc \ @@ -492,10 +499,10 @@ FUSED_GTEST_SRC = \ fused-src/gtest/gtest.h \ fused-src/gtest/gtest_main.cc -test_fused_gtest_test_SOURCES = $(FUSED_GTEST_SRC) \ - samples/sample1.cc samples/sample1_unittest.cc +@HAVE_PYTHON_TRUE@test_fused_gtest_test_SOURCES = $(FUSED_GTEST_SRC) \ +@HAVE_PYTHON_TRUE@ samples/sample1.cc samples/sample1_unittest.cc -test_fused_gtest_test_CPPFLAGS = -I"$(srcdir)/fused-src" +@HAVE_PYTHON_TRUE@test_fused_gtest_test_CPPFLAGS = -I"$(srcdir)/fused-src" # Death tests may produce core dumps in the build directory. In case # this happens, clean them to keep distcleancheck happy. @@ -1214,6 +1221,7 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." +@HAVE_PYTHON_FALSE@maintainer-clean-local: clean: clean-am clean-am: clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ @@ -1320,20 +1328,20 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-m4dataDATA \ # Build rules for putting fused Google Test files into the distribution # package. The user can also create those files by manually running # scripts/fuse_gtest_files.py. -$(test_fused_gtest_test_SOURCES): fused-gtest - -fused-gtest: $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) \ - $(GTEST_SRC) src/gtest-all.cc src/gtest_main.cc \ - scripts/fuse_gtest_files.py - mkdir -p "$(srcdir)/fused-src" - chmod -R u+w "$(srcdir)/fused-src" - rm -f "$(srcdir)/fused-src/gtest/gtest-all.cc" - rm -f "$(srcdir)/fused-src/gtest/gtest.h" - "$(srcdir)/scripts/fuse_gtest_files.py" "$(srcdir)/fused-src" - cp -f "$(srcdir)/src/gtest_main.cc" "$(srcdir)/fused-src/gtest/" - -maintainer-clean-local: - rm -rf "$(srcdir)/fused-src" +@HAVE_PYTHON_TRUE@$(test_fused_gtest_test_SOURCES): fused-gtest + +@HAVE_PYTHON_TRUE@fused-gtest: $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) \ +@HAVE_PYTHON_TRUE@ $(GTEST_SRC) src/gtest-all.cc src/gtest_main.cc \ +@HAVE_PYTHON_TRUE@ scripts/fuse_gtest_files.py +@HAVE_PYTHON_TRUE@ mkdir -p "$(srcdir)/fused-src" +@HAVE_PYTHON_TRUE@ chmod -R u+w "$(srcdir)/fused-src" +@HAVE_PYTHON_TRUE@ rm -f "$(srcdir)/fused-src/gtest/gtest-all.cc" +@HAVE_PYTHON_TRUE@ rm -f "$(srcdir)/fused-src/gtest/gtest.h" +@HAVE_PYTHON_TRUE@ "$(srcdir)/scripts/fuse_gtest_files.py" "$(srcdir)/fused-src" +@HAVE_PYTHON_TRUE@ cp -f "$(srcdir)/src/gtest_main.cc" "$(srcdir)/fused-src/gtest/" + +@HAVE_PYTHON_TRUE@maintainer-clean-local: +@HAVE_PYTHON_TRUE@ rm -rf "$(srcdir)/fused-src" # Disables 'make install' as installing a compiled version of Google # Test can lead to undefined behavior due to violation of the diff --git a/resources/3rdparty/gtest-1.6.0/README b/resources/3rdparty/gtest-1.7.0/README similarity index 93% rename from resources/3rdparty/gtest-1.6.0/README rename to resources/3rdparty/gtest-1.7.0/README index 51a9376db..26f35a847 100644 --- a/resources/3rdparty/gtest-1.6.0/README +++ b/resources/3rdparty/gtest-1.7.0/README @@ -119,21 +119,22 @@ and Xcode) to compile ${GTEST_DIR}/src/gtest-all.cc -with - - ${GTEST_DIR}/include and ${GTEST_DIR} - -in the header search path. Assuming a Linux-like system and gcc, +with ${GTEST_DIR}/include in the system header search path and ${GTEST_DIR} +in the normal header search path. Assuming a Linux-like system and gcc, something like the following will do: - g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest-all.cc + g++ -isystem ${GTEST_DIR}/include -I${GTEST_DIR} \ + -pthread -c ${GTEST_DIR}/src/gtest-all.cc ar -rv libgtest.a gtest-all.o +(We need -pthread as Google Test uses threads.) + Next, you should compile your test source file with -${GTEST_DIR}/include in the header search path, and link it with gtest -and any other necessary libraries: +${GTEST_DIR}/include in the system header search path, and link it +with gtest and any other necessary libraries: - g++ -I${GTEST_DIR}/include path/to/your_test.cc libgtest.a -o your_test + g++ -isystem ${GTEST_DIR}/include -pthread path/to/your_test.cc libgtest.a \ + -o your_test As an example, the make/ directory contains a Makefile that you can use to build Google Test on systems where GNU make is available @@ -217,6 +218,16 @@ default build location. See the "xcodebuild" man page for more information about building different configurations and building in different locations. +If you wish to use the Google Test Xcode project with Xcode 4.x and +above, you need to either: + * update the SDK configuration options in xcode/Config/General.xconfig. + Comment options SDKROOT, MACOS_DEPLOYMENT_TARGET, and GCC_VERSION. If + you choose this route you lose the ability to target earlier versions + of MacOS X. + * Install an SDK for an earlier version. This doesn't appear to be + supported by Apple, but has been reported to work + (http://stackoverflow.com/questions/5378518). + Tweaking Google Test -------------------- diff --git a/resources/3rdparty/gtest-1.6.0/aclocal.m4 b/resources/3rdparty/gtest-1.7.0/aclocal.m4 similarity index 87% rename from resources/3rdparty/gtest-1.6.0/aclocal.m4 rename to resources/3rdparty/gtest-1.7.0/aclocal.m4 index 3ccdc5de7..e7df9fe0e 100644 --- a/resources/3rdparty/gtest-1.6.0/aclocal.m4 +++ b/resources/3rdparty/gtest-1.7.0/aclocal.m4 @@ -20,105 +20,6 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) -# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- -# -# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. -# Written by Scott James Remnant, 2004. -# -# This file is free software; the Free Software Foundation gives -# unlimited permission to copy and/or distribute it, with or without -# modifications, as long as this notice is preserved. - -# serial 5 lt~obsolete.m4 - -# These exist entirely to fool aclocal when bootstrapping libtool. -# -# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) -# which have later been changed to m4_define as they aren't part of the -# exported API, or moved to Autoconf or Automake where they belong. -# -# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN -# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us -# using a macro with the same name in our local m4/libtool.m4 it'll -# pull the old libtool.m4 in (it doesn't see our shiny new m4_define -# and doesn't know about Autoconf macros at all.) -# -# So we provide this file, which has a silly filename so it's always -# included after everything else. This provides aclocal with the -# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything -# because those macros already exist, or will be overwritten later. -# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. -# -# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. -# Yes, that means every name once taken will need to remain here until -# we give up compatibility with versions before 1.7, at which point -# we need to keep only those names which we still refer to. - -# This is to help aclocal find these macros, as it can't see m4_define. -AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) - -m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) -m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) -m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) -m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) -m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) -m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) -m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) -m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) -m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) -m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) -m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) -m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) -m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) -m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) -m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) -m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) -m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) -m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) -m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) -m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) -m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) -m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) -m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) -m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) -m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) -m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) -m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) -m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) -m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) -m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) -m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) -m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) -m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) -m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) -m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) -m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) -m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) -m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) -m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) -m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) -m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) -m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) -m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) -m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) -m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) -m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) -m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) -m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) -m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) -m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) -m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) -m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) -m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) -m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) - # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software # Foundation, Inc. # diff --git a/resources/3rdparty/gtest-1.6.0/build-aux/config.guess b/resources/3rdparty/gtest-1.7.0/build-aux/config.guess similarity index 86% rename from resources/3rdparty/gtest-1.6.0/build-aux/config.guess rename to resources/3rdparty/gtest-1.7.0/build-aux/config.guess index e3a2116a7..d622a44e5 100644 --- a/resources/3rdparty/gtest-1.6.0/build-aux/config.guess +++ b/resources/3rdparty/gtest-1.7.0/build-aux/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. -timestamp='2009-06-10' +timestamp='2012-02-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -17,9 +17,7 @@ timestamp='2009-06-10' # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -27,16 +25,16 @@ timestamp='2009-06-10' # the same distribution terms that you use for the rest of that program. -# Originally written by Per Bothner <per@bothner.com>. -# Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. +# Originally written by Per Bothner. Please send patches (context +# diff format) to <config-patches@gnu.org> and include a ChangeLog +# entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` @@ -56,8 +54,9 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -144,7 +143,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward @@ -180,7 +179,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in fi ;; *) - os=netbsd + os=netbsd ;; esac # The OS release @@ -223,7 +222,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on @@ -269,7 +268,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead @@ -295,7 +297,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo s390-ibm-zvmoe exit ;; *:OS400:*:*) - echo powerpc-ibm-os400 + echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} @@ -333,6 +335,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" @@ -391,23 +396,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; @@ -477,8 +482,8 @@ EOF echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ @@ -491,7 +496,7 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi - exit ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; @@ -548,7 +553,7 @@ EOF echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[456]) + *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -591,52 +596,52 @@ EOF 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac + esac ;; + esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >$dummy.c - #define _HPUX_SOURCE - #include <stdlib.h> - #include <unistd.h> + #define _HPUX_SOURCE + #include <stdlib.h> + #include <unistd.h> - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa @@ -727,22 +732,22 @@ EOF exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; @@ -766,14 +771,14 @@ EOF exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} @@ -785,13 +790,12 @@ EOF echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) @@ -800,19 +804,22 @@ EOF *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - *:Interix*:[3456]*) - case ${UNAME_MACHINE} in + *:Interix*:*) + case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T | authenticamd | genuineintel) + authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) @@ -854,6 +861,27 @@ EOF i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -861,20 +889,40 @@ EOF then echo ${UNAME_MACHINE}-unknown-linux-gnu else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) - echo cris-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu + echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) - echo frv-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -901,39 +949,18 @@ EOF #endif #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -942,14 +969,17 @@ EOF *) echo hppa-unknown-linux-gnu ;; esac exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -957,67 +987,18 @@ EOF sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include <features.h> - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both @@ -1025,11 +1006,11 @@ EOF echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. + # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) @@ -1061,7 +1042,7 @@ EOF fi exit ;; i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; @@ -1089,13 +1070,13 @@ EOF exit ;; pc:*:*:*) # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp - exit ;; + exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; @@ -1130,8 +1111,8 @@ EOF /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ @@ -1174,10 +1155,10 @@ EOF echo ns32k-sni-sysv fi exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says <Richard.M.Bartel@ccMail.Census.GOV> - echo i586-unisys-sysv4 - exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says <Richard.M.Bartel@ccMail.Census.GOV> + echo i586-unisys-sysv4 + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes <hewes@openmarket.com>. # How about differentiating between stratus architectures? -djm @@ -1203,11 +1184,11 @@ EOF exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv${UNAME_RELEASE} else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv${UNAME_RELEASE} fi - exit ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; @@ -1247,6 +1228,16 @@ EOF *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} @@ -1262,6 +1253,9 @@ EOF *:QNX:*:4*) echo i386-pc-qnx exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; @@ -1307,13 +1301,13 @@ EOF echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` + UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; @@ -1331,6 +1325,9 @@ EOF i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1353,11 +1350,11 @@ main () #include <sys/param.h> printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 - "4" + "4" #else - "" + "" #endif - ); exit (0); + ); exit (0); #endif #endif diff --git a/resources/3rdparty/gtest-1.6.0/build-aux/config.h.in b/resources/3rdparty/gtest-1.7.0/build-aux/config.h.in similarity index 100% rename from resources/3rdparty/gtest-1.6.0/build-aux/config.h.in rename to resources/3rdparty/gtest-1.7.0/build-aux/config.h.in diff --git a/resources/3rdparty/gtest-1.6.0/build-aux/config.sub b/resources/3rdparty/gtest-1.7.0/build-aux/config.sub similarity index 89% rename from resources/3rdparty/gtest-1.6.0/build-aux/config.sub rename to resources/3rdparty/gtest-1.7.0/build-aux/config.sub index eb0389a69..c894da455 100644 --- a/resources/3rdparty/gtest-1.6.0/build-aux/config.sub +++ b/resources/3rdparty/gtest-1.7.0/build-aux/config.sub @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011, 2012 Free Software Foundation, Inc. -timestamp='2009-06-11' +timestamp='2012-02-10' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -21,9 +21,7 @@ timestamp='2009-06-11' # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -32,13 +30,16 @@ timestamp='2009-06-11' # Please send patches to <config-patches@gnu.org>. Submit a context -# diff and a properly formatted ChangeLog entry. +# diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -72,8 +73,9 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -120,13 +122,18 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] @@ -149,12 +156,12 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) + -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; - -bluegene*) - os=-cnk + -bluegene*) + os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= @@ -170,10 +177,10 @@ case $os in os=-chorusos basic_machine=$1 ;; - -chorusrdb) - os=-chorusrdb + -chorusrdb) + os=-chorusrdb basic_machine=$1 - ;; + ;; -hiux*) os=-hiuxwe2 ;; @@ -242,17 +249,22 @@ case $basic_machine in # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ + | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ + | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ @@ -278,27 +290,39 @@ case $basic_machine in | moxie \ | mt \ | msp430 \ + | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ + | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ + | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -308,6 +332,21 @@ case $basic_machine in basic_machine=mt-unknown ;; + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. @@ -322,25 +361,29 @@ case $basic_machine in # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ + | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | be32-* | be64-* \ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -362,24 +405,29 @@ case $basic_machine in | mmix-* \ | mt-* \ | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ - | romp-* | rs6000-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ | tron-* \ - | v850-* | v850e-* | vax-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) @@ -404,7 +452,7 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; - abacus) + abacus) basic_machine=abacus-unknown ;; adobe68k) @@ -474,11 +522,20 @@ case $basic_machine in basic_machine=powerpc-ibm os=-cnk ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; c90) basic_machine=c90-cray os=-unicos ;; - cegcc) + cegcc) basic_machine=arm-unknown os=-cegcc ;; @@ -510,7 +567,7 @@ case $basic_machine in basic_machine=craynv-cray os=-unicosmp ;; - cr16) + cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; @@ -668,7 +725,6 @@ case $basic_machine in i370-ibm* | ibm*) basic_machine=i370-ibm ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 @@ -726,6 +782,9 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; + microblaze) + basic_machine=microblaze-xilinx + ;; mingw32) basic_machine=i386-pc os=-mingw32 @@ -762,10 +821,18 @@ case $basic_machine in ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; + msys) + basic_machine=i386-pc + os=-msys + ;; mvs) basic_machine=i370-ibm os=-mvs ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; ncr3000) basic_machine=i486-ncr os=-sysv4 @@ -830,6 +897,12 @@ case $basic_machine in np1) basic_machine=np1-gould ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -912,9 +985,10 @@ case $basic_machine in ;; power) basic_machine=power-ibm ;; - ppc) basic_machine=powerpc-unknown + ppc | ppcbe) basic_machine=powerpc-unknown ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown @@ -1008,6 +1082,9 @@ case $basic_machine in basic_machine=i860-stratus os=-sysv4 ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; sun2) basic_machine=m68000-sun ;; @@ -1064,20 +1141,8 @@ case $basic_machine in basic_machine=t90-cray os=-unicos ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; tile*) - basic_machine=tile-unknown + basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) @@ -1147,6 +1212,9 @@ case $basic_machine in xps | xps100) basic_machine=xps100-honeywell ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; ymp) basic_machine=ymp-cray os=-unicos @@ -1244,9 +1312,12 @@ esac if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases + # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; @@ -1268,8 +1339,8 @@ case $os in # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -kopensolaris* \ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ @@ -1281,8 +1352,9 @@ case $os in | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1290,7 +1362,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1329,7 +1401,7 @@ case $os in -opened*) os=-openedition ;; - -os400*) + -os400*) os=-os400 ;; -wince*) @@ -1378,7 +1450,7 @@ case $os in -sinix*) os=-sysv4 ;; - -tpf*) + -tpf*) os=-tpf ;; -triton*) @@ -1423,6 +1495,8 @@ case $os in -dicos*) os=-dicos ;; + -nacl*) + ;; -none) ;; *) @@ -1445,10 +1519,10 @@ else # system, and we'll never get to this point. case $basic_machine in - score-*) + score-*) os=-elf ;; - spu-*) + spu-*) os=-elf ;; *-acorn) @@ -1460,8 +1534,17 @@ case $basic_machine in arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff + c4x-* | tic4x-*) + os=-coff + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff ;; # This must come before the *-dec entry. pdp10-*) @@ -1481,14 +1564,11 @@ case $basic_machine in ;; m68000-sun) os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 ;; m68*-cisco) os=-aout ;; - mep-*) + mep-*) os=-elf ;; mips*-cisco) @@ -1515,7 +1595,7 @@ case $basic_machine in *-ibm) os=-aix ;; - *-knuth) + *-knuth) os=-mmixware ;; *-wec) diff --git a/resources/3rdparty/gtest-1.6.0/build-aux/depcomp b/resources/3rdparty/gtest-1.7.0/build-aux/depcomp similarity index 89% rename from resources/3rdparty/gtest-1.6.0/build-aux/depcomp rename to resources/3rdparty/gtest-1.7.0/build-aux/depcomp index df8eea7e4..bd0ac0895 100644 --- a/resources/3rdparty/gtest-1.6.0/build-aux/depcomp +++ b/resources/3rdparty/gtest-1.7.0/build-aux/depcomp @@ -1,10 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-12-04.11; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, +# 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,7 +44,7 @@ Environment variables: object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. + tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to <bug-automake@gnu.org>. @@ -90,10 +90,18 @@ if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 - cygpath_u="sed s,\\\\\\\\,/,g" + cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what @@ -158,10 +166,12 @@ gcc) ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as -## well. +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -405,6 +415,52 @@ tru64) rm -f "$tmpdepfile" ;; +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test "$stat" = 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/ \1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/ / + G + p +}' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. @@ -503,7 +559,9 @@ makedepend) touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation diff --git a/resources/3rdparty/gtest-1.6.0/build-aux/install-sh b/resources/3rdparty/gtest-1.7.0/build-aux/install-sh similarity index 95% rename from resources/3rdparty/gtest-1.6.0/build-aux/install-sh rename to resources/3rdparty/gtest-1.7.0/build-aux/install-sh index 6781b987b..a9244eb07 100644 --- a/resources/3rdparty/gtest-1.6.0/build-aux/install-sh +++ b/resources/3rdparty/gtest-1.7.0/build-aux/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -156,6 +156,10 @@ while test $# -ne 0; do -s) stripcmd=$stripprog;; -t) dst_arg=$2 + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac shift;; -T) no_target_directory=true;; @@ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac done fi @@ -200,7 +208,11 @@ if test $# -eq 0; then fi if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. @@ -228,9 +240,9 @@ fi for src do - # Protect names starting with `-'. + # Protect names problematic for `test' and other utilities. case $src in - -*) src=./$src;; + -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then @@ -252,12 +264,7 @@ do echo "$0: no destination specified." >&2 exit 1 fi - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. @@ -385,7 +392,7 @@ do case $dstdir in /*) prefix='/';; - -*) prefix='./';; + [-=\(\)!]*) prefix='./';; *) prefix='';; esac @@ -403,7 +410,7 @@ do for d do - test -z "$d" && continue + test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then diff --git a/resources/3rdparty/gtest-1.6.0/build-aux/ltmain.sh b/resources/3rdparty/gtest-1.7.0/build-aux/ltmain.sh similarity index 67% rename from resources/3rdparty/gtest-1.6.0/build-aux/ltmain.sh rename to resources/3rdparty/gtest-1.7.0/build-aux/ltmain.sh index 7ed280bc9..c2852d856 100644 --- a/resources/3rdparty/gtest-1.6.0/build-aux/ltmain.sh +++ b/resources/3rdparty/gtest-1.7.0/build-aux/ltmain.sh @@ -1,9 +1,9 @@ -# Generated from ltmain.m4sh. -# ltmain.sh (GNU libtool) 2.2.6b +# libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -32,50 +32,57 @@ # # Provide generalized library-building support services. # -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print informational messages (default) -# --version print version information -# -h, --help print short or long help message +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --no-warn don't display warning messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory # -# MODE-ARGS vary depending on the MODE. +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 -# automake: $automake_version -# autoconf: $autoconf_version +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1ubuntu1 +# automake: $automake_version +# autoconf: $autoconf_version # # Report bugs to <bug-libtool@gnu.org>. +# GNU libtool home page: <http://www.gnu.org/software/libtool/>. +# General help using GNU software: <http://www.gnu.org/gethelp/>. -PROGRAM=ltmain.sh +PROGRAM=libtool PACKAGE=libtool -VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" +VERSION="2.4.2 Debian-2.4.2-1ubuntu1" TIMESTAMP="" -package_revision=1.3017 +package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then @@ -91,10 +98,15 @@ fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + # NLS nuisances: We save the old values to restore during execute mode. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES @@ -107,24 +119,28 @@ do lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL $lt_unset CDPATH +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" : ${CP="cp -f"} -: ${ECHO="echo"} -: ${EGREP="/bin/grep -E"} -: ${FGREP="/bin/grep -F"} -: ${GREP="/bin/grep"} -: ${LN_S="ln -s"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} -: ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} @@ -144,6 +160,27 @@ IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} # func_dirname may be replaced by extended shell implementation + + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} # func_basename may be replaced by extended shell implementation + + # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: @@ -158,33 +195,183 @@ basename="s,^.*/,," # those functions but instead duplicate the functionality here. func_dirname_and_basename () { - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +} # func_dirname_and_basename may be replaced by extended shell implementation + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname may be replaced by extended shell implementation + + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } -# Generated shell functions inserted here. +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} # The name of this program: -# In the unlikely event $progname began with a '-', it would play havoc with -# func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result -case $progname in - -*) progname=./$progname ;; -esac # Make sure we have an absolute path for reexecution: case $progpath in @@ -196,7 +383,7 @@ case $progpath in ;; *) save_IFS="$IFS" - IFS=: + IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break @@ -215,6 +402,15 @@ sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + +# Sed substitution that converts a w32 file name or path +# which contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. @@ -243,7 +439,7 @@ opt_warning=: # name if it has been set yet. func_echo () { - $ECHO "$progname${mode+: }$mode: $*" + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... @@ -258,18 +454,25 @@ func_verbose () : } +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + # func_error arg... # Echo program name prefixed message to standard error. func_error () { - $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { - $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : @@ -326,9 +529,9 @@ func_mkdir_p () case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done - my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do @@ -378,7 +581,7 @@ func_mktempdir () func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi - $ECHO "X$my_tmpdir" | $Xsed + $ECHO "$my_tmpdir" } @@ -392,7 +595,7 @@ func_quote_for_eval () { case $1 in *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac @@ -419,7 +622,7 @@ func_quote_for_expand () { case $1 in *[\\\`\"]*) - my_arg=`$ECHO "X$1" | $Xsed \ + my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; @@ -488,15 +691,39 @@ func_show_eval_locale () fi } - - +# func_tr_sh +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} # func_version # Echo version message to standard output and exit. func_version () { - $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { + $opt_debug + + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ @@ -509,22 +736,28 @@ func_version () # Echo short help message to standard output and exit. func_usage () { - $SED -n '/^# Usage:/,/# -h/ { + $opt_debug + + $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" - $ECHO + echo $ECHO "run \`$progname --help | more' for full usage" exit $? } -# func_help -# Echo long help message to standard output and exit. +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. func_help () { + $opt_debug + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print s/^# // s/^# *$// s*\$progname*'$progname'* @@ -534,11 +767,18 @@ func_help () s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ - s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ - s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p - }' < "$progpath" - exit $? + d + } + /^# .* home page:/b print + /^# General help using/b print + ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi } # func_missing_arg argname @@ -546,63 +786,106 @@ func_help () # exit_cmd. func_missing_arg () { - func_error "missing argument for $1" + $opt_debug + + func_error "missing argument for $1." exit_cmd=exit } -exit_cmd=: +# func_split_short_opt shortopt +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +func_split_short_opt () +{ + my_sed_short_opt='1s/^\(..\).*$/\1/;q' + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +} # func_split_short_opt may be replaced by extended shell implementation + + +# func_split_long_opt longopt +# Set func_split_long_opt_name and func_split_long_opt_arg shell +# variables after splitting LONGOPT at the `=' sign. +func_split_long_opt () +{ + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' + my_sed_long_arg='1s/^--[^=]*=//' + + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +} # func_split_long_opt may be replaced by extended shell implementation + +exit_cmd=: -# Check that we have a working $ECHO. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then - # Yippee, $ECHO works! - : -else - # Restart under the correct shell, and then maybe $ECHO will work. - exec $SHELL "$progpath" --no-reexec ${1+"$@"} -fi -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<EOF -$* -EOF - exit $EXIT_SUCCESS -fi magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. -# $mode is unset nonopt= -execute_dlfiles= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 -opt_dry_run=false -opt_duplicate_deps=false -opt_silent=false -opt_debug=: - # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "${1}=\$${1}\${2}" +} # func_append may be replaced by extended shell implementation + +# func_append_quoted var value +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +func_append_quoted () +{ + func_quote_for_eval "${2}" + eval "${1}=\$${1}\\ \$func_quote_for_eval_result" +} # func_append_quoted may be replaced by extended shell implementation + + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "${@}"` +} # func_arith may be replaced by extended shell implementation + + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` +} # func_len may be replaced by extended shell implementation + + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} # func_lo2o may be replaced by extended shell implementation + + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} # func_xform may be replaced by extended shell implementation + + # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. @@ -636,16 +919,16 @@ func_config () # Display the features supported by this script. func_features () { - $ECHO "host: $host" + echo "host: $host" if test "$build_libtool_libs" = yes; then - $ECHO "enable shared libraries" + echo "enable shared libraries" else - $ECHO "disable shared libraries" + echo "disable shared libraries" fi if test "$build_old_libs" = yes; then - $ECHO "enable static libraries" + echo "enable static libraries" else - $ECHO "disable static libraries" + echo "disable static libraries" fi exit $? @@ -692,117 +975,209 @@ func_enable_tag () esac } -# Parse options once, thoroughly. This comes as soon as possible in -# the script to make things like `libtool --version' happen quickly. +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () { + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# Shorthand for --mode=foo, only valid as the first argument +case $1 in +clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; +compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; +execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; +finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; +install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; +link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; +esac + + + +# Option defaults: +opt_debug=: +opt_dry_run=false +opt_config=false +opt_preserve_dup_deps=false +opt_features=false +opt_finish=false +opt_help=false +opt_help_all=false +opt_silent=: +opt_warning=: +opt_verbose=: +opt_silent=false +opt_verbose=false - # Shorthand for --mode=foo, only valid as the first argument - case $1 in - clean|clea|cle|cl) - shift; set dummy --mode clean ${1+"$@"}; shift - ;; - compile|compil|compi|comp|com|co|c) - shift; set dummy --mode compile ${1+"$@"}; shift - ;; - execute|execut|execu|exec|exe|ex|e) - shift; set dummy --mode execute ${1+"$@"}; shift - ;; - finish|finis|fini|fin|fi|f) - shift; set dummy --mode finish ${1+"$@"}; shift - ;; - install|instal|insta|inst|ins|in|i) - shift; set dummy --mode install ${1+"$@"}; shift - ;; - link|lin|li|l) - shift; set dummy --mode link ${1+"$@"}; shift - ;; - uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) - shift; set dummy --mode uninstall ${1+"$@"}; shift - ;; - esac - # Parse non-mode specific arguments: - while test "$#" -gt 0; do +# Parse options once, thoroughly. This comes as soon as possible in the +# script to make things like `--version' happen as quickly as we can. +{ + # this just eases exit handling + while test $# -gt 0; do opt="$1" shift - case $opt in - --config) func_config ;; - - --debug) preserve_args="$preserve_args $opt" + --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" - opt_debug='set -x' $opt_debug ;; - - -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break - execute_dlfiles="$execute_dlfiles $1" - shift + --dry-run|--dryrun|-n) + opt_dry_run=: ;; - - --dry-run | -n) opt_dry_run=: ;; - --features) func_features ;; - --finish) mode="finish" ;; - - --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break - case $1 in - # Valid mode arguments: - clean) ;; - compile) ;; - execute) ;; - finish) ;; - install) ;; - link) ;; - relink) ;; - uninstall) ;; - - # Catch anything else as an error - *) func_error "invalid argument for $opt" - exit_cmd=exit - break - ;; - esac - - mode="$1" + --config) + opt_config=: +func_config + ;; + --dlopen|-dlopen) + optarg="$1" + opt_dlopen="${opt_dlopen+$opt_dlopen +}$optarg" shift ;; - --preserve-dup-deps) - opt_duplicate_deps=: ;; - - --quiet|--silent) preserve_args="$preserve_args $opt" - opt_silent=: + opt_preserve_dup_deps=: ;; - - --verbose| -v) preserve_args="$preserve_args $opt" + --features) + opt_features=: +func_features + ;; + --finish) + opt_finish=: +set dummy --mode finish ${1+"$@"}; shift + ;; + --help) + opt_help=: + ;; + --help-all) + opt_help_all=: +opt_help=': help-all' + ;; + --mode) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_mode="$optarg" +case $optarg in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; +esac + shift + ;; + --no-silent|--no-quiet) opt_silent=false +func_append preserve_args " $opt" ;; - - --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break - preserve_args="$preserve_args $opt $1" - func_enable_tag "$1" # tagname is set here + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; + --no-verbose) + opt_verbose=false +func_append preserve_args " $opt" + ;; + --silent|--quiet) + opt_silent=: +func_append preserve_args " $opt" + opt_verbose=false + ;; + --verbose|-v) + opt_verbose=: +func_append preserve_args " $opt" +opt_silent=false + ;; + --tag) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_tag="$optarg" +func_append preserve_args " $opt $optarg" +func_enable_tag "$optarg" shift ;; + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + # Separate optargs to long options: - -dlopen=*|--mode=*|--tag=*) - func_opt_split "$opt" - set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} + --*=*) + func_split_long_opt "$opt" + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; - -\?|-h) func_usage ;; - --help) opt_help=: ;; - --version) func_version ;; - - -*) func_fatal_help "unrecognized option \`$opt'" ;; - - *) nonopt="$opt" - break + # Separate non-argument short options: + -\?*|-h*|-n*|-v*) + func_split_short_opt "$opt" + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} + shift ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) @@ -810,82 +1185,44 @@ func_enable_tag () opt_duplicate_compiler_generated_deps=: ;; *) - opt_duplicate_compiler_generated_deps=$opt_duplicate_deps + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac - # Having warned about all mis-specified options, bail out if - # anything was wrong. - $exit_cmd $EXIT_FAILURE -} + $opt_help || { + # Sanity checks first: + func_check_version_match -# func_check_version_match -# Ensure that we are using m4 macros, and libtool script from the same -# release of libtool. -func_check_version_match () -{ - if test "$package_revision" != "$macro_revision"; then - if test "$VERSION" != "$macro_version"; then - if test -z "$macro_version"; then - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from an older release. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, but the -$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. -$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION -$progname: and run autoconf again. -_LT_EOF - fi - else - cat >&2 <<_LT_EOF -$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, -$progname: but the definition of this LT_INIT comes from revision $macro_revision. -$progname: You should recreate aclocal.m4 with macros from revision $package_revision -$progname: of $PACKAGE $VERSION and run autoconf again. -_LT_EOF + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" fi - exit $EXIT_MISMATCH - fi -} - - -## ----------- ## -## Main. ## -## ----------- ## - -$opt_help || { - # Sanity checks first: - func_check_version_match + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" - if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - func_fatal_configuration "not configured to build any kind of library" - fi + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi - test -z "$mode" && func_fatal_error "error: you must specify a MODE." + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$opt_mode' for more information." + } - # Darwin sucks - eval std_shrext=\"$shrext_cmds\" + # Bail if the options were screwed + $exit_cmd $EXIT_FAILURE +} - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - func_error "unrecognized option \`-dlopen'" - $ECHO "$help" 1>&2 - exit $EXIT_FAILURE - fi - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$progname --help --mode=$mode' for more information." -} +## ----------- ## +## Main. ## +## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. @@ -950,12 +1287,9 @@ func_ltwrapper_executable_p () # temporary ltwrapper_script. func_ltwrapper_scriptname () { - func_ltwrapper_scriptname_result="" - if func_ltwrapper_executable_p "$1"; then - func_dirname_and_basename "$1" "" "." - func_stripname '' '.exe' "$func_basename_result" - func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" - fi + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file @@ -1001,6 +1335,37 @@ func_source () } +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. @@ -1013,13 +1378,15 @@ func_infer_tag () if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do - func_quote_for_eval "$arg" - CC_quoted="$CC_quoted $func_quote_for_eval_result" + func_append_quoted CC_quoted "$arg" done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. - " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) @@ -1030,11 +1397,13 @@ func_infer_tag () CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. - func_quote_for_eval "$arg" - CC_quoted="$CC_quoted $func_quote_for_eval_result" + func_append_quoted CC_quoted "$arg" done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in - " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. @@ -1097,6 +1466,486 @@ EOF } } + +################################################## +# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # +################################################## + +# func_convert_core_file_wine_to_w32 ARG +# Helper function used by file name conversion functions when $build is *nix, +# and $host is mingw, cygwin, or some other w32 environment. Relies on a +# correctly configured wine environment available, with the winepath program +# in $build's $PATH. +# +# ARG is the $build file name to be converted to w32 format. +# Result is available in $func_convert_core_file_wine_to_w32_result, and will +# be empty on error (or when ARG is empty) +func_convert_core_file_wine_to_w32 () +{ + $opt_debug + func_convert_core_file_wine_to_w32_result="$1" + if test -n "$1"; then + # Unfortunately, winepath does not exit with a non-zero error code, so we + # are forced to check the contents of stdout. On the other hand, if the + # command is not found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both error code of + # zero AND non-empty stdout, which explains the odd construction: + func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via `$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $opt_debug + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result="$1" +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via `$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result="$1" +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + # func_mode_compile arg... func_mode_compile () { @@ -1137,12 +1986,12 @@ func_mode_compile () ;; -pie | -fpie | -fPIE) - pie_flag="$pie_flag $arg" + func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) - later="$later $arg" + func_append later " $arg" continue ;; @@ -1163,15 +2012,14 @@ func_mode_compile () save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" - func_quote_for_eval "$arg" - lastarg="$lastarg $func_quote_for_eval_result" + func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. - base_compile="$base_compile $lastarg" + func_append base_compile " $lastarg" continue ;; @@ -1187,8 +2035,7 @@ func_mode_compile () esac # case $arg_mode # Aesthetically quote the previous argument. - func_quote_for_eval "$lastarg" - base_compile="$base_compile $func_quote_for_eval_result" + func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in @@ -1213,7 +2060,7 @@ func_mode_compile () *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ - *.[fF][09]? | *.for | *.java | *.obj | *.sx) + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; @@ -1288,7 +2135,7 @@ func_mode_compile () # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then - output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= @@ -1319,17 +2166,16 @@ compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi - removelist="$removelist $output_obj" + func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist - removelist="$removelist $lockfile" + func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result @@ -1349,7 +2195,7 @@ compiler." if test -z "$output_obj"; then # Place PIC objects in $objdir - command="$command -o $lobj" + func_append command " -o $lobj" fi func_show_eval_locale "$command" \ @@ -1396,11 +2242,11 @@ compiler." command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then - command="$command -o $obj" + func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. - command="$command$suppress_output" + func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' @@ -1445,13 +2291,13 @@ compiler." } $opt_help || { -test "$mode" = compile && func_mode_compile ${1+"$@"} + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. - case $mode in + case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. @@ -1482,10 +2328,11 @@ This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes - -prefer-pic try to building PIC objects only - -prefer-non-pic try to building non-PIC objects only + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. @@ -1538,7 +2385,7 @@ either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: - -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." @@ -1558,6 +2405,8 @@ The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) @@ -1586,6 +2435,11 @@ The following components of LINK-COMMAND are treated specially: -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. @@ -1619,18 +2473,44 @@ Otherwise, only FILE itself is deleted using RM." ;; *) - func_fatal_help "invalid operation mode \`$mode'" + func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac - $ECHO + echo $ECHO "Try \`$progname --help' for more information about other modes." - - exit $? } - # Now that we've collected a possible --mode arg, show help if necessary - $opt_help && func_mode_help +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi # func_mode_execute arg... @@ -1643,13 +2523,16 @@ func_mode_execute () func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do + for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" @@ -1671,7 +2554,7 @@ func_mode_execute () dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" + func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" @@ -1712,7 +2595,7 @@ func_mode_execute () for file do case $file in - -*) ;; + -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then @@ -1728,8 +2611,7 @@ func_mode_execute () ;; esac # Quote arguments (to preserve shell metacharacters). - func_quote_for_eval "$file" - args="$args $func_quote_for_eval_result" + func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then @@ -1754,29 +2636,66 @@ func_mode_execute () # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" - $ECHO "export $shlibpath_var" + echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } -test "$mode" = execute && func_mode_execute ${1+"$@"} +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug - libdirs="$nonopt" + libs= + libdirs= admincmds= - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "\`$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument \`$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. @@ -1786,7 +2705,7 @@ func_mode_finish () if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" - $opt_dry_run || eval "$cmds" || admincmds="$admincmds + $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done @@ -1795,53 +2714,55 @@ func_mode_finish () # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS - $ECHO "X----------------------------------------------------------------------" | $Xsed - $ECHO "Libraries have been installed in:" - for libdir in $libdirs; do - $ECHO " $libdir" - done - $ECHO - $ECHO "If you ever happen to want to link against installed libraries" - $ECHO "in a given directory, LIBDIR, you must either use libtool, and" - $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" - $ECHO "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" - $ECHO " during execution" - fi - if test -n "$runpath_var"; then - $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" - $ECHO " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" - $ECHO " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - $ECHO " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - $ECHO + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo - $ECHO "See any operating system documentation about shared libraries for" - case $host in - solaris2.[6789]|solaris2.1[0-9]) - $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" - $ECHO "pages." - ;; - *) - $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." - ;; - esac - $ECHO "X----------------------------------------------------------------------" | $Xsed + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi exit $EXIT_SUCCESS } -test "$mode" = finish && func_mode_finish ${1+"$@"} +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... @@ -1852,7 +2773,7 @@ func_mode_install () # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. - $ECHO "X$nonopt" | $GREP shtool >/dev/null; then + case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " @@ -1866,7 +2787,12 @@ func_mode_install () # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" - install_prog="$install_prog$func_quote_for_eval_result" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac # We need to accept at least all the BSD install flags. dest= @@ -1876,10 +2802,12 @@ func_mode_install () install_type= isdir=no stripme= + no_mode=: for arg do + arg2= if test -n "$dest"; then - files="$files $dest" + func_append files " $dest" dest=$arg continue fi @@ -1887,10 +2815,9 @@ func_mode_install () case $arg in -d) isdir=yes ;; -f) - case " $install_prog " in - *[\\\ /]cp\ *) ;; - *) prev=$arg ;; - esac + if $install_cp; then :; else + prev=$arg + fi ;; -g | -m | -o) prev=$arg @@ -1904,6 +2831,10 @@ func_mode_install () *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi prev= else dest=$arg @@ -1914,7 +2845,11 @@ func_mode_install () # Aesthetically quote the argument. func_quote_for_eval "$arg" - install_prog="$install_prog $func_quote_for_eval_result" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ @@ -1923,6 +2858,13 @@ func_mode_install () test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" @@ -1977,10 +2919,13 @@ func_mode_install () case $file in *.$libext) # Do the static libraries later. - staticlibs="$staticlibs $file" + func_append staticlibs " $file" ;; *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" @@ -1994,23 +2939,23 @@ func_mode_install () if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; + *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; + *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" - dir="$dir$objdir" + func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that @@ -2023,9 +2968,9 @@ func_mode_install () if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else - relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" @@ -2043,7 +2988,7 @@ func_mode_install () test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. - func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in @@ -2083,7 +3028,7 @@ func_mode_install () func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) @@ -2183,7 +3128,7 @@ func_mode_install () if test -f "$lib"; then func_source "$lib" fi - libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no @@ -2202,7 +3147,7 @@ func_mode_install () file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. - relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" @@ -2221,7 +3166,7 @@ func_mode_install () } else # Install the binary that we compiled earlier. - file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi @@ -2257,11 +3202,13 @@ func_mode_install () # Set up the ranlib parameters. oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then - func_show_eval "$old_striplib $oldlib" 'exit $?' + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. @@ -2280,7 +3227,7 @@ func_mode_install () fi } -test "$mode" = install && func_mode_install ${1+"$@"} +test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p @@ -2323,6 +3270,22 @@ func_generate_dlsyms () extern \"C\" { #endif +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + /* External symbol declarations for the compiler. */\ " @@ -2332,10 +3295,11 @@ extern \"C\" { $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. - progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do - func_verbose "extracting global C symbols from \`$progfile'" - $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then @@ -2371,7 +3335,7 @@ extern \"C\" { eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in - *cygwin | *mingw* | *cegcc* ) + *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; @@ -2384,10 +3348,52 @@ extern \"C\" { func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" - $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' - eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" - } + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename="" + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname" ; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename="$func_basename_result" + else + # no lafile. user explicitly requested -dlpreopen <import library>. + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename" ; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac done $opt_dry_run || { @@ -2415,36 +3421,19 @@ extern \"C\" { if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else - $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi - $ECHO >> "$output_objdir/$my_dlsyms" "\ + echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; -" - case $host in - *cygwin* | *mingw* | *cegcc* ) - $ECHO >> "$output_objdir/$my_dlsyms" "\ -/* DATA imports from DLLs on WIN32 con't be const, because - runtime relocations are performed -- see ld's documentation - on pseudo-relocs. */" - lt_dlsym_const= ;; - *osf5*) - echo >> "$output_objdir/$my_dlsyms" "\ -/* This system does not cope well with relocations in const data */" - lt_dlsym_const= ;; - *) - lt_dlsym_const=const ;; - esac - - $ECHO >> "$output_objdir/$my_dlsyms" "\ -extern $lt_dlsym_const lt_dlsymlist +extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; -$lt_dlsym_const lt_dlsymlist +LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," @@ -2457,7 +3446,7 @@ lt_${my_prefix}_LTX_preloaded_symbols[] = eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac - $ECHO >> "$output_objdir/$my_dlsyms" "\ + echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; @@ -2484,7 +3473,7 @@ static const void *lt_preloaded_setup() { # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; @@ -2500,7 +3489,7 @@ static const void *lt_preloaded_setup() { for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; - *) symtab_cflags="$symtab_cflags $arg" ;; + *) func_append symtab_cflags " $arg" ;; esac done @@ -2515,16 +3504,16 @@ static const void *lt_preloaded_setup() { case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; @@ -2538,8 +3527,8 @@ static const void *lt_preloaded_setup() { # really was required. # Nullify the symbol file. - compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } @@ -2549,6 +3538,7 @@ static const void *lt_preloaded_setup() { # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug @@ -2559,9 +3549,11 @@ func_win32_libid () win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | - $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then - win32_nmres=`eval $NM -f posix -A $1 | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ @@ -2590,6 +3582,131 @@ func_win32_libid () $ECHO "$win32_libid_type" } +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi +} # func_extract_an_archive dir oldlib @@ -2598,7 +3715,18 @@ func_extract_an_archive () $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" - func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' + if test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else @@ -2669,7 +3797,7 @@ func_extract_archives () darwin_file= darwin_files= for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ @@ -2684,25 +3812,30 @@ func_extract_archives () func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } - -# func_emit_wrapper_part1 [arg=no] +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. # -# Emit the first part of a libtool wrapper script on stdout. -# For more information, see the description associated with -# func_emit_wrapper(), below. -func_emit_wrapper_part1 () +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () { - func_emit_wrapper_part1_arg1=no - if test -n "$1" ; then - func_emit_wrapper_part1_arg1=$1 - fi + func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL @@ -2718,7 +3851,6 @@ func_emit_wrapper_part1 () # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible @@ -2749,31 +3881,135 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then - ECHO=\"$qecho\" - file=\"\$0\" - # Make sure echo works. - if test \"X\$1\" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$ECHO works! - : - else - # Restart under the correct shell, and then maybe \$ECHO will work. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ " - $ECHO "\ + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. - thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do - destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then @@ -2783,30 +4019,13 @@ else esac fi - file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done -" -} -# end: func_emit_wrapper_part1 - -# func_emit_wrapper_part2 [arg=no] -# -# Emit the second part of a libtool wrapper script on stdout. -# For more information, see the description associated with -# func_emit_wrapper(), below. -func_emit_wrapper_part2 () -{ - func_emit_wrapper_part2_arg1=no - if test -n "$1" ; then - func_emit_wrapper_part2_arg1=$1 - fi - - $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. - WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then @@ -2814,7 +4033,7 @@ func_emit_wrapper_part2 () fi # remove .libs from thisdir case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi @@ -2869,6 +4088,18 @@ func_emit_wrapper_part2 () if test -f \"\$progdir/\$program\"; then" + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ @@ -2877,253 +4108,28 @@ func_emit_wrapper_part2 () # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi - # fixup the dll searchpath if we need to. - if test -n "$dllsearchpath"; then - $ECHO "\ - # Add the dll search path components to the executable PATH - PATH=$dllsearchpath:\$PATH -" - fi - $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. -" - case $host in - # Backslashes separate directories on plain windows - *-*-mingw | *-*-os2* | *-cegcc*) - $ECHO "\ - exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} -" - ;; - - *) - $ECHO "\ - exec \"\$progdir/\$program\" \${1+\"\$@\"} -" - ;; - esac - $ECHO "\ - \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 - exit 1 + func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 - $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } -# end: func_emit_wrapper_part2 - - -# func_emit_wrapper [arg=no] -# -# Emit a libtool wrapper script on stdout. -# Don't directly open a file because we may want to -# incorporate the script contents within a cygwin/mingw -# wrapper executable. Must ONLY be called from within -# func_mode_link because it depends on a number of variables -# set therein. -# -# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR -# variable will take. If 'yes', then the emitted script -# will assume that the directory in which it is stored is -# the $objdir directory. This is a cygwin/mingw-specific -# behavior. -func_emit_wrapper () -{ - func_emit_wrapper_arg1=no - if test -n "$1" ; then - func_emit_wrapper_arg1=$1 - fi - - # split this up so that func_emit_cwrapperexe_src - # can call each part independently. - func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" - func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" -} - - -# func_to_host_path arg -# -# Convert paths to host format when used with build tools. -# Intended for use with "native" mingw (where libtool itself -# is running under the msys shell), or in the following cross- -# build environments: -# $build $host -# mingw (msys) mingw [e.g. native] -# cygwin mingw -# *nix + wine mingw -# where wine is equipped with the `winepath' executable. -# In the native mingw case, the (msys) shell automatically -# converts paths for any non-msys applications it launches, -# but that facility isn't available from inside the cwrapper. -# Similar accommodations are necessary for $host mingw and -# $build cygwin. Calling this function does no harm for other -# $host/$build combinations not listed above. -# -# ARG is the path (on $build) that should be converted to -# the proper representation for $host. The result is stored -# in $func_to_host_path_result. -func_to_host_path () -{ - func_to_host_path_result="$1" - if test -n "$1" ; then - case $host in - *mingw* ) - lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - case $build in - *mingw* ) # actually, msys - # awkward: cmd appends spaces to result - lt_sed_strip_trailing_spaces="s/[ ]*\$//" - func_to_host_path_tmp1=`( cmd //c echo "$1" |\ - $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - *cygwin* ) - func_to_host_path_tmp1=`cygpath -w "$1"` - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - * ) - # Unfortunately, winepath does not exit with a non-zero - # error code, so we are forced to check the contents of - # stdout. On the other hand, if the command is not - # found, the shell will set an exit code of 127 and print - # *an error message* to stdout. So we must check for both - # error code of zero AND non-empty stdout, which explains - # the odd construction: - func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` - if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then - func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ - $SED -e "$lt_sed_naive_backslashify"` - else - # Allow warning below. - func_to_host_path_result="" - fi - ;; - esac - if test -z "$func_to_host_path_result" ; then - func_error "Could not determine host path corresponding to" - func_error " '$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback: - func_to_host_path_result="$1" - fi - ;; - esac - fi -} -# end: func_to_host_path -# func_to_host_pathlist arg -# -# Convert pathlists to host format when used with build tools. -# See func_to_host_path(), above. This function supports the -# following $build/$host combinations (but does no harm for -# combinations not listed here): -# $build $host -# mingw (msys) mingw [e.g. native] -# cygwin mingw -# *nix + wine mingw -# -# Path separators are also converted from $build format to -# $host format. If ARG begins or ends with a path separator -# character, it is preserved (but converted to $host format) -# on output. -# -# ARG is a pathlist (on $build) that should be converted to -# the proper representation on $host. The result is stored -# in $func_to_host_pathlist_result. -func_to_host_pathlist () -{ - func_to_host_pathlist_result="$1" - if test -n "$1" ; then - case $host in - *mingw* ) - lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' - # Remove leading and trailing path separator characters from - # ARG. msys behavior is inconsistent here, cygpath turns them - # into '.;' and ';.', and winepath ignores them completely. - func_to_host_pathlist_tmp2="$1" - # Once set for this call, this variable should not be - # reassigned. It is used in tha fallback case. - func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e 's|^:*||' -e 's|:*$||'` - case $build in - *mingw* ) # Actually, msys. - # Awkward: cmd appends spaces to result. - lt_sed_strip_trailing_spaces="s/[ ]*\$//" - func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ - $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - *cygwin* ) - func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ - $SED -e "$lt_sed_naive_backslashify"` - ;; - * ) - # unfortunately, winepath doesn't convert pathlists - func_to_host_pathlist_result="" - func_to_host_pathlist_oldIFS=$IFS - IFS=: - for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do - IFS=$func_to_host_pathlist_oldIFS - if test -n "$func_to_host_pathlist_f" ; then - func_to_host_path "$func_to_host_pathlist_f" - if test -n "$func_to_host_path_result" ; then - if test -z "$func_to_host_pathlist_result" ; then - func_to_host_pathlist_result="$func_to_host_path_result" - else - func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" - fi - fi - fi - IFS=: - done - IFS=$func_to_host_pathlist_oldIFS - ;; - esac - if test -z "$func_to_host_pathlist_result" ; then - func_error "Could not determine the host path(s) corresponding to" - func_error " '$1'" - func_error "Continuing, but uninstalled executables may not work." - # Fallback. This may break if $1 contains DOS-style drive - # specifications. The fix is not to complicate the expression - # below, but for the user to provide a working wine installation - # with winepath so that path translation in the cross-to-mingw - # case works properly. - lt_replace_pathsep_nix_to_dos="s|:|;|g" - func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ - $SED -e "$lt_replace_pathsep_nix_to_dos"` - fi - # Now, add the leading and trailing path separators back - case "$1" in - :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" - ;; - esac - case "$1" in - *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" - ;; - esac - ;; - esac - fi -} -# end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout @@ -3141,31 +4147,23 @@ func_emit_cwrapperexe_src () This wrapper executable should never be moved out of the build directory. If it is, it will not operate correctly. - - Currently, it simply execs the wrapper *script* "$SHELL $output", - but could eventually absorb all of the scripts functionality and - exec $objdir/$outputname directly. */ EOF cat <<"EOF" +#ifdef _MSC_VER +# define _CRT_SECURE_NO_DEPRECATE 1 +#endif #include <stdio.h> #include <stdlib.h> #ifdef _MSC_VER # include <direct.h> # include <process.h> # include <io.h> -# define setmode _setmode #else # include <unistd.h> # include <stdint.h> # ifdef __CYGWIN__ # include <io.h> -# define HAVE_SETENV -# ifdef __STRICT_ANSI__ -char *realpath (const char *, char *); -int putenv (char *); -int setenv (const char *, const char *, int); -# endif # endif #endif #include <malloc.h> @@ -3177,6 +4175,44 @@ int setenv (const char *, const char *, int); #include <fcntl.h> #include <sys/stat.h> +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) @@ -3192,14 +4228,7 @@ int setenv (const char *, const char *, int); # define S_IXGRP 0 #endif -#ifdef _MSC_VER -# define S_IXUSR _S_IEXEC -# define stat _stat -# ifndef _INTPTR_T_DEFINED -# define intptr_t int -# endif -#endif - +/* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' @@ -3230,10 +4259,6 @@ int setenv (const char *, const char *, int); # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ -#ifdef __CYGWIN__ -# define FOPEN_WB "wb" -#endif - #ifndef FOPEN_WB # define FOPEN_WB "w" #endif @@ -3246,22 +4271,13 @@ int setenv (const char *, const char *, int); if (stale) { free ((void *) stale); stale = 0; } \ } while (0) -#undef LTWRAPPER_DEBUGPRINTF -#if defined DEBUGWRAPPER -# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args -static void -ltwrapper_debugprintf (const char *fmt, ...) -{ - va_list args; - va_start (args, fmt); - (void) vfprintf (stderr, fmt, args); - va_end (args); -} +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; #else -# define LTWRAPPER_DEBUGPRINTF(args) +static int lt_debug = 0; #endif -const char *program_name = NULL; +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); @@ -3271,41 +4287,27 @@ char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); -void lt_fatal (const char *message, ...); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); -void lt_opt_process_env_set (const char *arg); -void lt_opt_process_env_prepend (const char *arg); -void lt_opt_process_env_append (const char *arg); -int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); - -static const char *script_text_part1 = -EOF - - func_emit_wrapper_part1 yes | - $SED -e 's/\([\\"]\)/\\\1/g' \ - -e 's/^/ "/' -e 's/$/\\n"/' - echo ";" - cat <<EOF - -static const char *script_text_part2 = +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); EOF - func_emit_wrapper_part2 yes | - $SED -e 's/\([\\"]\)/\\\1/g' \ - -e 's/^/ "/' -e 's/$/\\n"/' - echo ";" cat <<EOF -const char * MAGIC_EXE = "$magic_exe"; +volatile const char * MAGIC_EXE = "$magic_exe"; const char * LIB_PATH_VARNAME = "$shlibpath_var"; EOF if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - func_to_host_pathlist "$temp_rpath" + func_to_host_path "$temp_rpath" cat <<EOF -const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; +const char * LIB_PATH_VALUE = "$func_to_host_path_result"; EOF else cat <<"EOF" @@ -3314,10 +4316,10 @@ EOF fi if test -n "$dllsearchpath"; then - func_to_host_pathlist "$dllsearchpath:" + func_to_host_path "$dllsearchpath:" cat <<EOF const char * EXE_PATH_VARNAME = "PATH"; -const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; +const char * EXE_PATH_VALUE = "$func_to_host_path_result"; EOF else cat <<"EOF" @@ -3340,24 +4342,10 @@ EOF cat <<"EOF" #define LTWRAPPER_OPTION_PREFIX "--lt-" -#define LTWRAPPER_OPTION_PREFIX_LENGTH 5 -static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; - static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; - -static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7; -static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set"; - /* argument is putenv-style "foo=bar", value of foo is set to bar */ - -static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11; -static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend"; - /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */ - -static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10; -static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append"; - /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */ +static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; int main (int argc, char *argv[]) @@ -3374,10 +4362,13 @@ main (int argc, char *argv[]) int i; program_name = (char *) xstrdup (base_name (argv[0])); - LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); - LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); + newargz = XMALLOC (char *, argc + 1); - /* very simple arg parsing; don't want to rely on getopt */ + /* very simple arg parsing; don't want to rely on getopt + * also, copy all non cwrapper options to newargz, except + * argz[0], which is handled differently + */ + newargc=0; for (i = 1; i < argc; i++) { if (strcmp (argv[i], dumpscript_opt) == 0) @@ -3391,25 +4382,57 @@ EOF esac cat <<"EOF" - printf ("%s", script_text_part1); - printf ("%s", script_text_part2); + lt_dump_script (stdout); return 0; } + if (strcmp (argv[i], debug_opt) == 0) + { + lt_debug = 1; + continue; + } + if (strcmp (argv[i], ltwrapper_option_prefix) == 0) + { + /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX + namespace, but it is not one of the ones we know about and + have already dealt with, above (inluding dump-script), then + report an error. Otherwise, targets might begin to believe + they are allowed to use options in the LTWRAPPER_OPTION_PREFIX + namespace. The first time any user complains about this, we'll + need to make LTWRAPPER_OPTION_PREFIX a configure-time option + or a configure.ac-settable value. + */ + lt_fatal (__FILE__, __LINE__, + "unrecognized %s option: '%s'", + ltwrapper_option_prefix, argv[i]); + } + /* otherwise ... */ + newargz[++newargc] = xstrdup (argv[i]); } + newargz[++newargc] = NULL; + +EOF + cat <<EOF + /* The GNU banner must be the first non-error debug message */ + lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); +EOF + cat <<"EOF" + lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); + lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); - newargz = XMALLOC (char *, argc + 1); tmp_pathspec = find_executable (argv[0]); if (tmp_pathspec == NULL) - lt_fatal ("Couldn't find %s", argv[0]); - LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", - tmp_pathspec)); + lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); + lt_debugprintf (__FILE__, __LINE__, + "(main) found exe (before symlink chase) at: %s\n", + tmp_pathspec); actual_cwrapper_path = chase_symlinks (tmp_pathspec); - LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", - actual_cwrapper_path)); + lt_debugprintf (__FILE__, __LINE__, + "(main) found exe (after symlink chase) at: %s\n", + actual_cwrapper_path); XFREE (tmp_pathspec); - actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); + actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); strendzap (actual_cwrapper_path, actual_cwrapper_name); /* wrapper name transforms */ @@ -3427,8 +4450,9 @@ EOF target_name = tmp_pathspec; tmp_pathspec = 0; - LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", - target_name)); + lt_debugprintf (__FILE__, __LINE__, + "(main) libtool target name: %s\n", + target_name); EOF cat <<EOF @@ -3478,80 +4502,19 @@ EOF lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ lt_setenv ("DUALCASE", "1"); /* for MSK sh */ - lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); + /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must + be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) + because on Windows, both *_VARNAMEs are PATH but uninstalled + libraries must come first. */ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); + lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); - newargc=0; - for (i = 1; i < argc; i++) - { - if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) - { - if (argv[i][env_set_opt_len] == '=') - { - const char *p = argv[i] + env_set_opt_len + 1; - lt_opt_process_env_set (p); - } - else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) - { - lt_opt_process_env_set (argv[++i]); /* don't copy */ - } - else - lt_fatal ("%s missing required argument", env_set_opt); - continue; - } - if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) - { - if (argv[i][env_prepend_opt_len] == '=') - { - const char *p = argv[i] + env_prepend_opt_len + 1; - lt_opt_process_env_prepend (p); - } - else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) - { - lt_opt_process_env_prepend (argv[++i]); /* don't copy */ - } - else - lt_fatal ("%s missing required argument", env_prepend_opt); - continue; - } - if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) - { - if (argv[i][env_append_opt_len] == '=') - { - const char *p = argv[i] + env_append_opt_len + 1; - lt_opt_process_env_append (p); - } - else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) - { - lt_opt_process_env_append (argv[++i]); /* don't copy */ - } - else - lt_fatal ("%s missing required argument", env_append_opt); - continue; - } - if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) - { - /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX - namespace, but it is not one of the ones we know about and - have already dealt with, above (inluding dump-script), then - report an error. Otherwise, targets might begin to believe - they are allowed to use options in the LTWRAPPER_OPTION_PREFIX - namespace. The first time any user complains about this, we'll - need to make LTWRAPPER_OPTION_PREFIX a configure-time option - or a configure.ac-settable value. - */ - lt_fatal ("Unrecognized option in %s namespace: '%s'", - ltwrapper_option_prefix, argv[i]); - } - /* otherwise ... */ - newargz[++newargc] = xstrdup (argv[i]); - } - newargz[++newargc] = NULL; - - LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); + lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", + nonnull (lt_argv_zero)); for (i = 0; i < newargc; i++) { - LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); + lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", + i, nonnull (newargz[i])); } EOF @@ -3560,11 +4523,14 @@ EOF mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ + newargz = prepare_spawn (newargz); rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ - LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); + lt_debugprintf (__FILE__, __LINE__, + "(main) failed to launch target \"%s\": %s\n", + lt_argv_zero, nonnull (strerror (errno))); return 127; } return rval; @@ -3586,7 +4552,7 @@ xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) - lt_fatal ("Memory exhausted"); + lt_fatal (__FILE__, __LINE__, "memory exhausted"); return p; } @@ -3620,8 +4586,8 @@ check_executable (const char *path) { struct stat st; - LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", - path ? (*path ? path : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", + nonempty (path)); if ((!path) || (!*path)) return 0; @@ -3638,8 +4604,8 @@ make_executable (const char *path) int rval = 0; struct stat st; - LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", - path ? (*path ? path : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); if ((!path) || (!*path)) return 0; @@ -3665,8 +4631,8 @@ find_executable (const char *wrapper) int tmp_len; char *concat_name; - LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", - wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; @@ -3719,7 +4685,8 @@ find_executable (const char *wrapper) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); @@ -3744,7 +4711,8 @@ find_executable (const char *wrapper) } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); @@ -3770,8 +4738,9 @@ chase_symlinks (const char *pathspec) int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { - LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", - tmp_pathspec)); + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) @@ -3793,8 +4762,9 @@ chase_symlinks (const char *pathspec) } else { - char *errstr = strerror (errno); - lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); @@ -3807,7 +4777,8 @@ chase_symlinks (const char *pathspec) tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { - lt_fatal ("Could not follow symlinks for %s", pathspec); + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif @@ -3833,11 +4804,25 @@ strendzap (char *str, const char *pat) return str; } +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + static void -lt_error_core (int exit_status, const char *mode, +lt_error_core (int exit_status, const char *file, + int line, const char *mode, const char *message, va_list ap) { - fprintf (stderr, "%s: %s: ", program_name, mode); + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); @@ -3846,20 +4831,32 @@ lt_error_core (int exit_status, const char *mode, } void -lt_fatal (const char *message, ...) +lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); - lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + void lt_setenv (const char *name, const char *value) { - LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", - (name ? name : "<NULL>"), - (value ? value : "<NULL>"))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ @@ -3904,95 +4901,12 @@ lt_extend_str (const char *orig_value, const char *add, int to_end) return new_value; } -int -lt_split_name_value (const char *arg, char** name, char** value) -{ - const char *p; - int len; - if (!arg || !*arg) - return 1; - - p = strchr (arg, (int)'='); - - if (!p) - return 1; - - *value = xstrdup (++p); - - len = strlen (arg) - strlen (*value); - *name = XMALLOC (char, len); - strncpy (*name, arg, len-1); - (*name)[len - 1] = '\0'; - - return 0; -} - -void -lt_opt_process_env_set (const char *arg) -{ - char *name = NULL; - char *value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); - } - - lt_setenv (name, value); - XFREE (name); - XFREE (value); -} - -void -lt_opt_process_env_prepend (const char *arg) -{ - char *name = NULL; - char *value = NULL; - char *new_value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); - } - - new_value = lt_extend_str (getenv (name), value, 0); - lt_setenv (name, new_value); - XFREE (new_value); - XFREE (name); - XFREE (value); -} - -void -lt_opt_process_env_append (const char *arg) -{ - char *name = NULL; - char *value = NULL; - char *new_value = NULL; - - if (lt_split_name_value (arg, &name, &value) != 0) - { - XFREE (name); - XFREE (value); - lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); - } - - new_value = lt_extend_str (getenv (name), value, 1); - lt_setenv (name, new_value); - XFREE (new_value); - XFREE (name); - XFREE (value); -} - void lt_update_exe_path (const char *name, const char *value) { - LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", - (name ? name : "<NULL>"), - (value ? value : "<NULL>"))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); if (name && *name && value && *value) { @@ -4011,9 +4925,9 @@ lt_update_exe_path (const char *name, const char *value) void lt_update_lib_path (const char *name, const char *value) { - LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", - (name ? name : "<NULL>"), - (value ? value : "<NULL>"))); + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); if (name && *name && value && *value) { @@ -4023,11 +4937,158 @@ lt_update_lib_path (const char *name, const char *value) } } +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} EOF } # end: func_emit_cwrapperexe_src +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + # func_mode_link arg... func_mode_link () { @@ -4072,6 +5133,7 @@ func_mode_link () new_inherited_linker_flags= avoid_version=no + bindir= dlfiles= dlprefiles= dlself=no @@ -4164,6 +5226,11 @@ func_mode_link () esac case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. @@ -4195,9 +5262,9 @@ func_mode_link () ;; *) if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" + func_append dlfiles " $arg" else - dlprefiles="$dlprefiles $arg" + func_append dlprefiles " $arg" fi prev= continue @@ -4221,7 +5288,7 @@ func_mode_link () *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; - *) deplibs="$deplibs $qarg.ltframework" # this is fixed later + *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; @@ -4240,7 +5307,7 @@ func_mode_link () moreargs= for fil in `cat "$save_arg"` do -# moreargs="$moreargs $fil" +# func_append moreargs " $fil" arg=$fil # A libtool-controlled object. @@ -4269,7 +5336,7 @@ func_mode_link () if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" + func_append dlfiles " $pic_object" prev= continue else @@ -4281,7 +5348,7 @@ func_mode_link () # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" + func_append dlprefiles " $pic_object" prev= fi @@ -4351,12 +5418,12 @@ func_mode_link () if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; - *) rpath="$rpath $arg" ;; + *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; - *) xrpath="$xrpath $arg" ;; + *) func_append xrpath " $arg" ;; esac fi prev= @@ -4368,28 +5435,28 @@ func_mode_link () continue ;; weak) - weak_libs="$weak_libs $arg" + func_append weak_libs " $arg" prev= continue ;; xcclinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $qarg" + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) - compiler_flags="$compiler_flags $qarg" + func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) - linker_flags="$linker_flags $qarg" - compiler_flags="$compiler_flags $wl$qarg" + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" @@ -4425,6 +5492,11 @@ func_mode_link () continue ;; + -bindir) + prev=bindir + continue + ;; + -dlopen) prev=dlfiles continue @@ -4475,15 +5547,16 @@ func_mode_link () ;; -L*) - func_stripname '-L' '' "$arg" - dir=$func_stripname_result - if test -z "$dir"; then + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; @@ -4495,24 +5568,30 @@ func_mode_link () ;; esac case "$deplibs " in - *" -L$dir "*) ;; + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; *) - deplibs="$deplibs -L$dir" - lib_search_path="$lib_search_path $dir" + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; - *) dllsearchpath="$dllsearchpath:$dir";; + *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$dllsearchpath:$testbindir";; + *) func_append dllsearchpath ":$testbindir";; esac ;; esac @@ -4522,7 +5601,7 @@ func_mode_link () -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; @@ -4536,7 +5615,7 @@ func_mode_link () ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework - deplibs="$deplibs System.ltframework" + func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) @@ -4556,7 +5635,7 @@ func_mode_link () ;; esac fi - deplibs="$deplibs $arg" + func_append deplibs " $arg" continue ;; @@ -4568,21 +5647,22 @@ func_mode_link () # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. - -model|-arch|-isysroot) - compiler_flags="$compiler_flags $arg" + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - compiler_flags="$compiler_flags $arg" + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; + * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; @@ -4649,13 +5729,17 @@ func_mode_link () # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; + *) func_append xrpath " $dir" ;; esac continue ;; @@ -4708,8 +5792,8 @@ func_mode_link () for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" - arg="$arg $wl$func_quote_for_eval_result" - compiler_flags="$compiler_flags $func_quote_for_eval_result" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" @@ -4724,9 +5808,9 @@ func_mode_link () for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" - arg="$arg $wl$func_quote_for_eval_result" - compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" - linker_flags="$linker_flags $func_quote_for_eval_result" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" @@ -4754,23 +5838,27 @@ func_mode_link () arg="$func_quote_for_eval_result" ;; - # -64, -mips[0-9] enable 64-bit mode on the SGI compiler - # -r[0-9][0-9]* specifies the processor on the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler - # +DA*, +DD* enable 64-bit mode on the HP compiler - # -q* pass through compiler args for the IBM compiler - # -m*, -t[45]*, -txscale* pass through architecture-specific - # compiler args for GCC - # -F/path gives path to uninstalled frameworks, gcc on darwin - # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC - # @file GCC response files + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" - compiler_flags="$compiler_flags $arg" + func_append compiler_flags " $arg" continue ;; @@ -4782,7 +5870,7 @@ func_mode_link () *.$objext) # A standard object. - objs="$objs $arg" + func_append objs " $arg" ;; *.lo) @@ -4813,7 +5901,7 @@ func_mode_link () if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" + func_append dlfiles " $pic_object" prev= continue else @@ -4825,7 +5913,7 @@ func_mode_link () # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" + func_append dlprefiles " $pic_object" prev= fi @@ -4870,24 +5958,25 @@ func_mode_link () *.$libext) # An archive. - deplibs="$deplibs $arg" - old_deplibs="$old_deplibs $arg" + func_append deplibs " $arg" + func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. + func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. - dlfiles="$dlfiles $arg" + func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. - dlprefiles="$dlprefiles $arg" + func_append dlprefiles " $func_resolve_sysroot_result" prev= else - deplibs="$deplibs $arg" + func_append deplibs " $func_resolve_sysroot_result" fi continue ;; @@ -4925,7 +6014,7 @@ func_mode_link () if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi @@ -4934,6 +6023,8 @@ func_mode_link () func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" @@ -4954,12 +6045,12 @@ func_mode_link () # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do - if $opt_duplicate_deps ; then + if $opt_preserve_dup_deps ; then case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - libs="$libs $deplib" + func_append libs " $deplib" done if test "$linkmode" = lib; then @@ -4972,9 +6063,9 @@ func_mode_link () if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in - *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac - pre_post_deps="$pre_post_deps $pre_post_dep" + func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= @@ -5044,17 +6135,19 @@ func_mode_link () for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= + func_resolve_sysroot "$lib" case $lib in - *.la) func_source "$lib" ;; + *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do - deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` + func_basename "$deplib" + deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; - *) deplibs="$deplibs $deplib" ;; + *) func_append deplibs " $deplib" ;; esac done done @@ -5070,16 +6163,17 @@ func_mode_link () lib= found=no case $deplib in - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else - compiler_flags="$compiler_flags $deplib" + func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi @@ -5164,7 +6258,7 @@ func_mode_link () if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; - * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi @@ -5177,7 +6271,8 @@ func_mode_link () test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then @@ -5191,7 +6286,8 @@ func_mode_link () finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" @@ -5202,17 +6298,21 @@ func_mode_link () -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" - dir=$func_stripname_result + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; - *) xrpath="$xrpath $dir" ;; + *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; - *.la) lib="$deplib" ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" @@ -5230,7 +6330,7 @@ func_mode_link () match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi @@ -5240,15 +6340,15 @@ func_mode_link () ;; esac if test "$valid_a_lib" != yes; then - $ECHO + echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because the file extensions .$libext of this argument makes me believe" - $ECHO "*** that it is just a static archive that I should not use here." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." else - $ECHO + echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" @@ -5275,11 +6375,11 @@ func_mode_link () if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. - newdlprefiles="$newdlprefiles $deplib" + func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else - newdlfiles="$newdlfiles $deplib" + func_append newdlfiles " $deplib" fi fi continue @@ -5321,20 +6421,20 @@ func_mode_link () # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; - *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi - dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then - test -n "$dlopen" && dlfiles="$dlfiles $dlopen" - test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then @@ -5345,17 +6445,17 @@ func_mode_link () func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. - convenience="$convenience $ladir/$objdir/$old_library" - old_convenience="$old_convenience $ladir/$objdir/$old_library" + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" - if $opt_duplicate_deps ; then + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" @@ -5366,9 +6466,15 @@ func_mode_link () # Get the name of the library we link against. linklib= - for l in $old_library $library_names; do - linklib="$l" - done + if test -n "$old_library" && + { test "$prefer_static_libs" = yes || + test "$prefer_static_libs,$installed" = "built,no"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib="$l" + done + fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi @@ -5385,9 +6491,9 @@ func_mode_link () # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. - dlprefiles="$dlprefiles $lib $dependency_libs" + func_append dlprefiles " $lib $dependency_libs" else - newdlfiles="$newdlfiles $lib" + func_append newdlfiles " $lib" fi continue fi # $pass = dlopen @@ -5409,14 +6515,14 @@ func_mode_link () # Find the relevant object directory and library name. if test "X$installed" = Xyes; then - if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else - dir="$libdir" - absdir="$libdir" + dir="$lt_sysroot$libdir" + absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else @@ -5424,12 +6530,12 @@ func_mode_link () dir="$ladir" absdir="$abs_ladir" # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" @@ -5440,20 +6546,46 @@ func_mode_link () if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - newdlprefiles="$newdlprefiles $dir/$old_library" - # Keep a list of preopened convenience libraries to check - # that they are being used correctly in the link pass. - test -z "$libdir" && \ - dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" - # Otherwise, use the dlname, so that lt_dlopen finds it. - elif test -n "$dlname"; then - newdlprefiles="$newdlprefiles $dir/$dlname" - else - newdlprefiles="$newdlprefiles $dir/$linklib" - fi + case "$host" in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac fi # $pass = dlpreopen if test -z "$libdir"; then @@ -5471,7 +6603,7 @@ func_mode_link () if test "$linkmode" = prog && test "$pass" != link; then - newlib_search_path="$newlib_search_path $ladir" + func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no @@ -5484,7 +6616,8 @@ func_mode_link () for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" - newlib_search_path="$newlib_search_path $func_stripname_result" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? @@ -5495,12 +6628,12 @@ func_mode_link () # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi - if $opt_duplicate_deps ; then + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... @@ -5515,7 +6648,7 @@ func_mode_link () # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; - *) temp_rpath="$temp_rpath$absdir:" ;; + *) func_append temp_rpath "$absdir:" ;; esac fi @@ -5527,7 +6660,7 @@ func_mode_link () *) case "$compile_rpath " in *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" + *) func_append compile_rpath " $absdir" ;; esac ;; esac @@ -5536,7 +6669,7 @@ func_mode_link () *) case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" + *) func_append finalize_rpath " $libdir" ;; esac ;; esac @@ -5561,12 +6694,12 @@ func_mode_link () case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded - notinst_deplibs="$notinst_deplibs $lib" + func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" + func_append notinst_deplibs " $lib" need_relink=yes fi ;; @@ -5583,7 +6716,7 @@ func_mode_link () fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then - $ECHO + echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else @@ -5601,7 +6734,7 @@ func_mode_link () *) case "$compile_rpath " in *" $absdir "*) ;; - *) compile_rpath="$compile_rpath $absdir" + *) func_append compile_rpath " $absdir" ;; esac ;; esac @@ -5610,7 +6743,7 @@ func_mode_link () *) case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" + *) func_append finalize_rpath " $libdir" ;; esac ;; esac @@ -5664,7 +6797,7 @@ func_mode_link () linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" - if test "$linkmode" = prog || test "$mode" != relink; then + if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= @@ -5686,9 +6819,9 @@ func_mode_link () if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then - $ECHO - $ECHO "*** And there doesn't seem to be a static archive available" - $ECHO "*** The link will probably fail, sorry" + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi @@ -5715,12 +6848,12 @@ func_mode_link () test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" + add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" + func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi @@ -5742,7 +6875,7 @@ func_mode_link () if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; - *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then @@ -5756,13 +6889,13 @@ func_mode_link () test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi - if test "$linkmode" = prog || test "$mode" = relink; then + if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= @@ -5776,7 +6909,7 @@ func_mode_link () elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; - *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then @@ -5793,7 +6926,7 @@ func_mode_link () if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) - add_dir="$add_dir -L$inst_prefix_dir$libdir" + func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi @@ -5828,21 +6961,21 @@ func_mode_link () # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. - $ECHO + echo $ECHO "*** Warning: This system can not link to static lib archive $lib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then - $ECHO "*** But as you try to build a module library, libtool will still create " - $ECHO "*** a static module, that should work as long as the dlopening application" - $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then - $ECHO - $ECHO "*** However, this would only work if libtool was able to extract symbol" - $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" - $ECHO "*** not find such a program. So, this module is probably useless." - $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module @@ -5870,27 +7003,33 @@ func_mode_link () temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; - *) xrpath="$xrpath $temp_xrpath";; + *) func_append xrpath " $temp_xrpath";; esac;; - *) temp_deplibs="$temp_deplibs $libdir";; + *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi - newlib_search_path="$newlib_search_path $absdir" + func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" - if $opt_duplicate_deps ; then + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps ; then case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi - tmp_libs="$tmp_libs $deplib" + func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then @@ -5900,8 +7039,10 @@ func_mode_link () case $deplib in -L*) path="$deplib" ;; *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." - dir="$func_dirname_result" + dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; @@ -5928,8 +7069,8 @@ func_mode_link () if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi - compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" - linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi @@ -5962,7 +7103,7 @@ func_mode_link () compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else - compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" @@ -5979,7 +7120,7 @@ func_mode_link () for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; - *) lib_search_path="$lib_search_path $dir" ;; + *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= @@ -6037,10 +7178,10 @@ func_mode_link () -L*) case " $tmp_libs " in *" $deplib "*) ;; - *) tmp_libs="$tmp_libs $deplib" ;; + *) func_append tmp_libs " $deplib" ;; esac ;; - *) tmp_libs="$tmp_libs $deplib" ;; + *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" @@ -6056,7 +7197,7 @@ func_mode_link () ;; esac if test -n "$i" ; then - tmp_libs="$tmp_libs $i" + func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs @@ -6097,7 +7238,7 @@ func_mode_link () # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" - objs="$objs$old_deplibs" + func_append objs "$old_deplibs" ;; lib) @@ -6130,10 +7271,10 @@ func_mode_link () if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else - $ECHO + echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" - libobjs="$libobjs $objs" + func_append libobjs " $objs" fi fi @@ -6192,13 +7333,14 @@ func_mode_link () # which has an extra 1 added just for fun # case $version_type in + # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; - freebsd-aout|freebsd-elf|sunos) + freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" @@ -6311,7 +7453,7 @@ func_mode_link () versuffix="$major.$revision" ;; - linux) + linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" @@ -6334,7 +7476,7 @@ func_mode_link () done # Make executables depend on our current version. - verstring="$verstring:${current}.0" + func_append verstring ":${current}.0" ;; qnx) @@ -6402,10 +7544,10 @@ func_mode_link () fi func_generate_dlsyms "$libname" "$libname" "yes" - libobjs="$libobjs $symfileobj" + func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= - if test "$mode" != relink; then + if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= @@ -6421,7 +7563,7 @@ func_mode_link () continue fi fi - removelist="$removelist $p" + func_append removelist " $p" ;; *) ;; esac @@ -6432,27 +7574,28 @@ func_mode_link () # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - oldlibs="$oldlibs $output_objdir/$libname.$libext" + func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do - # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` - # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` - # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do - temp_xrpath="$temp_xrpath -R$libdir" + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; + *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then @@ -6466,7 +7609,7 @@ func_mode_link () for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; - *) dlfiles="$dlfiles $lib" ;; + *) func_append dlfiles " $lib" ;; esac done @@ -6476,19 +7619,19 @@ func_mode_link () for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; - *) dlprefiles="$dlprefiles $lib" ;; + *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework - deplibs="$deplibs System.ltframework" + func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. @@ -6505,7 +7648,7 @@ func_mode_link () *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then - deplibs="$deplibs -lc" + func_append deplibs " -lc" fi ;; esac @@ -6554,7 +7697,7 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" i="" ;; esac @@ -6565,21 +7708,21 @@ EOF set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which I believe you do not have" - $ECHO "*** because a test_compile did reveal that the linker did not use it for" - $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which I believe you do not have" + echo "*** because a test_compile did reveal that the linker did not use it for" + echo "*** its dynamic dependency list that programs get resolved with at runtime." fi fi ;; *) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" ;; esac done @@ -6597,7 +7740,7 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" i="" ;; esac @@ -6608,29 +7751,29 @@ EOF set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because a test_compile did reveal that the linker did not use this one" - $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because a test_compile did reveal that the linker did not use this one" + echo "*** as a dynamic dependency that programs can get resolved with at runtime." fi fi else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning! Library $i is needed by this library but I was not able to" - $ECHO "*** make it link in! You will probably need to install it or some" - $ECHO "*** library that it depends on before this library will be fully" - $ECHO "*** functional. Installing it before continuing would be even better." + echo "*** make it link in! You will probably need to install it or some" + echo "*** library that it depends on before this library will be fully" + echo "*** functional. Installing it before continuing would be even better." fi ;; *) - newdeplibs="$newdeplibs $i" + func_append newdeplibs " $i" ;; esac done @@ -6647,15 +7790,27 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` + if test -n "$file_magic_glob"; then + libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` + else + libnameglob=$libname + fi + test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + if test "$want_nocaseglob" = yes; then + shopt -s nocaseglob + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | @@ -6672,13 +7827,13 @@ EOF potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi @@ -6687,12 +7842,12 @@ EOF fi if test -n "$a_deplib" ; then droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because I did check the linker path looking for a file starting" + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else @@ -6703,7 +7858,7 @@ EOF ;; *) # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. @@ -6719,7 +7874,7 @@ EOF if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" ;; esac @@ -6730,9 +7885,9 @@ EOF potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi @@ -6741,12 +7896,12 @@ EOF fi if test -n "$a_deplib" ; then droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because I did check the linker path looking for a file starting" + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else @@ -6757,32 +7912,32 @@ EOF ;; *) # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" + func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" - tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ - -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi - if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | - $GREP . >/dev/null; then - $ECHO + case $tmp_deplibs in + *[!\ \ ]*) + echo if test "X$deplibs_check_method" = "Xnone"; then - $ECHO "*** Warning: inter-library dependencies are not supported in this platform." + echo "*** Warning: inter-library dependencies are not supported in this platform." else - $ECHO "*** Warning: inter-library dependencies are not known to be supported." + echo "*** Warning: inter-library dependencies are not known to be supported." fi - $ECHO "*** All declared inter-library dependencies are being dropped." + echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes - fi + ;; + esac ;; esac versuffix=$versuffix_save @@ -6794,23 +7949,23 @@ EOF case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then - $ECHO - $ECHO "*** Warning: libtool could not satisfy all declared inter-library" + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - $ECHO "*** a static module, that should work as long as the dlopening" - $ECHO "*** application is linked with the -dlopen flag." + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then - $ECHO - $ECHO "*** However, this would only work if libtool was able to extract symbol" - $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" - $ECHO "*** not find such a program. So, this module is probably useless." - $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" @@ -6820,16 +7975,16 @@ EOF build_libtool_libs=no fi else - $ECHO "*** The inter-library dependencies that have been dropped here will be" - $ECHO "*** automatically added whenever a program is linked with this library" - $ECHO "*** or is declared to -dlopen it." + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then - $ECHO - $ECHO "*** Since this library must not contain undefined symbols," - $ECHO "*** because either the platform does not support them or" - $ECHO "*** it was explicitly requested with -no-undefined," - $ECHO "*** libtool will only create a static version of it." + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module @@ -6846,9 +8001,9 @@ EOF # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) - newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac @@ -6861,7 +8016,7 @@ EOF *) case " $deplibs " in *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; + func_append new_libs " -L$path/$objdir" ;; esac ;; esac @@ -6871,10 +8026,10 @@ EOF -L*) case " $new_libs " in *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" @@ -6886,15 +8041,22 @@ EOF # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" - test "$mode" != relink && rpath="$compile_rpath$rpath" + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else @@ -6903,18 +8065,18 @@ EOF *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - dep_rpath="$dep_rpath $flag" + func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; + *) func_append perm_rpath " $libdir" ;; esac fi done @@ -6922,17 +8084,13 @@ EOF if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" - if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" - else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" - fi + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi @@ -6940,7 +8098,7 @@ EOF fi shlibpath="$finalize_shlibpath" - test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi @@ -6966,18 +8124,18 @@ EOF linknames= for link do - linknames="$linknames $link" + func_append linknames " $link" done # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" - delfiles="$delfiles $export_symbols" + func_append delfiles " $export_symbols" fi orig_export_symbols= @@ -7008,13 +8166,45 @@ EOF $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do + for cmd1 in $cmds; do IFS="$save_ifs" - eval cmd=\"$cmd\" - func_len " $cmd" - len=$func_len_result - if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test "$try_normal_branch" = yes \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=${output_objdir}/${output_la}.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. @@ -7036,7 +8226,7 @@ EOF if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then @@ -7048,7 +8238,7 @@ EOF # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi @@ -7058,7 +8248,7 @@ EOF case " $convenience " in *" $test_deplib "*) ;; *) - tmp_deplibs="$tmp_deplibs $test_deplib" + func_append tmp_deplibs " $test_deplib" ;; esac done @@ -7078,21 +8268,21 @@ EOF test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $convenience - libobjs="$libobjs $func_extract_archives_result" + func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" - linker_flags="$linker_flags $flag" + func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking - if test "$mode" = relink; then + if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi @@ -7137,7 +8327,8 @@ EOF save_libobjs=$libobjs fi save_output=$output - output_la=`$ECHO "X$output" | $Xsed -e "$basename"` + func_basename "$output" + output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. @@ -7150,13 +8341,16 @@ EOF if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" - $ECHO 'INPUT (' > $output + echo 'INPUT (' > $output for obj in $save_libobjs do - $ECHO "$obj" >> $output + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output done - $ECHO ')' >> $output - delfiles="$delfiles $output" + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" @@ -7170,10 +8364,12 @@ EOF fi for obj do - $ECHO "$obj" >> $output + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output done - delfiles="$delfiles $output" - output=$firstobj\"$file_list_spec$output\" + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." @@ -7197,17 +8393,19 @@ EOF # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext - objlist=$obj + objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result @@ -7217,11 +8415,12 @@ EOF # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi - delfiles="$delfiles $output" + func_append delfiles " $output" else output= @@ -7255,7 +8454,7 @@ EOF lt_exit=$? # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -7276,7 +8475,7 @@ EOF if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then @@ -7288,7 +8487,7 @@ EOF # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter - delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi @@ -7329,10 +8528,10 @@ EOF # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $dlprefiles - libobjs="$libobjs $func_extract_archives_result" + func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi @@ -7348,7 +8547,7 @@ EOF lt_exit=$? # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) @@ -7360,7 +8559,7 @@ EOF IFS="$save_ifs" # Restore the uninstalled library and exit - if test "$mode" = relink; then + if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then @@ -7441,18 +8640,21 @@ EOF if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' @@ -7512,8 +8714,8 @@ EOF case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac @@ -7524,14 +8726,14 @@ EOF if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" + func_append compile_command " ${wl}-bind_at_load" + func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac @@ -7545,7 +8747,7 @@ EOF *) case " $compile_deplibs " in *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; + func_append new_libs " -L$path/$objdir" ;; esac ;; esac @@ -7555,17 +8757,17 @@ EOF -L*) case " $new_libs " in *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac ;; - *) new_libs="$new_libs $deplib" ;; + *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" - compile_command="$compile_command $compile_deplibs" - finalize_command="$finalize_command $finalize_deplibs" + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. @@ -7573,7 +8775,7 @@ EOF # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; - *) finalize_rpath="$finalize_rpath $libdir" ;; + *) func_append finalize_rpath " $libdir" ;; esac done fi @@ -7592,18 +8794,18 @@ EOF *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" + func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; + *) func_append perm_rpath " $libdir" ;; esac fi case $host in @@ -7612,12 +8814,12 @@ EOF case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; - *) dllsearchpath="$dllsearchpath:$libdir";; + *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; - *) dllsearchpath="$dllsearchpath:$testbindir";; + *) func_append dllsearchpath ":$testbindir";; esac ;; esac @@ -7643,18 +8845,18 @@ EOF *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" - rpath="$rpath $flag" + func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; - *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + *) func_append finalize_perm_rpath " $libdir" ;; esac fi done @@ -7668,8 +8870,8 @@ EOF if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. - compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" @@ -7681,15 +8883,15 @@ EOF wrappers_required=yes case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; - *cegcc) - # Disable wrappers for cegcc, we are cross compiling anyway. - wrappers_required=no - ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no @@ -7698,13 +8900,19 @@ EOF esac if test "$wrappers_required" = no; then # Replace the output file specification. - compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' @@ -7727,7 +8935,7 @@ EOF # We should set the runpath_var. rpath= for dir in $perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi @@ -7735,7 +8943,7 @@ EOF # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do - rpath="$rpath$dir:" + func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi @@ -7745,11 +8953,18 @@ EOF # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. - link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + exit $EXIT_SUCCESS fi @@ -7764,7 +8979,7 @@ EOF if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then - relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= @@ -7776,13 +8991,19 @@ EOF fi # Replace the output file specification. - link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + # Now create the wrapper script. func_verbose "creating $output" @@ -7800,18 +9021,7 @@ EOF fi done relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` - fi - - # Quote $ECHO for shipping. - if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then - case $progpath in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; - *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; - esac - qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. @@ -7891,7 +9101,7 @@ EOF else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then - oldobjs="$oldobjs $symfileobj" + func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" @@ -7899,10 +9109,10 @@ EOF if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $addlibs - oldobjs="$oldobjs $func_extract_archives_result" + func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. @@ -7913,10 +9123,10 @@ EOF # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_extract_archives $gentop $dlprefiles - oldobjs="$oldobjs $func_extract_archives_result" + func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have @@ -7932,9 +9142,9 @@ EOF done | sort | sort -uc >/dev/null 2>&1); then : else - $ECHO "copying selected object files to avoid basename conflicts..." + echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" + func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= @@ -7958,18 +9168,30 @@ EOF esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - oldobjs="$oldobjs $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" ;; - *) oldobjs="$oldobjs $obj" ;; + *) func_append oldobjs " $obj" ;; esac done fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." @@ -8043,7 +9265,7 @@ EOF done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi @@ -8063,12 +9285,23 @@ EOF *.la) func_basename "$deplib" name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" - newdependency_libs="$newdependency_libs $libdir/$name" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" ;; - *) newdependency_libs="$newdependency_libs $deplib" ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" @@ -8082,9 +9315,9 @@ EOF eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" - newdlfiles="$newdlfiles $libdir/$name" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; - *) newdlfiles="$newdlfiles $lib" ;; + *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" @@ -8101,7 +9334,7 @@ EOF eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" - newdlprefiles="$newdlprefiles $libdir/$name" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done @@ -8113,7 +9346,7 @@ EOF [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac - newdlfiles="$newdlfiles $abs" + func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= @@ -8122,15 +9355,33 @@ EOF [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac - newdlprefiles="$newdlprefiles $abs" + func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; esac $ECHO > $output "\ # $outputname - a libtool library file @@ -8189,7 +9440,7 @@ relink_command=\"$relink_command\"" exit $EXIT_SUCCESS } -{ test "$mode" = link || test "$mode" = relink; } && +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} @@ -8209,9 +9460,9 @@ func_mode_uninstall () for arg do case $arg in - -f) RM="$RM $arg"; rmforce=yes ;; - -*) RM="$RM $arg" ;; - *) files="$files $arg" ;; + -f) func_append RM " $arg"; rmforce=yes ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; esac done @@ -8220,24 +9471,23 @@ func_mode_uninstall () rmdirs= - origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then - objdir="$origobjdir" + odir="$objdir" else - objdir="$dir/$origobjdir" + odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" - test "$mode" = uninstall && objdir="$dir" + test "$opt_mode" = uninstall && odir="$dir" - # Remember objdir for removal later, being careful to avoid duplicates - if test "$mode" = clean; then + # Remember odir for removal later, being careful to avoid duplicates + if test "$opt_mode" = clean; then case " $rmdirs " in - *" $objdir "*) ;; - *) rmdirs="$rmdirs $objdir" ;; + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; esac fi @@ -8263,18 +9513,17 @@ func_mode_uninstall () # Delete the libtool libraries and symlinks. for n in $library_names; do - rmfiles="$rmfiles $objdir/$n" + func_append rmfiles " $odir/$n" done - test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + test -n "$old_library" && func_append rmfiles " $odir/$old_library" - case "$mode" in + case "$opt_mode" in clean) - case " $library_names " in - # " " in the beginning catches empty $dlname + case " $library_names " in *" $dlname "*) ;; - *) rmfiles="$rmfiles $objdir/$dlname" ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac - test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then @@ -8302,19 +9551,19 @@ func_mode_uninstall () # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then - rmfiles="$rmfiles $dir/$pic_object" + func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then - rmfiles="$rmfiles $dir/$non_pic_object" + func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) - if test "$mode" = clean ; then + if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) @@ -8324,7 +9573,7 @@ func_mode_uninstall () noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe - rmfiles="$rmfiles $file" + func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. @@ -8333,7 +9582,7 @@ func_mode_uninstall () func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result - rmfiles="$rmfiles $func_ltwrapper_scriptname_result" + func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename @@ -8341,12 +9590,12 @@ func_mode_uninstall () # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" + func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then - rmfiles="$rmfiles $objdir/lt-${noexename}.c" + func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi @@ -8354,7 +9603,6 @@ func_mode_uninstall () esac func_show_eval "$RM $rmfiles" 'exit_status=1' done - objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do @@ -8366,16 +9614,16 @@ func_mode_uninstall () exit $exit_status } -{ test "$mode" = uninstall || test "$mode" = clean; } && +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} -test -z "$mode" && { +test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ - func_fatal_help "invalid operation mode \`$mode'" + func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" diff --git a/resources/3rdparty/gtest-1.6.0/build-aux/missing b/resources/3rdparty/gtest-1.7.0/build-aux/missing similarity index 89% rename from resources/3rdparty/gtest-1.6.0/build-aux/missing rename to resources/3rdparty/gtest-1.7.0/build-aux/missing index 28055d2ae..86a8fc31e 100644 --- a/resources/3rdparty/gtest-1.6.0/build-aux/missing +++ b/resources/3rdparty/gtest-1.7.0/build-aux/missing @@ -1,10 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2009-04-28.21; # UTC +scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -84,7 +84,6 @@ Supported PROGRAM values: help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and @@ -122,15 +121,6 @@ case $1 in # Not GNU programs, they don't have --version. ;; - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. @@ -226,7 +216,7 @@ WARNING: \`$1' $msg. You should only need it if \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` @@ -256,7 +246,7 @@ WARNING: \`$1' is $msg. You should only need it if \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` @@ -318,41 +308,6 @@ WARNING: \`$1' is $msg. You should only need it if touch $file ;; - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. diff --git a/resources/3rdparty/gtest-1.6.0/cmake/internal_utils.cmake b/resources/3rdparty/gtest-1.7.0/cmake/internal_utils.cmake similarity index 93% rename from resources/3rdparty/gtest-1.6.0/cmake/internal_utils.cmake rename to resources/3rdparty/gtest-1.7.0/cmake/internal_utils.cmake index 7efc2ac79..8cb21894c 100644 --- a/resources/3rdparty/gtest-1.6.0/cmake/internal_utils.cmake +++ b/resources/3rdparty/gtest-1.7.0/cmake/internal_utils.cmake @@ -56,6 +56,16 @@ macro(config_compiler_and_linker) # Newlines inside flags variables break CMake's NMake generator. # TODO(vladl@google.com): Add -RTCs and -RTCu to debug builds. set(cxx_base_flags "-GS -W4 -WX -wd4127 -wd4251 -wd4275 -nologo -J -Zi") + if (MSVC_VERSION LESS 1400) + # Suppress spurious warnings MSVC 7.1 sometimes issues. + # Forcing value to bool. + set(cxx_base_flags "${cxx_base_flags} -wd4800") + # Copy constructor and assignment operator could not be generated. + set(cxx_base_flags "${cxx_base_flags} -wd4511 -wd4512") + # Compatibility warnings not applicable to Google Test. + # Resolved overload was found by argument-dependent lookup. + set(cxx_base_flags "${cxx_base_flags} -wd4675") + endif() set(cxx_base_flags "${cxx_base_flags} -D_UNICODE -DUNICODE -DWIN32 -D_WIN32") set(cxx_base_flags "${cxx_base_flags} -DSTRICT -DWIN32_LEAN_AND_MEAN") set(cxx_exception_flags "-EHsc -D_HAS_EXCEPTIONS=1") @@ -69,7 +79,8 @@ macro(config_compiler_and_linker) # whether RTTI is enabled. Therefore we define GTEST_HAS_RTTI # explicitly. set(cxx_no_rtti_flags "-fno-rtti -DGTEST_HAS_RTTI=0") - set(cxx_strict_flags "-Wextra") + set(cxx_strict_flags + "-Wextra -Wno-unused-parameter -Wno-missing-field-initializers") elseif (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro") set(cxx_exception_flags "-features=except") # Sun Pro doesn't provide macros to indicate whether exceptions and diff --git a/resources/3rdparty/gtest-1.6.0/codegear/gtest.cbproj b/resources/3rdparty/gtest-1.7.0/codegear/gtest.cbproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/codegear/gtest.cbproj rename to resources/3rdparty/gtest-1.7.0/codegear/gtest.cbproj diff --git a/resources/3rdparty/gtest-1.6.0/codegear/gtest.groupproj b/resources/3rdparty/gtest-1.7.0/codegear/gtest.groupproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/codegear/gtest.groupproj rename to resources/3rdparty/gtest-1.7.0/codegear/gtest.groupproj diff --git a/resources/3rdparty/gtest-1.6.0/codegear/gtest_all.cc b/resources/3rdparty/gtest-1.7.0/codegear/gtest_all.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/codegear/gtest_all.cc rename to resources/3rdparty/gtest-1.7.0/codegear/gtest_all.cc diff --git a/resources/3rdparty/gtest-1.6.0/codegear/gtest_link.cc b/resources/3rdparty/gtest-1.7.0/codegear/gtest_link.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/codegear/gtest_link.cc rename to resources/3rdparty/gtest-1.7.0/codegear/gtest_link.cc diff --git a/resources/3rdparty/gtest-1.6.0/codegear/gtest_main.cbproj b/resources/3rdparty/gtest-1.7.0/codegear/gtest_main.cbproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/codegear/gtest_main.cbproj rename to resources/3rdparty/gtest-1.7.0/codegear/gtest_main.cbproj diff --git a/resources/3rdparty/gtest-1.6.0/codegear/gtest_unittest.cbproj b/resources/3rdparty/gtest-1.7.0/codegear/gtest_unittest.cbproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/codegear/gtest_unittest.cbproj rename to resources/3rdparty/gtest-1.7.0/codegear/gtest_unittest.cbproj diff --git a/resources/3rdparty/gtest-1.6.0/configure b/resources/3rdparty/gtest-1.7.0/configure old mode 100755 new mode 100644 similarity index 84% rename from resources/3rdparty/gtest-1.6.0/configure rename to resources/3rdparty/gtest-1.7.0/configure index bc526231b..582a9a05f --- a/resources/3rdparty/gtest-1.6.0/configure +++ b/resources/3rdparty/gtest-1.7.0/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for Google C++ Testing Framework 1.6.0. +# Generated by GNU Autoconf 2.68 for Google C++ Testing Framework 1.7.0. # # Report bugs to <googletestframework@googlegroups.com>. # @@ -174,6 +174,14 @@ test x\$exitcode = x0 || exit 1" as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes @@ -536,155 +544,8 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} -case X$lt_ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` - ;; -esac - -ECHO=${lt_ECHO-echo} -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then - # Yippee, $ECHO works! - : -else - # Restart under the correct shell. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<_LT_EOF -$* -_LT_EOF - exit 0 -fi - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test -z "$lt_ECHO"; then - if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if { echo_test_string=`eval $cmd`; } 2>/dev/null && - { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null - then - break - fi - done - fi - - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : - else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$ECHO" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - ECHO='print -r' - elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - ECHO='printf %s\n' - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - ECHO="$CONFIG_SHELL $0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null - then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - ECHO=echo - fi - fi - fi - fi - fi -fi - -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -lt_ECHO=$ECHO -if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then - lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" -fi - - - test -n "$DJDIR" || exec 7<&0 </dev/null exec 6>&1 @@ -709,12 +570,12 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Google C++ Testing Framework' PACKAGE_TARNAME='gtest' -PACKAGE_VERSION='1.6.0' -PACKAGE_STRING='Google C++ Testing Framework 1.6.0' +PACKAGE_VERSION='1.7.0' +PACKAGE_STRING='Google C++ Testing Framework 1.7.0' PACKAGE_BUGREPORT='googletestframework@googlegroups.com' PACKAGE_URL='' -ac_unique_file="./COPYING" +ac_unique_file="./LICENSE" # Factoring default headers for most tests. ac_includes_default="\ #include <stdio.h> @@ -771,9 +632,11 @@ OTOOL LIPO NMEDIT DSYMUTIL -lt_ECHO +MANIFEST_TOOL RANLIB +ac_ct_AR AR +DLLTOOL OBJDUMP LN_S NM @@ -886,6 +749,7 @@ enable_static with_pic enable_fast_install with_gnu_ld +with_sysroot enable_libtool_lock with_pthreads ' @@ -1444,7 +1308,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Google C++ Testing Framework 1.6.0 to adapt to many kinds of systems. +\`configure' configures Google C++ Testing Framework 1.7.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1514,7 +1378,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Google C++ Testing Framework 1.6.0:";; + short | recursive ) echo "Configuration of Google C++ Testing Framework 1.7.0:";; esac cat <<\_ACEOF @@ -1533,9 +1397,11 @@ Optional Features: Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-pic try to use only PIC/non-PIC objects [default=use + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). --with-pthreads use pthreads (default is yes) Some influential environment variables: @@ -1617,7 +1483,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Google C++ Testing Framework configure 1.6.0 +Google C++ Testing Framework configure 1.7.0 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2016,7 +1882,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Google C++ Testing Framework $as_me 1.6.0, which was +It was created by Google C++ Testing Framework $as_me 1.7.0, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2846,7 +2712,7 @@ fi # Define the identity of the package. PACKAGE='gtest' - VERSION='1.6.0' + VERSION='1.7.0' cat >>confdefs.h <<_ACEOF @@ -4268,8 +4134,8 @@ esac -macro_version='2.2.6b' -macro_revision='1.3017' +macro_version='2.4.2' +macro_revision='1.3337' @@ -4356,6 +4222,75 @@ IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : @@ -4821,8 +4756,11 @@ if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. - if test -n "$ac_tool_prefix"; then - for ac_prog in "dumpbin -symbols" "link -dump -symbols" + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 @@ -4866,7 +4804,7 @@ fi fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN - for ac_prog in "dumpbin -symbols" "link -dump -symbols" + for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -4921,6 +4859,15 @@ esac fi fi + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" @@ -4940,13 +4887,13 @@ if ${lt_cv_nm_interface+:} false; then : else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:4943: $ac_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:4946: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:4949: output\"" >&5) + (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -5003,6 +4950,11 @@ else lt_cv_sys_max_cmd_len=8192; ;; + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. @@ -5028,6 +4980,11 @@ else lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -5067,8 +5024,8 @@ else # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ - = "XX$teststring$teststring"; } >/dev/null 2>&1 && + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` @@ -5110,8 +5067,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,, \ + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes @@ -5160,6 +5117,80 @@ esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : @@ -5176,6 +5207,11 @@ case $reload_flag in esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' @@ -5339,16 +5375,18 @@ mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; -cegcc) +cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' @@ -5378,6 +5416,10 @@ gnu*) lt_cv_deplibs_check_method=pass_all ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in @@ -5386,11 +5428,11 @@ hpux10.20* | hpux11*) lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) - lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac @@ -5411,7 +5453,7 @@ irix5* | irix6* | nonstopux*) lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -5493,6 +5535,21 @@ esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown @@ -5506,18 +5563,28 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : +if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -5526,7 +5593,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="${ac_tool_prefix}ar" + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5536,10 +5603,10 @@ IFS=$as_save_IFS fi fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -5547,17 +5614,17 @@ fi fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -5566,7 +5633,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AR="ar" + ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5576,17 +5643,17 @@ IFS=$as_save_IFS fi fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_AR" = x; then - AR="false" + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) @@ -5594,35 +5661,74 @@ yes:) $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - AR=$ac_ct_AR + DLLTOOL=$ac_ct_DLLTOOL fi else - AR="$ac_cv_prog_AR" + DLLTOOL="$ac_cv_prog_DLLTOOL" fi -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : +if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -5631,7 +5737,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5641,28 +5747,32 @@ IFS=$as_save_IFS fi fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + test -n "$AR" && break + done fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -5671,7 +5781,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" + ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5681,17 +5791,182 @@ IFS=$as_save_IFS fi fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_STRIP" = x; then - STRIP=":" + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) @@ -5819,15 +6094,27 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + @@ -5935,8 +6222,8 @@ esac lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= @@ -5960,6 +6247,7 @@ for ac_symprfx in "" "_"; do # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -5972,6 +6260,7 @@ for ac_symprfx in "" "_"; do else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -5997,8 +6286,8 @@ _LT_EOF test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 - (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then @@ -6013,6 +6302,18 @@ _LT_EOF if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + #ifdef __cplusplus extern "C" { #endif @@ -6024,7 +6325,7 @@ _LT_EOF cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ -const struct { +LT_DLSYM_CONST struct { const char *name; void *address; } @@ -6050,8 +6351,8 @@ static const void *lt_preloaded_setup() { _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 @@ -6061,8 +6362,8 @@ _LT_EOF test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi @@ -6099,6 +6400,15 @@ else $as_echo "ok" >&6; } fi +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + @@ -6116,6 +6426,46 @@ fi + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + @@ -6152,7 +6502,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 6155 "configure"' > conftest.$ac_ext + echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -6287,7 +6637,7 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; } CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 @@ -6298,7 +6648,20 @@ sparc*-*solaris*) case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -6314,19 +6677,16 @@ esac need_locks="$enable_libtool_lock" - - case $host_os in - rhapsody* | darwin*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. -set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_DSYMUTIL+:} false; then : +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$DSYMUTIL"; then - ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -6335,7 +6695,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -6345,10 +6705,10 @@ IFS=$as_save_IFS fi fi -DSYMUTIL=$ac_cv_prog_DSYMUTIL -if test -n "$DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 -$as_echo "$DSYMUTIL" >&6; } +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -6356,17 +6716,17 @@ fi fi -if test -z "$ac_cv_prog_DSYMUTIL"; then - ac_ct_DSYMUTIL=$DSYMUTIL - # Extract the first word of "dsymutil", so it can be a program name with args. -set dummy dsymutil; ac_word=$2 +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_DSYMUTIL"; then - ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -6375,7 +6735,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -6385,17 +6745,17 @@ IFS=$as_save_IFS fi fi -ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL -if test -n "$ac_ct_DSYMUTIL"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 -$as_echo "$ac_ct_DSYMUTIL" >&6; } +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi - if test "x$ac_ct_DSYMUTIL" = x; then - DSYMUTIL=":" + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) @@ -6403,22 +6763,50 @@ yes:) $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac - DSYMUTIL=$ac_ct_DSYMUTIL + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else - DSYMUTIL="$ac_cv_prog_DSYMUTIL" + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: fi + + + + + + case $host_os in + rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. -set dummy ${ac_tool_prefix}nmedit; ac_word=$2 + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_NMEDIT+:} false; then : +if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$NMEDIT"; then - ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -6427,7 +6815,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -6437,10 +6825,10 @@ IFS=$as_save_IFS fi fi -NMEDIT=$ac_cv_prog_NMEDIT -if test -n "$NMEDIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 -$as_echo "$NMEDIT" >&6; } +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -6448,16 +6836,108 @@ fi fi -if test -z "$ac_cv_prog_NMEDIT"; then - ac_ct_NMEDIT=$NMEDIT - # Extract the first word of "nmedit", so it can be a program name with args. -set dummy nmedit; ac_word=$2 +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_NMEDIT"; then + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -6821,7 +7301,13 @@ else $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 @@ -6832,6 +7318,7 @@ else fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : @@ -6864,6 +7351,41 @@ rm -f core conftest.err conftest.$ac_objext \ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -6891,7 +7413,7 @@ $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi - if test "$DSYMUTIL" != ":"; then + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -7173,537 +7695,21 @@ do : if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 -_ACEOF - -fi - -done - - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -$as_echo "$ac_ct_CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CXX" && break -done - - if test "x$ac_ct_CXX" = x; then - CXX="g++" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CXX=$ac_ct_CXX - fi -fi - - fi -fi -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 -$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if ${ac_cv_cxx_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GXX=yes -else - GXX= -fi -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 -$as_echo_n "checking whether $CXX accepts -g... " >&6; } -if ${ac_cv_prog_cxx_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_cxx_werror_flag=$ac_cxx_werror_flag - ac_cxx_werror_flag=yes - ac_cv_prog_cxx_g=no - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -else - CXXFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - -else - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 -$as_echo "$ac_cv_prog_cxx_g" >&6; } -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -depcc="$CXX" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CXX_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CXX_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CXX_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } -CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' -else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= -fi - - -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 -$as_echo_n "checking how to run the C++ preprocessor... " >&6; } -if test -z "$CXXCPP"; then - if ${ac_cv_prog_CXXCPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CXXCPP=$CXXCPP - -fi - CXXCPP=$ac_cv_prog_CXXCPP -else - ac_cv_prog_CXXCPP=$CXXCPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 -$as_echo "$CXXCPP" >&6; } -ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -_lt_caught_CXX_error=yes; } +_ACEOF + fi -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +done -else - _lt_caught_CXX_error=yes -fi + + +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf @@ -7784,7 +7790,22 @@ fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : - withval=$with_pic; pic_mode="$withval" + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac else pic_mode=default fi @@ -7855,6 +7876,11 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + @@ -7910,19 +7936,6 @@ _ACEOF - - - - - - - - - - - - - case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some @@ -7935,23 +7948,6 @@ aix3*) ;; esac -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\(["`\\]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - # Global variables: ofile=libtool can_build_shared=yes @@ -7980,7 +7976,7 @@ for cc_temp in $compiler""; do *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it @@ -8189,7 +8185,12 @@ if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } @@ -8209,15 +8210,15 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8212: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8216: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes @@ -8246,8 +8247,6 @@ fi lt_prog_compiler_pic= lt_prog_compiler_static= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' @@ -8295,6 +8294,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag @@ -8337,6 +8342,15 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in @@ -8399,7 +8413,13 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; - pgcc* | pgf77* | pgf90* | pgf95*) + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' @@ -8411,25 +8431,40 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; - xl*) - # IBM XL C 8.0/Fortran 10.1 on PPC + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' ;; esac ;; @@ -8461,7 +8496,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in - f77* | f90* | f95*) + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; @@ -8518,13 +8553,17 @@ case $host_os in lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 -$as_echo "$lt_prog_compiler_pic" >&6; } - - - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. @@ -8548,15 +8587,15 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8551: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8555: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes @@ -8585,6 +8624,11 @@ fi + + + + + # # Check to make sure the static flag actually works. # @@ -8604,7 +8648,7 @@ else if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 - $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes @@ -8653,16 +8697,16 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8656: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8660: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes @@ -8708,16 +8752,16 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8711: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:8715: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes @@ -8783,7 +8827,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported @@ -8827,13 +8870,39 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie openbsd*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' @@ -8867,11 +8936,12 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie ld_shlibs=no cat <<_LT_EOF 1>&2 -*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. _LT_EOF fi @@ -8907,10 +8977,12 @@ _LT_EOF # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes - export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' @@ -8928,6 +9000,11 @@ _LT_EOF fi ;; + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no @@ -8953,15 +9030,16 @@ _LT_EOF if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then - tmp_addflag= + tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -8972,13 +9050,17 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; - xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 @@ -8994,17 +9076,16 @@ _LT_EOF fi case $cc_basename in - xlf*) + xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' - hardcode_libdir_flag_spec= - hardcode_libdir_flag_spec_ld='-rpath $libdir' - archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -9018,8 +9099,8 @@ _LT_EOF archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -9037,8 +9118,8 @@ _LT_EOF _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -9084,8 +9165,8 @@ _LT_EOF *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi @@ -9125,8 +9206,10 @@ _LT_EOF else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi @@ -9214,7 +9297,13 @@ _LT_EOF allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -9227,25 +9316,32 @@ main () _ACEOF if ac_fn_c_try_link "$LINENO"; then : -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' @@ -9254,7 +9350,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi else # Determine the default libpath from the value encoded in an # empty executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -9267,30 +9369,42 @@ main () _ACEOF if ac_fn_c_try_link "$LINENO"; then : -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' @@ -9322,20 +9436,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' - fix_srcfile_path='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes=yes + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac ;; darwin* | rhapsody*) @@ -9345,7 +9503,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in @@ -9353,7 +9516,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" @@ -9371,10 +9534,6 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_shlibpath_var=no ;; - freebsd1*) - ld_shlibs=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -9387,7 +9546,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes @@ -9396,7 +9555,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no @@ -9404,7 +9563,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hpux9*) if test "$GCC" = yes; then - archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi @@ -9419,14 +9578,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes @@ -9438,16 +9596,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then + if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else @@ -9459,7 +9617,46 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + ;; esac fi @@ -9487,26 +9684,39 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int foo(void) {} +int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS="$save_LDFLAGS" + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi else - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' @@ -9568,17 +9778,17 @@ rm -f core conftest.err conftest.$ac_objext \ hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported - archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' @@ -9588,13 +9798,13 @@ rm -f core conftest.err conftest.$ac_objext \ osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' @@ -9607,9 +9817,9 @@ rm -f core conftest.err conftest.$ac_objext \ no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' - archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) @@ -9797,44 +10007,50 @@ x|xyes) # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl - pic_flag=$lt_prog_compiler_pic - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag - allow_undefined_flag= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - then - archive_cmds_need_lc=no - else - archive_cmds_need_lc=yes - fi - allow_undefined_flag=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 -$as_echo "$archive_cmds_need_lc" >&6; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi @@ -9986,11 +10202,6 @@ esac - - - - - @@ -10005,16 +10216,23 @@ if test "$GCC" = yes; then darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= @@ -10027,7 +10245,7 @@ if test "$GCC" = yes; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done - lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; @@ -10047,7 +10265,13 @@ BEGIN {RS=" "; FS="/|\n";} { if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` - sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi @@ -10073,7 +10297,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -10082,7 +10306,7 @@ aix3*) ;; aix[4-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -10135,7 +10359,7 @@ amigaos*) m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; @@ -10147,7 +10371,7 @@ beos*) ;; bsdi[45]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -10166,8 +10390,9 @@ cygwin* | mingw* | pw32* | cegcc*) need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -10188,36 +10413,83 @@ cygwin* | mingw* | pw32* | cegcc*) cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -10238,7 +10510,7 @@ darwin* | rhapsody*) ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -10246,10 +10518,6 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -10257,7 +10525,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[123]*) objformat=aout ;; + freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -10275,7 +10543,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) @@ -10295,12 +10563,26 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -10346,12 +10628,14 @@ hpux9* | hpux10* | hpux11*) soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[3-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -10367,7 +10651,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -10404,9 +10688,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -10414,12 +10698,17 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -10432,13 +10721,17 @@ main () _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - shlibpath_overrides_runpath=yes + lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -10447,7 +10740,7 @@ rm -f core conftest.err conftest.$ac_objext \ # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi @@ -10491,7 +10784,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -10560,7 +10853,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -10585,7 +10878,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -10609,7 +10902,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -10640,7 +10933,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -10650,7 +10943,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -10756,6 +11049,11 @@ fi + + + + + @@ -11092,7 +11390,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11095 "configure" +#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11133,7 +11431,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -11142,7 +11446,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -11188,7 +11496,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11191 "configure" +#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11229,7 +11537,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -11238,7 +11552,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -11395,6 +11713,145 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu CC="$lt_save_CC" + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; } +if test -z "$CXXCPP"; then + if ${ac_cv_prog_CXXCPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +$as_echo "$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since + # <limits.h> exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include <limits.h> +#else +# include <assert.h> +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <ac_nonexistent.h> +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +else + _lt_caught_CXX_error=yes +fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' @@ -11411,7 +11868,6 @@ export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= -hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported @@ -11421,6 +11877,8 @@ module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds +reload_flag_CXX=$reload_flag +reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no @@ -11476,6 +11934,7 @@ $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX @@ -11493,6 +11952,7 @@ $RM -r conftest* fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do @@ -11503,7 +11963,7 @@ $RM -r conftest* *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` if test -n "$compiler"; then @@ -11632,8 +12092,8 @@ with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' @@ -11665,7 +12125,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no @@ -11775,7 +12235,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -11788,26 +12254,33 @@ main () _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" - archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' @@ -11816,7 +12289,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi else # Determine the default libpath from the value encoded in an # empty executable. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath__CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -11829,30 +12308,42 @@ main () _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_CXX='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + fi archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. @@ -11882,28 +12373,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ;; cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, - # as there is no search path for DLLs. - hardcode_libdir_flag_spec_CXX='-L$libdir' - allow_undefined_flag_CXX=unsupported - always_export_symbols_CXX=no - enable_shared_with_static_runtimes_CXX=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs_CXX=no - fi - ;; + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_CXX=' ' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=yes + file_list_spec_CXX='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' + enable_shared_with_static_runtimes_CXX=yes + # Don't use ranlib + old_postinstall_cmds_CXX='chmod 644 $oldlib' + postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + esac + ;; darwin* | rhapsody*) @@ -11911,7 +12449,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported - whole_archive_flag_spec_CXX='' + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec_CXX='' + fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in @@ -11919,7 +12462,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" @@ -11953,7 +12496,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac ;; - freebsd[12]*) + freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no @@ -11972,6 +12515,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi gnu*) ;; + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: @@ -11996,11 +12544,11 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then - archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no @@ -12061,7 +12609,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then @@ -12071,10 +12619,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi @@ -12104,7 +12652,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi case $cc_basename in CC*) # SGI C++ - archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is @@ -12115,9 +12663,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else - archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes @@ -12146,7 +12694,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' @@ -12183,26 +12731,26 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in - *pgCC\ [1-5]* | *pgcpp\ [1-5]*) + *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; - *) # Version 6 will use weak symbols + *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; @@ -12210,7 +12758,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' - whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ @@ -12229,9 +12777,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; - xl*) + xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' @@ -12251,13 +12799,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' - whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -12326,7 +12874,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi @@ -12361,15 +12909,15 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' - archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; @@ -12385,17 +12933,17 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) - archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac @@ -12405,7 +12953,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support @@ -12441,7 +12989,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' @@ -12462,7 +13010,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi esac link_all_deplibs_CXX=yes - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -12482,14 +13030,14 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then - archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. @@ -12500,7 +13048,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' @@ -12554,6 +13102,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' @@ -12615,6 +13167,14 @@ private: }; _LT_EOF + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -12628,7 +13188,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do - case $p in + case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. @@ -12637,13 +13197,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 test $p = "-R"; then prev=$p continue - else - prev= fi + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) + case ${prev} in + -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. @@ -12663,8 +13232,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi + prev= ;; + *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. @@ -12700,6 +13271,7 @@ else fi $RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in @@ -12735,7 +13307,7 @@ linux*) solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as @@ -12800,8 +13372,6 @@ fi lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then @@ -12851,6 +13421,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. @@ -12900,6 +13475,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } ;; esac ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; dgux*) case $cc_basename in ec++*) @@ -12989,8 +13569,8 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; - xlc* | xlC*) - # IBM XL 8.0 on PPC + xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' @@ -13052,7 +13632,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; } ;; solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' @@ -13117,10 +13697,17 @@ case $host_os in lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 -$as_echo "$lt_prog_compiler_pic_CXX" >&6; } - +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } +lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. @@ -13144,15 +13731,15 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13147: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:13151: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes @@ -13178,6 +13765,8 @@ fi + + # # Check to make sure the static flag actually works. # @@ -13197,7 +13786,7 @@ else if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 - $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes @@ -13243,16 +13832,16 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13246: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:13250: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes @@ -13295,16 +13884,16 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13298: $lt_compile\"" >&5) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:13302: \$? = $ac_status" >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes @@ -13355,30 +13944,40 @@ fi $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" - ;; + ;; cygwin* | mingw* | cegcc*) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' - ;; - linux* | k*bsd*-gnu) + case $cc_basename in + cl*) + exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) link_all_deplibs_CXX=no - ;; + ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; + ;; esac - exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } @@ -13410,44 +14009,50 @@ x|xyes) # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext +if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$lt_prog_compiler_wl_CXX - pic_flag=$lt_prog_compiler_pic_CXX - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$allow_undefined_flag_CXX - allow_undefined_flag_CXX= - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - then - archive_cmds_need_lc_CXX=no - else - archive_cmds_need_lc_CXX=yes - fi - allow_undefined_flag_CXX=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 -$as_echo "$archive_cmds_need_lc_CXX" >&6; } + then + lt_cv_archive_cmds_need_lc_CXX=no + else + lt_cv_archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } + archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi @@ -13512,8 +14117,6 @@ esac - - @@ -13542,7 +14145,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -13551,7 +14154,7 @@ aix3*) ;; aix[4-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -13604,7 +14207,7 @@ amigaos*) m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; @@ -13616,7 +14219,7 @@ beos*) ;; bsdi[45]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -13635,8 +14238,9 @@ cygwin* | mingw* | pw32* | cegcc*) need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -13657,36 +14261,82 @@ cygwin* | mingw* | pw32* | cegcc*) cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -13706,7 +14356,7 @@ darwin* | rhapsody*) ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -13714,10 +14364,6 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -13725,7 +14371,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[123]*) objformat=aout ;; + freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -13743,7 +14389,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) @@ -13763,12 +14409,26 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -13814,12 +14474,14 @@ hpux9* | hpux10* | hpux11*) soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[3-9]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -13835,7 +14497,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -13872,9 +14534,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -13882,12 +14544,17 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ - LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -13900,13 +14567,17 @@ main () _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : - shlibpath_overrides_runpath=yes + lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -13915,7 +14586,7 @@ rm -f core conftest.err conftest.$ac_objext \ # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi @@ -13959,7 +14630,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -14028,7 +14699,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -14053,7 +14724,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -14077,7 +14748,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -14108,7 +14779,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -14118,7 +14789,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -14176,6 +14847,8 @@ fi + + @@ -14226,6 +14899,7 @@ fi fi # test -n "$compiler" CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC @@ -14254,6 +14928,8 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + ac_config_commands="$ac_config_commands libtool" @@ -14880,7 +15556,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu have_pthreads="$acx_pthread_ok" fi - if test "x$have_pthreads" == "xyes"; then + if test "x$have_pthreads" = "xyes"; then HAVE_PTHREADS_TRUE= HAVE_PTHREADS_FALSE='#' else @@ -15026,10 +15702,6 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${HAVE_PYTHON_TRUE}" && test -z "${HAVE_PYTHON_FALSE}"; then as_fn_error $? "conditional \"HAVE_PYTHON\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -15447,7 +16119,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Google C++ Testing Framework $as_me 1.6.0, which was +This file was extended by Google C++ Testing Framework $as_me 1.7.0, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15513,7 +16185,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Google C++ Testing Framework config.status 1.6.0 +Google C++ Testing Framework config.status 1.7.0 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" @@ -15642,184 +16314,208 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' -macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' -macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' -enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' -pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' -enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' -host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' -host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' -host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' -build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' -build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' -build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' -SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' -Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' -GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' -EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' -FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' -LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' -NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' -LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' -max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' -ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' -exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' -lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' -lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' -lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' -reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' -reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' -OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' -deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' -file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' -AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' -AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' -STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' -RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' -old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' -CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' -compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' -GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' -SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' -ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' -MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' -need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' -DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' -NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' -LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' -OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' -OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' -libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' -shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' -extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' -export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' -archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' -module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' -with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' -allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' -inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' -link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' -fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' -always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' -export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' -exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' -prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' -file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' -variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' -need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' -need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' -version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' -runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' -shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' -shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' -libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' -library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' -soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' -postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' -finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' -finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' -sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' -enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' -old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' -striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' -compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' -predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' -postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' -predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' -postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' -compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' -LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' -GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' -lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' -lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' -enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' -export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' -whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' -compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' -allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' -no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' -inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' -link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' -fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' -always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' -export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' -include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' -prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' -file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' -hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' -compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' -predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' -postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' -predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' -postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' -compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' +predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' +predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' +postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' +reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' +reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + # Quote evaled strings. -for var in SED \ +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ GREP \ EGREP \ FGREP \ @@ -15832,8 +16528,13 @@ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ +archiver_list_spec \ STRIP \ RANLIB \ CC \ @@ -15843,14 +16544,14 @@ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ -SHELL \ -ECHO \ +nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ -lt_prog_compiler_wl \ lt_prog_compiler_pic \ +lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ +MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ @@ -15864,9 +16565,7 @@ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ -hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ -fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ @@ -15874,6 +16573,7 @@ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ +install_override_mode \ finish_eval \ old_striplib \ striplib \ @@ -15884,10 +16584,11 @@ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ +reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ -lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ +lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ @@ -15897,9 +16598,7 @@ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ -hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ -fix_srcfile_path_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ @@ -15909,9 +16608,9 @@ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -15933,11 +16632,13 @@ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ +postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ +reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ @@ -15946,10 +16647,11 @@ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ -prelink_cmds_CXX; do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in +prelink_cmds_CXX \ +postlink_cmds_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -15957,12 +16659,6 @@ prelink_cmds_CXX; do esac done -# Fix-up fallback echo if it was mangled by the above quoting rules. -case \$lt_ECHO in -*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` - ;; -esac - ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' @@ -16710,7 +17406,8 @@ $as_echo X"$file" | # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -16758,6 +17455,15 @@ pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + # The host system. host_alias=$host_alias host=$host @@ -16807,9 +17513,11 @@ SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP -# How to create reloadable object files. -reload_flag=$lt_reload_flag -reload_cmds=$lt_reload_cmds +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP @@ -16817,13 +17525,30 @@ OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method -# Command to use when deplibs_check_method == "file_magic". +# Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + # The archiver. AR=$lt_AR + +# Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + # A symbol stripping program. STRIP=$lt_STRIP @@ -16832,6 +17557,9 @@ RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + # A C compiler. LTCC=$lt_CC @@ -16850,14 +17578,14 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix -# The name of the directory that contains temporary libtool files. -objdir=$objdir +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec -# Shell to use when invoking shell scripts. -SHELL=$lt_SHELL +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot -# An echo program that does not interpret backslashes. -ECHO=$lt_ECHO +# The name of the directory that contains temporary libtool files. +objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD @@ -16865,6 +17593,9 @@ MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL @@ -16921,6 +17652,9 @@ library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds @@ -16960,6 +17694,10 @@ striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds @@ -16972,12 +17710,12 @@ with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl - # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static @@ -17027,10 +17765,6 @@ no_undefined_flag=$lt_no_undefined_flag # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec -# If ld is used when linking, flag to hardcode \$libdir into a binary -# during linking. This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld - # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator @@ -17064,9 +17798,6 @@ inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path - # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols @@ -17082,6 +17813,9 @@ include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + # Specify filename containing input files. file_list_spec=$lt_file_list_spec @@ -17128,212 +17862,169 @@ ltmain="$ac_aux_dir/ltmain.sh" # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - case $xsi_shell in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac -} - -# func_basename file -func_basename () -{ - func_basename_result="${1##*/}" -} - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}" -} - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -func_stripname () -{ - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"} -} - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=${1%%=*} - func_opt_split_arg=${1#*=} -} - -# func_lo2o object -func_lo2o () -{ - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=${1%.*}.lo -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=$(( $* )) -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=${#1} -} - -_LT_EOF - ;; - *) # Bourne compatible functions. - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} - -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -} - - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; - esac -} - -# sed scripts: -my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' -my_sed_long_arg='1s/^-[^=]*=//' - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` - func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` -} - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` -} - -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "$@"` -} - -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` -} - -_LT_EOF -esac - -case $lt_shell_append in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$1+=\$2" -} -_LT_EOF - ;; - *) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$1=\$$1\$2" -} - -_LT_EOF - ;; - esac - - - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - mv -f "$cfgfile" "$ofile" || + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" @@ -17345,6 +18036,10 @@ _LT_EOF # The linker used to build libraries. LD=$lt_LD_CXX +# How to create reloadable object files. +reload_flag=$lt_reload_flag_CXX +reload_cmds=$lt_reload_cmds_CXX + # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX @@ -17357,12 +18052,12 @@ with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX -# How to pass a linker flag through the compiler. -wl=$lt_lt_prog_compiler_wl_CXX - # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX @@ -17412,10 +18107,6 @@ no_undefined_flag=$lt_no_undefined_flag_CXX # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX -# If ld is used when linking, flag to hardcode \$libdir into a binary -# during linking. This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX - # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX @@ -17449,9 +18140,6 @@ inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path=$lt_fix_srcfile_path_CXX - # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX @@ -17467,6 +18155,9 @@ include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_CXX + # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX diff --git a/resources/3rdparty/gtest-1.6.0/configure.ac b/resources/3rdparty/gtest-1.7.0/configure.ac similarity index 95% rename from resources/3rdparty/gtest-1.6.0/configure.ac rename to resources/3rdparty/gtest-1.7.0/configure.ac index fa6602901..cc592e158 100644 --- a/resources/3rdparty/gtest-1.6.0/configure.ac +++ b/resources/3rdparty/gtest-1.7.0/configure.ac @@ -5,13 +5,13 @@ m4_include(m4/acx_pthread.m4) # "[1.0.1]"). It also asumes that there won't be any closing parenthesis # between "AC_INIT(" and the closing ")" including comments and strings. AC_INIT([Google C++ Testing Framework], - [1.6.0], + [1.7.0], [googletestframework@googlegroups.com], [gtest]) # Provide various options to initialize the Autoconf and configure processes. AC_PREREQ([2.59]) -AC_CONFIG_SRCDIR([./COPYING]) +AC_CONFIG_SRCDIR([./LICENSE]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_HEADERS([build-aux/config.h]) @@ -55,7 +55,7 @@ AS_IF([test "x$with_pthreads" != "xno"], [AC_MSG_FAILURE( [--with-pthreads was specified, but unable to be used])])]) have_pthreads="$acx_pthread_ok"]) -AM_CONDITIONAL([HAVE_PTHREADS],[test "x$have_pthreads" == "xyes"]) +AM_CONDITIONAL([HAVE_PTHREADS],[test "x$have_pthreads" = "xyes"]) AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_LIBS) diff --git a/resources/3rdparty/gtest-1.6.0/fused-src/gtest/gtest-all.cc b/resources/3rdparty/gtest-1.7.0/fused-src/gtest/gtest-all.cc similarity index 85% rename from resources/3rdparty/gtest-1.6.0/fused-src/gtest/gtest-all.cc rename to resources/3rdparty/gtest-1.7.0/fused-src/gtest/gtest-all.cc index 5ced66a90..a9a03b2e3 100644 --- a/resources/3rdparty/gtest-1.6.0/fused-src/gtest/gtest-all.cc +++ b/resources/3rdparty/gtest-1.7.0/fused-src/gtest/gtest-all.cc @@ -296,7 +296,7 @@ class GTEST_API_ SingleFailureChecker { (substr));\ {\ ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ - ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS,\ + ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \ >est_failures);\ if (::testing::internal::AlwaysTrue()) { statement; }\ }\ @@ -309,10 +309,13 @@ class GTEST_API_ SingleFailureChecker { #include <stdarg.h> #include <stdio.h> #include <stdlib.h> +#include <time.h> #include <wchar.h> #include <wctype.h> #include <algorithm> +#include <iomanip> +#include <limits> #include <ostream> // NOLINT #include <sstream> #include <vector> @@ -458,6 +461,11 @@ class GTEST_API_ SingleFailureChecker { #include <vector> +#if GTEST_CAN_STREAM_RESULTS_ +# include <arpa/inet.h> // NOLINT +# include <netdb.h> // NOLINT +#endif + #if GTEST_OS_WINDOWS # include <windows.h> // NOLINT #endif // GTEST_OS_WINDOWS @@ -510,6 +518,12 @@ GTEST_API_ bool ShouldUseColor(bool stdout_is_tty); // Formats the given time in milliseconds as seconds. GTEST_API_ std::string FormatTimeInMillisAsSeconds(TimeInMillis ms); +// Converts the given time in milliseconds to a date string in the ISO 8601 +// format, without the timezone information. N.B.: due to the use the +// non-reentrant localtime() function, this function is not thread safe. Do +// not use it in any code that can be called from multiple threads. +GTEST_API_ std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms); + // Parses a string for an Int32 flag, in the form of "--flag=value". // // On success, stores the value of the flag in *value, and returns @@ -588,37 +602,35 @@ class GTestFlagSaver { GTEST_FLAG(stream_result_to) = stream_result_to_; GTEST_FLAG(throw_on_failure) = throw_on_failure_; } + private: // Fields for saving the original values of flags. bool also_run_disabled_tests_; bool break_on_failure_; bool catch_exceptions_; - String color_; - String death_test_style_; + std::string color_; + std::string death_test_style_; bool death_test_use_fork_; - String filter_; - String internal_run_death_test_; + std::string filter_; + std::string internal_run_death_test_; bool list_tests_; - String output_; + std::string output_; bool print_time_; - bool pretty_; internal::Int32 random_seed_; internal::Int32 repeat_; bool shuffle_; internal::Int32 stack_trace_depth_; - String stream_result_to_; + std::string stream_result_to_; bool throw_on_failure_; } GTEST_ATTRIBUTE_UNUSED_; // Converts a Unicode code point to a narrow string in UTF-8 encoding. // code_point parameter is of type UInt32 because wchar_t may not be // wide enough to contain a code point. -// The output buffer str must containt at least 32 characters. -// The function returns the address of the output buffer. // If the code_point is not a valid Unicode code point -// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be output -// as '(Invalid Unicode 0xXXXXXXXX)'. -GTEST_API_ char* CodePointToUtf8(UInt32 code_point, char* str); +// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be converted +// to "(Invalid Unicode 0xXXXXXXXX)". +GTEST_API_ std::string CodePointToUtf8(UInt32 code_point); // Converts a wide string to a narrow string in UTF-8 encoding. // The wide string is assumed to have the following encoding: @@ -633,7 +645,7 @@ GTEST_API_ char* CodePointToUtf8(UInt32 code_point, char* str); // as '(Invalid Unicode 0xXXXXXXXX)'. If the string is in UTF16 encoding // and contains invalid UTF-16 surrogate pairs, values in those pairs // will be encoded as individual Unicode characters from Basic Normal Plane. -GTEST_API_ String WideStringToUtf8(const wchar_t* str, int num_chars); +GTEST_API_ std::string WideStringToUtf8(const wchar_t* str, int num_chars); // Reads the GTEST_SHARD_STATUS_FILE environment variable, and creates the file // if the variable is present. If a file already exists at this location, this @@ -737,16 +749,15 @@ class TestPropertyKeyIs { // Constructor. // // TestPropertyKeyIs has NO default constructor. - explicit TestPropertyKeyIs(const char* key) - : key_(key) {} + explicit TestPropertyKeyIs(const std::string& key) : key_(key) {} // Returns true iff the test name of test property matches on key_. bool operator()(const TestProperty& test_property) const { - return String(test_property.key()).Compare(key_) == 0; + return test_property.key() == key_; } private: - String key_; + std::string key_; }; // Class UnitTestOptions. @@ -764,12 +775,12 @@ class GTEST_API_ UnitTestOptions { // Functions for processing the gtest_output flag. // Returns the output format, or "" for normal printed output. - static String GetOutputFormat(); + static std::string GetOutputFormat(); // Returns the absolute path of the requested output file, or the // default (test_detail.xml in the original working directory) if // none was explicitly specified. - static String GetAbsolutePathToOutputFile(); + static std::string GetAbsolutePathToOutputFile(); // Functions for processing the gtest_filter flag. @@ -782,8 +793,8 @@ class GTEST_API_ UnitTestOptions { // Returns true iff the user-specified filter matches the test case // name and the test name. - static bool FilterMatchesTest(const String &test_case_name, - const String &test_name); + static bool FilterMatchesTest(const std::string &test_case_name, + const std::string &test_name); #if GTEST_OS_WINDOWS // Function for supporting the gtest_catch_exception flag. @@ -796,7 +807,7 @@ class GTEST_API_ UnitTestOptions { // Returns true if "name" matches the ':' separated list of glob-style // filters in "filter". - static bool MatchesFilter(const String& name, const char* filter); + static bool MatchesFilter(const std::string& name, const char* filter); }; // Returns the current application's name, removing directory path if that @@ -809,13 +820,13 @@ class OsStackTraceGetterInterface { OsStackTraceGetterInterface() {} virtual ~OsStackTraceGetterInterface() {} - // Returns the current OS stack trace as a String. Parameters: + // Returns the current OS stack trace as an std::string. Parameters: // // max_depth - the maximum number of stack frames to be included // in the trace. // skip_count - the number of top frames to be skipped; doesn't count // against max_depth. - virtual String CurrentStackTrace(int max_depth, int skip_count) = 0; + virtual string CurrentStackTrace(int max_depth, int skip_count) = 0; // UponLeavingGTest() should be called immediately before Google Test calls // user code. It saves some information about the current stack that @@ -830,8 +841,11 @@ class OsStackTraceGetterInterface { class OsStackTraceGetter : public OsStackTraceGetterInterface { public: OsStackTraceGetter() : caller_frame_(NULL) {} - virtual String CurrentStackTrace(int max_depth, int skip_count); - virtual void UponLeavingGTest(); + + virtual string CurrentStackTrace(int max_depth, int skip_count) + GTEST_LOCK_EXCLUDED_(mutex_); + + virtual void UponLeavingGTest() GTEST_LOCK_EXCLUDED_(mutex_); // This string is inserted in place of stack frames that are part of // Google Test's implementation. @@ -853,7 +867,7 @@ class OsStackTraceGetter : public OsStackTraceGetterInterface { struct TraceInfo { const char* file; int line; - String message; + std::string message; }; // This is the default global test part result reporter used in UnitTestImpl. @@ -937,15 +951,25 @@ class GTEST_API_ UnitTestImpl { // Gets the number of failed tests. int failed_test_count() const; + // Gets the number of disabled tests that will be reported in the XML report. + int reportable_disabled_test_count() const; + // Gets the number of disabled tests. int disabled_test_count() const; + // Gets the number of tests to be printed in the XML report. + int reportable_test_count() const; + // Gets the number of all tests. int total_test_count() const; // Gets the number of tests that should run. int test_to_run_count() const; + // Gets the time of the test program start, in ms from the start of the + // UNIX epoch. + TimeInMillis start_timestamp() const { return start_timestamp_; } + // Gets the elapsed time, in milliseconds. TimeInMillis elapsed_time() const { return elapsed_time_; } @@ -994,7 +1018,7 @@ class GTEST_API_ UnitTestImpl { // getter, and returns it. OsStackTraceGetterInterface* os_stack_trace_getter(); - // Returns the current OS stack trace as a String. + // Returns the current OS stack trace as an std::string. // // The maximum number of stack frames to be included is specified by // the gtest_stack_trace_depth flag. The skip_count parameter @@ -1004,7 +1028,7 @@ class GTEST_API_ UnitTestImpl { // For example, if Foo() calls Bar(), which in turn calls // CurrentOsStackTraceExceptTop(1), Foo() will be included in the // trace but Bar() and CurrentOsStackTraceExceptTop() won't. - String CurrentOsStackTraceExceptTop(int skip_count); + std::string CurrentOsStackTraceExceptTop(int skip_count) GTEST_NO_INLINE_; // Finds and returns a TestCase with the given name. If one doesn't // exist, creates one and returns it. @@ -1094,6 +1118,12 @@ class GTEST_API_ UnitTestImpl { ad_hoc_test_result_.Clear(); } + // Adds a TestProperty to the current TestResult object when invoked in a + // context of a test or a test case, or to the global property set. If the + // result already contains a property with the same key, the value will be + // updated. + void RecordProperty(const TestProperty& test_property); + enum ReactionToSharding { HONOR_SHARDING_PROTOCOL, IGNORE_SHARDING_PROTOCOL @@ -1278,6 +1308,10 @@ class GTEST_API_ UnitTestImpl { // Our random number generator. internal::Random random_; + // The time of the test program start, in ms from the start of the + // UNIX epoch. + TimeInMillis start_timestamp_; + // How long the test took to run, in milliseconds. TimeInMillis elapsed_time_; @@ -1333,7 +1367,7 @@ GTEST_API_ void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv); // Returns the message describing the last system error, regardless of the // platform. -GTEST_API_ String GetLastErrnoDescription(); +GTEST_API_ std::string GetLastErrnoDescription(); # if GTEST_OS_WINDOWS // Provides leak-safe Windows kernel handle ownership. @@ -1416,8 +1450,9 @@ bool ParseNaturalNumber(const ::std::string& str, Integer* number) { class TestResultAccessor { public: static void RecordProperty(TestResult* test_result, + const std::string& xml_element, const TestProperty& property) { - test_result->RecordProperty(property); + test_result->RecordProperty(xml_element, property); } static void ClearTestPartResults(TestResult* test_result) { @@ -1430,6 +1465,154 @@ class TestResultAccessor { } }; +#if GTEST_CAN_STREAM_RESULTS_ + +// Streams test results to the given port on the given host machine. +class StreamingListener : public EmptyTestEventListener { + public: + // Abstract base class for writing strings to a socket. + class AbstractSocketWriter { + public: + virtual ~AbstractSocketWriter() {} + + // Sends a string to the socket. + virtual void Send(const string& message) = 0; + + // Closes the socket. + virtual void CloseConnection() {} + + // Sends a string and a newline to the socket. + void SendLn(const string& message) { + Send(message + "\n"); + } + }; + + // Concrete class for actually writing strings to a socket. + class SocketWriter : public AbstractSocketWriter { + public: + SocketWriter(const string& host, const string& port) + : sockfd_(-1), host_name_(host), port_num_(port) { + MakeConnection(); + } + + virtual ~SocketWriter() { + if (sockfd_ != -1) + CloseConnection(); + } + + // Sends a string to the socket. + virtual void Send(const string& message) { + GTEST_CHECK_(sockfd_ != -1) + << "Send() can be called only when there is a connection."; + + const int len = static_cast<int>(message.length()); + if (write(sockfd_, message.c_str(), len) != len) { + GTEST_LOG_(WARNING) + << "stream_result_to: failed to stream to " + << host_name_ << ":" << port_num_; + } + } + + private: + // Creates a client socket and connects to the server. + void MakeConnection(); + + // Closes the socket. + void CloseConnection() { + GTEST_CHECK_(sockfd_ != -1) + << "CloseConnection() can be called only when there is a connection."; + + close(sockfd_); + sockfd_ = -1; + } + + int sockfd_; // socket file descriptor + const string host_name_; + const string port_num_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(SocketWriter); + }; // class SocketWriter + + // Escapes '=', '&', '%', and '\n' characters in str as "%xx". + static string UrlEncode(const char* str); + + StreamingListener(const string& host, const string& port) + : socket_writer_(new SocketWriter(host, port)) { Start(); } + + explicit StreamingListener(AbstractSocketWriter* socket_writer) + : socket_writer_(socket_writer) { Start(); } + + void OnTestProgramStart(const UnitTest& /* unit_test */) { + SendLn("event=TestProgramStart"); + } + + void OnTestProgramEnd(const UnitTest& unit_test) { + // Note that Google Test current only report elapsed time for each + // test iteration, not for the entire test program. + SendLn("event=TestProgramEnd&passed=" + FormatBool(unit_test.Passed())); + + // Notify the streaming server to stop. + socket_writer_->CloseConnection(); + } + + void OnTestIterationStart(const UnitTest& /* unit_test */, int iteration) { + SendLn("event=TestIterationStart&iteration=" + + StreamableToString(iteration)); + } + + void OnTestIterationEnd(const UnitTest& unit_test, int /* iteration */) { + SendLn("event=TestIterationEnd&passed=" + + FormatBool(unit_test.Passed()) + "&elapsed_time=" + + StreamableToString(unit_test.elapsed_time()) + "ms"); + } + + void OnTestCaseStart(const TestCase& test_case) { + SendLn(std::string("event=TestCaseStart&name=") + test_case.name()); + } + + void OnTestCaseEnd(const TestCase& test_case) { + SendLn("event=TestCaseEnd&passed=" + FormatBool(test_case.Passed()) + + "&elapsed_time=" + StreamableToString(test_case.elapsed_time()) + + "ms"); + } + + void OnTestStart(const TestInfo& test_info) { + SendLn(std::string("event=TestStart&name=") + test_info.name()); + } + + void OnTestEnd(const TestInfo& test_info) { + SendLn("event=TestEnd&passed=" + + FormatBool((test_info.result())->Passed()) + + "&elapsed_time=" + + StreamableToString((test_info.result())->elapsed_time()) + "ms"); + } + + void OnTestPartResult(const TestPartResult& test_part_result) { + const char* file_name = test_part_result.file_name(); + if (file_name == NULL) + file_name = ""; + SendLn("event=TestPartResult&file=" + UrlEncode(file_name) + + "&line=" + StreamableToString(test_part_result.line_number()) + + "&message=" + UrlEncode(test_part_result.message())); + } + + private: + // Sends the given message and a newline to the socket. + void SendLn(const string& message) { socket_writer_->SendLn(message); } + + // Called at the start of streaming to notify the receiver what + // protocol we are using. + void Start() { SendLn("gtest_streaming_protocol_version=1.0"); } + + string FormatBool(bool value) { return value ? "1" : "0"; } + + const scoped_ptr<AbstractSocketWriter> socket_writer_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(StreamingListener); +}; // class StreamingListener + +#endif // GTEST_CAN_STREAM_RESULTS_ + } // namespace internal } // namespace testing @@ -1483,6 +1666,10 @@ bool g_help_flag = false; } // namespace internal +static const char* GetDefaultFilter() { + return kUniversalFilter; +} + GTEST_DEFINE_bool_( also_run_disabled_tests, internal::BoolFromGTestEnv("also_run_disabled_tests", false), @@ -1505,11 +1692,11 @@ GTEST_DEFINE_string_( "Whether to use colors in the output. Valid values: yes, no, " "and auto. 'auto' means to use colors if the output is " "being sent to a terminal and the TERM environment variable " - "is set to xterm, xterm-color, xterm-256color, linux or cygwin."); + "is set to a terminal type that supports colors."); GTEST_DEFINE_string_( filter, - internal::StringFromGTestEnv("filter", kUniversalFilter), + internal::StringFromGTestEnv("filter", GetDefaultFilter()), "A colon-separated list of glob (not regex) patterns " "for filtering the tests to run, optionally followed by a " "'-' and a : separated list of negative patterns (tests to " @@ -1609,7 +1796,7 @@ UInt32 Random::Generate(UInt32 range) { // Test. g_init_gtest_count is set to the number of times // InitGoogleTest() has been called. We don't protect this variable // under a mutex as it is only accessed in the main thread. -int g_init_gtest_count = 0; +GTEST_API_ int g_init_gtest_count = 0; static bool GTestIsInitialized() { return g_init_gtest_count != 0; } // Iterates over a vector of TestCases, keeping a running sum of the @@ -1664,10 +1851,10 @@ void AssertHelper::operator=(const Message& message) const { } // Mutex for linked pointers. -GTEST_DEFINE_STATIC_MUTEX_(g_linked_ptr_mutex); +GTEST_API_ GTEST_DEFINE_STATIC_MUTEX_(g_linked_ptr_mutex); // Application pathname gotten in InitGoogleTest. -String g_executable_path; +std::string g_executable_path; // Returns the current application's name, removing directory path if that // is present. @@ -1686,29 +1873,29 @@ FilePath GetCurrentExecutableName() { // Functions for processing the gtest_output flag. // Returns the output format, or "" for normal printed output. -String UnitTestOptions::GetOutputFormat() { +std::string UnitTestOptions::GetOutputFormat() { const char* const gtest_output_flag = GTEST_FLAG(output).c_str(); - if (gtest_output_flag == NULL) return String(""); + if (gtest_output_flag == NULL) return std::string(""); const char* const colon = strchr(gtest_output_flag, ':'); return (colon == NULL) ? - String(gtest_output_flag) : - String(gtest_output_flag, colon - gtest_output_flag); + std::string(gtest_output_flag) : + std::string(gtest_output_flag, colon - gtest_output_flag); } // Returns the name of the requested output file, or the default if none // was explicitly specified. -String UnitTestOptions::GetAbsolutePathToOutputFile() { +std::string UnitTestOptions::GetAbsolutePathToOutputFile() { const char* const gtest_output_flag = GTEST_FLAG(output).c_str(); if (gtest_output_flag == NULL) - return String(""); + return ""; const char* const colon = strchr(gtest_output_flag, ':'); if (colon == NULL) - return String(internal::FilePath::ConcatPaths( - internal::FilePath( - UnitTest::GetInstance()->original_working_dir()), - internal::FilePath(kDefaultOutputFile)).ToString() ); + return internal::FilePath::ConcatPaths( + internal::FilePath( + UnitTest::GetInstance()->original_working_dir()), + internal::FilePath(kDefaultOutputFile)).string(); internal::FilePath output_name(colon + 1); if (!output_name.IsAbsolutePath()) @@ -1721,12 +1908,12 @@ String UnitTestOptions::GetAbsolutePathToOutputFile() { internal::FilePath(colon + 1)); if (!output_name.IsDirectory()) - return output_name.ToString(); + return output_name.string(); internal::FilePath result(internal::FilePath::GenerateUniqueFileName( output_name, internal::GetCurrentExecutableName(), GetOutputFormat().c_str())); - return result.ToString(); + return result.string(); } // Returns true iff the wildcard pattern matches the string. The @@ -1751,7 +1938,8 @@ bool UnitTestOptions::PatternMatchesString(const char *pattern, } } -bool UnitTestOptions::MatchesFilter(const String& name, const char* filter) { +bool UnitTestOptions::MatchesFilter( + const std::string& name, const char* filter) { const char *cur_pattern = filter; for (;;) { if (PatternMatchesString(cur_pattern, name.c_str())) { @@ -1771,28 +1959,24 @@ bool UnitTestOptions::MatchesFilter(const String& name, const char* filter) { } } -// TODO(keithray): move String function implementations to gtest-string.cc. - // Returns true iff the user-specified filter matches the test case // name and the test name. -bool UnitTestOptions::FilterMatchesTest(const String &test_case_name, - const String &test_name) { - const String& full_name = String::Format("%s.%s", - test_case_name.c_str(), - test_name.c_str()); +bool UnitTestOptions::FilterMatchesTest(const std::string &test_case_name, + const std::string &test_name) { + const std::string& full_name = test_case_name + "." + test_name.c_str(); // Split --gtest_filter at '-', if there is one, to separate into // positive filter and negative filter portions const char* const p = GTEST_FLAG(filter).c_str(); const char* const dash = strchr(p, '-'); - String positive; - String negative; + std::string positive; + std::string negative; if (dash == NULL) { positive = GTEST_FLAG(filter).c_str(); // Whole string is a positive filter - negative = String(""); + negative = ""; } else { - positive = String(p, dash - p); // Everything up to the dash - negative = String(dash+1); // Everything after the dash + positive = std::string(p, dash); // Everything up to the dash + negative = std::string(dash + 1); // Everything after the dash if (positive.empty()) { // Treat '-test1' as the same as '*-test1' positive = kUniversalFilter; @@ -1912,7 +2096,7 @@ AssertionResult HasOneFailure(const char* /* results_expr */, const TestPartResultArray& results, TestPartResult::Type type, const string& substr) { - const String expected(type == TestPartResult::kFatalFailure ? + const std::string expected(type == TestPartResult::kFatalFailure ? "1 fatal failure" : "1 non-fatal failure"); Message msg; @@ -2035,11 +2219,22 @@ int UnitTestImpl::failed_test_count() const { return SumOverTestCaseList(test_cases_, &TestCase::failed_test_count); } +// Gets the number of disabled tests that will be reported in the XML report. +int UnitTestImpl::reportable_disabled_test_count() const { + return SumOverTestCaseList(test_cases_, + &TestCase::reportable_disabled_test_count); +} + // Gets the number of disabled tests. int UnitTestImpl::disabled_test_count() const { return SumOverTestCaseList(test_cases_, &TestCase::disabled_test_count); } +// Gets the number of tests to be printed in the XML report. +int UnitTestImpl::reportable_test_count() const { + return SumOverTestCaseList(test_cases_, &TestCase::reportable_test_count); +} + // Gets the number of all tests. int UnitTestImpl::total_test_count() const { return SumOverTestCaseList(test_cases_, &TestCase::total_test_count); @@ -2050,7 +2245,7 @@ int UnitTestImpl::test_to_run_count() const { return SumOverTestCaseList(test_cases_, &TestCase::test_to_run_count); } -// Returns the current OS stack trace as a String. +// Returns the current OS stack trace as an std::string. // // The maximum number of stack frames to be included is specified by // the gtest_stack_trace_depth flag. The skip_count parameter @@ -2060,9 +2255,9 @@ int UnitTestImpl::test_to_run_count() const { // For example, if Foo() calls Bar(), which in turn calls // CurrentOsStackTraceExceptTop(1), Foo() will be included in the // trace but Bar() and CurrentOsStackTraceExceptTop() won't. -String UnitTestImpl::CurrentOsStackTraceExceptTop(int skip_count) { +std::string UnitTestImpl::CurrentOsStackTraceExceptTop(int skip_count) { (void)skip_count; - return String(""); + return ""; } // Returns the current time in milliseconds. @@ -2119,41 +2314,7 @@ TimeInMillis GetTimeInMillis() { // Utilities -// class String - -// Returns the input enclosed in double quotes if it's not NULL; -// otherwise returns "(null)". For example, "\"Hello\"" is returned -// for input "Hello". -// -// This is useful for printing a C string in the syntax of a literal. -// -// Known issue: escape sequences are not handled yet. -String String::ShowCStringQuoted(const char* c_str) { - return c_str ? String::Format("\"%s\"", c_str) : String("(null)"); -} - -// Copies at most length characters from str into a newly-allocated -// piece of memory of size length+1. The memory is allocated with new[]. -// A terminating null byte is written to the memory, and a pointer to it -// is returned. If str is NULL, NULL is returned. -static char* CloneString(const char* str, size_t length) { - if (str == NULL) { - return NULL; - } else { - char* const clone = new char[length + 1]; - posix::StrNCpy(clone, str, length); - clone[length] = '\0'; - return clone; - } -} - -// Clones a 0-terminated C string, allocating memory using new. The -// caller is responsible for deleting[] the return value. Returns the -// cloned string, or NULL if the input is NULL. -const char * String::CloneCString(const char* c_str) { - return (c_str == NULL) ? - NULL : CloneString(c_str, strlen(c_str)); -} +// class String. #if GTEST_OS_WINDOWS_MOBILE // Creates a UTF-16 wide string from the given ANSI string, allocating @@ -2210,11 +2371,6 @@ bool String::CStringEquals(const char * lhs, const char * rhs) { // encoding, and streams the result to the given Message object. static void StreamWideCharsToMessage(const wchar_t* wstr, size_t length, Message* msg) { - // TODO(wan): consider allowing a testing::String object to - // contain '\0'. This will make it behave more like std::string, - // and will allow ToUtf8String() to return the correct encoding - // for '\0' s.t. we can get rid of the conditional here (and in - // several other places). for (size_t i = 0; i != length; ) { // NOLINT if (wstr[i] != L'\0') { *msg << WideStringToUtf8(wstr + i, static_cast<int>(length - i)); @@ -2231,6 +2387,26 @@ static void StreamWideCharsToMessage(const wchar_t* wstr, size_t length, } // namespace internal +// Constructs an empty Message. +// We allocate the stringstream separately because otherwise each use of +// ASSERT/EXPECT in a procedure adds over 200 bytes to the procedure's +// stack frame leading to huge stack frames in some cases; gcc does not reuse +// the stack space. +Message::Message() : ss_(new ::std::stringstream) { + // By default, we want there to be enough precision when printing + // a double to a Message. + *ss_ << std::setprecision(std::numeric_limits<double>::digits10 + 2); +} + +// These two overloads allow streaming a wide C string to a Message +// using the UTF-8 encoding. +Message& Message::operator <<(const wchar_t* wide_c_str) { + return *this << internal::String::ShowWideCString(wide_c_str); +} +Message& Message::operator <<(wchar_t* wide_c_str) { + return *this << internal::String::ShowWideCString(wide_c_str); +} + #if GTEST_HAS_STD_WSTRING // Converts the given wide string to a narrow string using the UTF-8 // encoding, and streams the result to this Message object. @@ -2249,6 +2425,12 @@ Message& Message::operator <<(const ::wstring& wstr) { } #endif // GTEST_HAS_GLOBAL_WSTRING +// Gets the text streamed to this object so far as an std::string. +// Each '\0' character in the buffer is replaced with "\\0". +std::string Message::GetString() const { + return internal::StringStreamToString(ss_.get()); +} + // AssertionResult constructors. // Used in EXPECT_TRUE/FALSE(assertion_result). AssertionResult::AssertionResult(const AssertionResult& other) @@ -2301,8 +2483,8 @@ namespace internal { // be inserted into the message. AssertionResult EqFailure(const char* expected_expression, const char* actual_expression, - const String& expected_value, - const String& actual_value, + const std::string& expected_value, + const std::string& actual_value, bool ignoring_case) { Message msg; msg << "Value of: " << actual_expression; @@ -2322,10 +2504,11 @@ AssertionResult EqFailure(const char* expected_expression, } // Constructs a failure message for Boolean assertions such as EXPECT_TRUE. -String GetBoolAssertionFailureMessage(const AssertionResult& assertion_result, - const char* expression_text, - const char* actual_predicate_value, - const char* expected_predicate_value) { +std::string GetBoolAssertionFailureMessage( + const AssertionResult& assertion_result, + const char* expression_text, + const char* actual_predicate_value, + const char* expected_predicate_value) { const char* actual_message = assertion_result.message(); Message msg; msg << "Value of: " << expression_text @@ -2472,8 +2655,8 @@ AssertionResult CmpHelperSTREQ(const char* expected_expression, return EqFailure(expected_expression, actual_expression, - String::ShowCStringQuoted(expected), - String::ShowCStringQuoted(actual), + PrintToString(expected), + PrintToString(actual), false); } @@ -2488,8 +2671,8 @@ AssertionResult CmpHelperSTRCASEEQ(const char* expected_expression, return EqFailure(expected_expression, actual_expression, - String::ShowCStringQuoted(expected), - String::ShowCStringQuoted(actual), + PrintToString(expected), + PrintToString(actual), true); } @@ -2653,7 +2836,7 @@ AssertionResult HRESULTFailureHelper(const char* expr, // want inserts expanded. const DWORD kFlags = FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS; - const DWORD kBufSize = 4096; // String::Format can't exceed this length. + const DWORD kBufSize = 4096; // Gets the system's human readable message string for this HRESULT. char error_text[kBufSize] = { '\0' }; DWORD message_length = ::FormatMessageA(kFlags, @@ -2663,7 +2846,7 @@ AssertionResult HRESULTFailureHelper(const char* expr, error_text, // output buffer kBufSize, // buf size NULL); // no arguments for inserts - // Trims tailing white space (FormatMessage leaves a trailing cr-lf) + // Trims tailing white space (FormatMessage leaves a trailing CR-LF) for (; message_length && IsSpace(error_text[message_length - 1]); --message_length) { error_text[message_length - 1] = '\0'; @@ -2671,10 +2854,10 @@ AssertionResult HRESULTFailureHelper(const char* expr, # endif // GTEST_OS_WINDOWS_MOBILE - const String error_hex(String::Format("0x%08X ", hr)); + const std::string error_hex("0x" + String::FormatHexInt(hr)); return ::testing::AssertionFailure() << "Expected: " << expr << " " << expected << ".\n" - << " Actual: " << error_hex << error_text << "\n"; + << " Actual: " << error_hex << " " << error_text << "\n"; } } // namespace @@ -2731,12 +2914,15 @@ inline UInt32 ChopLowBits(UInt32* bits, int n) { // Converts a Unicode code point to a narrow string in UTF-8 encoding. // code_point parameter is of type UInt32 because wchar_t may not be // wide enough to contain a code point. -// The output buffer str must containt at least 32 characters. -// The function returns the address of the output buffer. // If the code_point is not a valid Unicode code point -// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be output -// as '(Invalid Unicode 0xXXXXXXXX)'. -char* CodePointToUtf8(UInt32 code_point, char* str) { +// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be converted +// to "(Invalid Unicode 0xXXXXXXXX)". +std::string CodePointToUtf8(UInt32 code_point) { + if (code_point > kMaxCodePoint4) { + return "(Invalid Unicode 0x" + String::FormatHexInt(code_point) + ")"; + } + + char str[5]; // Big enough for the largest valid code point. if (code_point <= kMaxCodePoint1) { str[1] = '\0'; str[0] = static_cast<char>(code_point); // 0xxxxxxx @@ -2749,22 +2935,12 @@ char* CodePointToUtf8(UInt32 code_point, char* str) { str[2] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx str[1] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx str[0] = static_cast<char>(0xE0 | code_point); // 1110xxxx - } else if (code_point <= kMaxCodePoint4) { + } else { // code_point <= kMaxCodePoint4 str[4] = '\0'; str[3] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx str[2] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx str[1] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx str[0] = static_cast<char>(0xF0 | code_point); // 11110xxx - } else { - // The longest string String::Format can produce when invoked - // with these parameters is 28 character long (not including - // the terminating nul character). We are asking for 32 character - // buffer just in case. This is also enough for strncpy to - // null-terminate the destination string. - posix::StrNCpy( - str, String::Format("(Invalid Unicode 0x%X)", code_point).c_str(), 32); - str[31] = '\0'; // Makes sure no change in the format to strncpy leaves - // the result unterminated. } return str; } @@ -2805,7 +2981,7 @@ inline UInt32 CreateCodePointFromUtf16SurrogatePair(wchar_t first, // as '(Invalid Unicode 0xXXXXXXXX)'. If the string is in UTF16 encoding // and contains invalid UTF-16 surrogate pairs, values in those pairs // will be encoded as individual Unicode characters from Basic Normal Plane. -String WideStringToUtf8(const wchar_t* str, int num_chars) { +std::string WideStringToUtf8(const wchar_t* str, int num_chars) { if (num_chars == -1) num_chars = static_cast<int>(wcslen(str)); @@ -2823,27 +2999,17 @@ String WideStringToUtf8(const wchar_t* str, int num_chars) { unicode_code_point = static_cast<UInt32>(str[i]); } - char buffer[32]; // CodePointToUtf8 requires a buffer this big. - stream << CodePointToUtf8(unicode_code_point, buffer); + stream << CodePointToUtf8(unicode_code_point); } return StringStreamToString(&stream); } -// Converts a wide C string to a String using the UTF-8 encoding. +// Converts a wide C string to an std::string using the UTF-8 encoding. // NULL will be converted to "(null)". -String String::ShowWideCString(const wchar_t * wide_c_str) { - if (wide_c_str == NULL) return String("(null)"); +std::string String::ShowWideCString(const wchar_t * wide_c_str) { + if (wide_c_str == NULL) return "(null)"; - return String(internal::WideStringToUtf8(wide_c_str, -1).c_str()); -} - -// Similar to ShowWideCString(), except that this function encloses -// the converted string in double quotes. -String String::ShowWideCStringQuoted(const wchar_t* wide_c_str) { - if (wide_c_str == NULL) return String("(null)"); - - return String::Format("L\"%s\"", - String::ShowWideCString(wide_c_str).c_str()); + return internal::WideStringToUtf8(wide_c_str, -1); } // Compares two wide C strings. Returns true iff they have the same @@ -2871,8 +3037,8 @@ AssertionResult CmpHelperSTREQ(const char* expected_expression, return EqFailure(expected_expression, actual_expression, - String::ShowWideCStringQuoted(expected), - String::ShowWideCStringQuoted(actual), + PrintToString(expected), + PrintToString(actual), false); } @@ -2887,8 +3053,8 @@ AssertionResult CmpHelperSTRNE(const char* s1_expression, return AssertionFailure() << "Expected: (" << s1_expression << ") != (" << s2_expression << "), actual: " - << String::ShowWideCStringQuoted(s1) - << " vs " << String::ShowWideCStringQuoted(s2); + << PrintToString(s1) + << " vs " << PrintToString(s2); } // Compares two C strings, ignoring case. Returns true iff they have @@ -2939,135 +3105,69 @@ bool String::CaseInsensitiveWideCStringEquals(const wchar_t* lhs, #endif // OS selector } -// Compares this with another String. -// Returns < 0 if this is less than rhs, 0 if this is equal to rhs, or > 0 -// if this is greater than rhs. -int String::Compare(const String & rhs) const { - const char* const lhs_c_str = c_str(); - const char* const rhs_c_str = rhs.c_str(); - - if (lhs_c_str == NULL) { - return rhs_c_str == NULL ? 0 : -1; // NULL < anything except NULL - } else if (rhs_c_str == NULL) { - return 1; - } - - const size_t shorter_str_len = - length() <= rhs.length() ? length() : rhs.length(); - for (size_t i = 0; i != shorter_str_len; i++) { - if (lhs_c_str[i] < rhs_c_str[i]) { - return -1; - } else if (lhs_c_str[i] > rhs_c_str[i]) { - return 1; - } - } - return (length() < rhs.length()) ? -1 : - (length() > rhs.length()) ? 1 : 0; +// Returns true iff str ends with the given suffix, ignoring case. +// Any string is considered to end with an empty suffix. +bool String::EndsWithCaseInsensitive( + const std::string& str, const std::string& suffix) { + const size_t str_len = str.length(); + const size_t suffix_len = suffix.length(); + return (str_len >= suffix_len) && + CaseInsensitiveCStringEquals(str.c_str() + str_len - suffix_len, + suffix.c_str()); } -// Returns true iff this String ends with the given suffix. *Any* -// String is considered to end with a NULL or empty suffix. -bool String::EndsWith(const char* suffix) const { - if (suffix == NULL || CStringEquals(suffix, "")) return true; - - if (c_str() == NULL) return false; - - const size_t this_len = strlen(c_str()); - const size_t suffix_len = strlen(suffix); - return (this_len >= suffix_len) && - CStringEquals(c_str() + this_len - suffix_len, suffix); +// Formats an int value as "%02d". +std::string String::FormatIntWidth2(int value) { + std::stringstream ss; + ss << std::setfill('0') << std::setw(2) << value; + return ss.str(); } -// Returns true iff this String ends with the given suffix, ignoring case. -// Any String is considered to end with a NULL or empty suffix. -bool String::EndsWithCaseInsensitive(const char* suffix) const { - if (suffix == NULL || CStringEquals(suffix, "")) return true; - - if (c_str() == NULL) return false; - - const size_t this_len = strlen(c_str()); - const size_t suffix_len = strlen(suffix); - return (this_len >= suffix_len) && - CaseInsensitiveCStringEquals(c_str() + this_len - suffix_len, suffix); +// Formats an int value as "%X". +std::string String::FormatHexInt(int value) { + std::stringstream ss; + ss << std::hex << std::uppercase << value; + return ss.str(); } -// Formats a list of arguments to a String, using the same format -// spec string as for printf. -// -// We do not use the StringPrintf class as it is not universally -// available. -// -// The result is limited to 4096 characters (including the tailing 0). -// If 4096 characters are not enough to format the input, or if -// there's an error, "<formatting error or buffer exceeded>" is -// returned. -String String::Format(const char * format, ...) { - va_list args; - va_start(args, format); - - char buffer[4096]; - const int kBufferSize = sizeof(buffer)/sizeof(buffer[0]); - - // MSVC 8 deprecates vsnprintf(), so we want to suppress warning - // 4996 (deprecated function) there. -#ifdef _MSC_VER // We are using MSVC. -# pragma warning(push) // Saves the current warning state. -# pragma warning(disable:4996) // Temporarily disables warning 4996. - - const int size = vsnprintf(buffer, kBufferSize, format, args); - -# pragma warning(pop) // Restores the warning state. -#else // We are not using MSVC. - const int size = vsnprintf(buffer, kBufferSize, format, args); -#endif // _MSC_VER - va_end(args); - - // vsnprintf()'s behavior is not portable. When the buffer is not - // big enough, it returns a negative value in MSVC, and returns the - // needed buffer size on Linux. When there is an output error, it - // always returns a negative value. For simplicity, we lump the two - // error cases together. - if (size < 0 || size >= kBufferSize) { - return String("<formatting error or buffer exceeded>"); - } else { - return String(buffer, size); - } +// Formats a byte as "%02X". +std::string String::FormatByte(unsigned char value) { + std::stringstream ss; + ss << std::setfill('0') << std::setw(2) << std::hex << std::uppercase + << static_cast<unsigned int>(value); + return ss.str(); } -// Converts the buffer in a stringstream to a String, converting NUL +// Converts the buffer in a stringstream to an std::string, converting NUL // bytes to "\\0" along the way. -String StringStreamToString(::std::stringstream* ss) { +std::string StringStreamToString(::std::stringstream* ss) { const ::std::string& str = ss->str(); const char* const start = str.c_str(); const char* const end = start + str.length(); - // We need to use a helper stringstream to do this transformation - // because String doesn't support push_back(). - ::std::stringstream helper; + std::string result; + result.reserve(2 * (end - start)); for (const char* ch = start; ch != end; ++ch) { if (*ch == '\0') { - helper << "\\0"; // Replaces NUL with "\\0"; + result += "\\0"; // Replaces NUL with "\\0"; } else { - helper.put(*ch); + result += *ch; } } - return String(helper.str().c_str()); + return result; } // Appends the user-supplied message to the Google-Test-generated message. -String AppendUserMessage(const String& gtest_msg, - const Message& user_msg) { +std::string AppendUserMessage(const std::string& gtest_msg, + const Message& user_msg) { // Appends the user message if it's non-empty. - const String user_msg_string = user_msg.GetString(); + const std::string user_msg_string = user_msg.GetString(); if (user_msg_string.empty()) { return gtest_msg; } - Message msg; - msg << gtest_msg << "\n" << user_msg_string; - - return msg.GetString(); + return gtest_msg + "\n" + user_msg_string; } } // namespace internal @@ -3115,8 +3215,9 @@ void TestResult::AddTestPartResult(const TestPartResult& test_part_result) { // Adds a test property to the list. If a property with the same key as the // supplied property is already represented, the value of this test_property // replaces the old value for that key. -void TestResult::RecordProperty(const TestProperty& test_property) { - if (!ValidateTestProperty(test_property)) { +void TestResult::RecordProperty(const std::string& xml_element, + const TestProperty& test_property) { + if (!ValidateTestProperty(xml_element, test_property)) { return; } internal::MutexLock lock(&test_properites_mutex_); @@ -3130,21 +3231,94 @@ void TestResult::RecordProperty(const TestProperty& test_property) { property_with_matching_key->SetValue(test_property.value()); } -// Adds a failure if the key is a reserved attribute of Google Test -// testcase tags. Returns true if the property is valid. -bool TestResult::ValidateTestProperty(const TestProperty& test_property) { - internal::String key(test_property.key()); - if (key == "name" || key == "status" || key == "time" || key == "classname") { - ADD_FAILURE() - << "Reserved key used in RecordProperty(): " - << key - << " ('name', 'status', 'time', and 'classname' are reserved by " - << GTEST_NAME_ << ")"; +// The list of reserved attributes used in the <testsuites> element of XML +// output. +static const char* const kReservedTestSuitesAttributes[] = { + "disabled", + "errors", + "failures", + "name", + "random_seed", + "tests", + "time", + "timestamp" +}; + +// The list of reserved attributes used in the <testsuite> element of XML +// output. +static const char* const kReservedTestSuiteAttributes[] = { + "disabled", + "errors", + "failures", + "name", + "tests", + "time" +}; + +// The list of reserved attributes used in the <testcase> element of XML output. +static const char* const kReservedTestCaseAttributes[] = { + "classname", + "name", + "status", + "time", + "type_param", + "value_param" +}; + +template <int kSize> +std::vector<std::string> ArrayAsVector(const char* const (&array)[kSize]) { + return std::vector<std::string>(array, array + kSize); +} + +static std::vector<std::string> GetReservedAttributesForElement( + const std::string& xml_element) { + if (xml_element == "testsuites") { + return ArrayAsVector(kReservedTestSuitesAttributes); + } else if (xml_element == "testsuite") { + return ArrayAsVector(kReservedTestSuiteAttributes); + } else if (xml_element == "testcase") { + return ArrayAsVector(kReservedTestCaseAttributes); + } else { + GTEST_CHECK_(false) << "Unrecognized xml_element provided: " << xml_element; + } + // This code is unreachable but some compilers may not realizes that. + return std::vector<std::string>(); +} + +static std::string FormatWordList(const std::vector<std::string>& words) { + Message word_list; + for (size_t i = 0; i < words.size(); ++i) { + if (i > 0 && words.size() > 2) { + word_list << ", "; + } + if (i == words.size() - 1) { + word_list << "and "; + } + word_list << "'" << words[i] << "'"; + } + return word_list.GetString(); +} + +bool ValidateTestPropertyName(const std::string& property_name, + const std::vector<std::string>& reserved_names) { + if (std::find(reserved_names.begin(), reserved_names.end(), property_name) != + reserved_names.end()) { + ADD_FAILURE() << "Reserved key used in RecordProperty(): " << property_name + << " (" << FormatWordList(reserved_names) + << " are reserved by " << GTEST_NAME_ << ")"; return false; } return true; } +// Adds a failure if the key is a reserved attribute of the element named +// xml_element. Returns true if the property is valid. +bool TestResult::ValidateTestProperty(const std::string& xml_element, + const TestProperty& test_property) { + return ValidateTestPropertyName(test_property.key(), + GetReservedAttributesForElement(xml_element)); +} + // Clears the object. void TestResult::Clear() { test_part_results_.clear(); @@ -3220,12 +3394,12 @@ void Test::TearDown() { } // Allows user supplied key value pairs to be recorded for later output. -void Test::RecordProperty(const char* key, const char* value) { - UnitTest::GetInstance()->RecordPropertyForCurrentTest(key, value); +void Test::RecordProperty(const std::string& key, const std::string& value) { + UnitTest::GetInstance()->RecordProperty(key, value); } // Allows user supplied key value pairs to be recorded for later output. -void Test::RecordProperty(const char* key, int value) { +void Test::RecordProperty(const std::string& key, int value) { Message value_message; value_message << value; RecordProperty(key, value_message.GetString().c_str()); @@ -3234,7 +3408,7 @@ void Test::RecordProperty(const char* key, int value) { namespace internal { void ReportFailureInUnknownLocation(TestPartResult::Type result_type, - const String& message) { + const std::string& message) { // This function is a friend of UnitTest and as such has access to // AddTestPartResult. UnitTest::GetInstance()->AddTestPartResult( @@ -3242,7 +3416,7 @@ void ReportFailureInUnknownLocation(TestPartResult::Type result_type, NULL, // No info about the source file where the exception occurred. -1, // We have no info on which line caused the exception. message, - String()); // No stack trace, either. + ""); // No stack trace, either. } } // namespace internal @@ -3319,22 +3493,24 @@ bool Test::HasSameFixtureClass() { // function returns its result via an output parameter pointer because VC++ // prohibits creation of objects with destructors on stack in functions // using __try (see error C2712). -static internal::String* FormatSehExceptionMessage(DWORD exception_code, - const char* location) { +static std::string* FormatSehExceptionMessage(DWORD exception_code, + const char* location) { Message message; message << "SEH exception with code 0x" << std::setbase(16) << exception_code << std::setbase(10) << " thrown in " << location << "."; - return new internal::String(message.GetString()); + return new std::string(message.GetString()); } #endif // GTEST_HAS_SEH +namespace internal { + #if GTEST_HAS_EXCEPTIONS // Adds an "exception thrown" fatal failure to the current test. -static internal::String FormatCxxExceptionMessage(const char* description, - const char* location) { +static std::string FormatCxxExceptionMessage(const char* description, + const char* location) { Message message; if (description != NULL) { message << "C++ exception with description \"" << description << "\""; @@ -3346,23 +3522,15 @@ static internal::String FormatCxxExceptionMessage(const char* description, return message.GetString(); } -static internal::String PrintTestPartResultToString( +static std::string PrintTestPartResultToString( const TestPartResult& test_part_result); -// A failed Google Test assertion will throw an exception of this type when -// GTEST_FLAG(throw_on_failure) is true (if exceptions are enabled). We -// derive it from std::runtime_error, which is for errors presumably -// detectable only at run time. Since std::runtime_error inherits from -// std::exception, many testing frameworks know how to extract and print the -// message inside it. -class GoogleTestFailureException : public ::std::runtime_error { - public: - explicit GoogleTestFailureException(const TestPartResult& failure) - : ::std::runtime_error(PrintTestPartResultToString(failure).c_str()) {} -}; +GoogleTestFailureException::GoogleTestFailureException( + const TestPartResult& failure) + : ::std::runtime_error(PrintTestPartResultToString(failure).c_str()) {} + #endif // GTEST_HAS_EXCEPTIONS -namespace internal { // We put these helper functions in the internal namespace as IBM's xlC // compiler rejects the code if they were declared static. @@ -3382,7 +3550,7 @@ Result HandleSehExceptionsInMethodIfSupported( // We create the exception message on the heap because VC++ prohibits // creation of objects with destructors on stack in functions using __try // (see error C2712). - internal::String* exception_message = FormatSehExceptionMessage( + std::string* exception_message = FormatSehExceptionMessage( GetExceptionCode(), location); internal::ReportFailureInUnknownLocation(TestPartResult::kFatalFailure, *exception_message); @@ -3428,9 +3596,10 @@ Result HandleExceptionsInMethodIfSupported( #if GTEST_HAS_EXCEPTIONS try { return HandleSehExceptionsInMethodIfSupported(object, method, location); - } catch (const GoogleTestFailureException&) { // NOLINT - // This exception doesn't originate in code under test. It makes no - // sense to report it as a test failure. + } catch (const internal::GoogleTestFailureException&) { // NOLINT + // This exception type can only be thrown by a failed Google + // Test assertion with the intention of letting another testing + // framework catch it. Therefore we just re-throw it. throw; } catch (const std::exception& e) { // NOLINT internal::ReportFailureInUnknownLocation( @@ -3489,10 +3658,8 @@ bool Test::HasNonfatalFailure() { // Constructs a TestInfo object. It assumes ownership of the test factory // object. -// TODO(vladl@google.com): Make a_test_case_name and a_name const string&'s -// to signify they cannot be NULLs. -TestInfo::TestInfo(const char* a_test_case_name, - const char* a_name, +TestInfo::TestInfo(const std::string& a_test_case_name, + const std::string& a_name, const char* a_type_param, const char* a_value_param, internal::TypeId fixture_class_id, @@ -3531,7 +3698,8 @@ namespace internal { // The newly created TestInfo instance will assume // ownership of the factory object. TestInfo* MakeAndRegisterTestInfo( - const char* test_case_name, const char* name, + const char* test_case_name, + const char* name, const char* type_param, const char* value_param, TypeId fixture_class_id, @@ -3586,11 +3754,11 @@ class TestNameIs { // Returns true iff the test name of test_info matches name_. bool operator()(const TestInfo * test_info) const { - return test_info && internal::String(test_info->name()).Compare(name_) == 0; + return test_info && test_info->name() == name_; } private: - internal::String name_; + std::string name_; }; } // namespace @@ -3669,10 +3837,21 @@ int TestCase::failed_test_count() const { return CountIf(test_info_list_, TestFailed); } +// Gets the number of disabled tests that will be reported in the XML report. +int TestCase::reportable_disabled_test_count() const { + return CountIf(test_info_list_, TestReportableDisabled); +} + +// Gets the number of disabled tests in this test case. int TestCase::disabled_test_count() const { return CountIf(test_info_list_, TestDisabled); } +// Gets the number of tests to be printed in the XML report. +int TestCase::reportable_test_count() const { + return CountIf(test_info_list_, TestReportable); +} + // Get the number of tests in this test case that should run. int TestCase::test_to_run_count() const { return CountIf(test_info_list_, ShouldRunTest); @@ -3760,6 +3939,7 @@ void TestCase::Run() { // Clears the results of all tests in this test case. void TestCase::ClearResult() { + ad_hoc_test_result_.Clear(); ForEach(test_info_list_, TestInfo::ClearTestResult); } @@ -3780,20 +3960,20 @@ void TestCase::UnshuffleTests() { // // FormatCountableNoun(1, "formula", "formuli") returns "1 formula". // FormatCountableNoun(5, "book", "books") returns "5 books". -static internal::String FormatCountableNoun(int count, - const char * singular_form, - const char * plural_form) { - return internal::String::Format("%d %s", count, - count == 1 ? singular_form : plural_form); +static std::string FormatCountableNoun(int count, + const char * singular_form, + const char * plural_form) { + return internal::StreamableToString(count) + " " + + (count == 1 ? singular_form : plural_form); } // Formats the count of tests. -static internal::String FormatTestCount(int test_count) { +static std::string FormatTestCount(int test_count) { return FormatCountableNoun(test_count, "test", "tests"); } // Formats the count of test cases. -static internal::String FormatTestCaseCount(int test_case_count) { +static std::string FormatTestCaseCount(int test_case_count) { return FormatCountableNoun(test_case_count, "test case", "test cases"); } @@ -3818,8 +3998,10 @@ static const char * TestPartResultTypeToString(TestPartResult::Type type) { } } -// Prints a TestPartResult to a String. -static internal::String PrintTestPartResultToString( +namespace internal { + +// Prints a TestPartResult to an std::string. +static std::string PrintTestPartResultToString( const TestPartResult& test_part_result) { return (Message() << internal::FormatFileLocation(test_part_result.file_name(), @@ -3830,7 +4012,7 @@ static internal::String PrintTestPartResultToString( // Prints a TestPartResult. static void PrintTestPartResult(const TestPartResult& test_part_result) { - const internal::String& result = + const std::string& result = PrintTestPartResultToString(test_part_result); printf("%s\n", result.c_str()); fflush(stdout); @@ -3849,8 +4031,6 @@ static void PrintTestPartResult(const TestPartResult& test_part_result) { // class PrettyUnitTestResultPrinter -namespace internal { - enum GTestColor { COLOR_DEFAULT, COLOR_RED, @@ -3902,6 +4082,7 @@ bool ShouldUseColor(bool stdout_is_tty) { String::CStringEquals(term, "xterm-color") || String::CStringEquals(term, "xterm-256color") || String::CStringEquals(term, "screen") || + String::CStringEquals(term, "screen-256color") || String::CStringEquals(term, "linux") || String::CStringEquals(term, "cygwin"); return stdout_is_tty && term_supports_color; @@ -3925,7 +4106,7 @@ void ColoredPrintf(GTestColor color, const char* fmt, ...) { va_list args; va_start(args, fmt); -#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN || GTEST_OS_ZOS +#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN || GTEST_OS_ZOS || GTEST_OS_IOS const bool use_color = false; #else static const bool in_color_mode = @@ -3967,6 +4148,11 @@ void ColoredPrintf(GTestColor color, const char* fmt, ...) { va_end(args); } +// Text printed in Google Test's text output and --gunit_list_tests +// output to label the type parameter and value parameter for a test. +static const char kTypeParamLabel[] = "TypeParam"; +static const char kValueParamLabel[] = "GetParam()"; + void PrintFullTestCommentIfPresent(const TestInfo& test_info) { const char* const type_param = test_info.type_param(); const char* const value_param = test_info.value_param(); @@ -3974,12 +4160,12 @@ void PrintFullTestCommentIfPresent(const TestInfo& test_info) { if (type_param != NULL || value_param != NULL) { printf(", where "); if (type_param != NULL) { - printf("TypeParam = %s", type_param); + printf("%s = %s", kTypeParamLabel, type_param); if (value_param != NULL) printf(" and "); } if (value_param != NULL) { - printf("GetParam() = %s", value_param); + printf("%s = %s", kValueParamLabel, value_param); } } } @@ -4011,8 +4197,6 @@ class PrettyUnitTestResultPrinter : public TestEventListener { private: static void PrintFailedTests(const UnitTest& unit_test); - - internal::String test_case_name_; }; // Fired before each iteration of tests starts. @@ -4025,7 +4209,7 @@ void PrettyUnitTestResultPrinter::OnTestIterationStart( // Prints the filter if it's not *. This reminds the user that some // tests may be skipped. - if (!internal::String::CStringEquals(filter, kUniversalFilter)) { + if (!String::CStringEquals(filter, kUniversalFilter)) { ColoredPrintf(COLOR_YELLOW, "Note: %s filter = %s\n", GTEST_NAME_, filter); } @@ -4059,22 +4243,21 @@ void PrettyUnitTestResultPrinter::OnEnvironmentsSetUpStart( } void PrettyUnitTestResultPrinter::OnTestCaseStart(const TestCase& test_case) { - test_case_name_ = test_case.name(); - const internal::String counts = + const std::string counts = FormatCountableNoun(test_case.test_to_run_count(), "test", "tests"); ColoredPrintf(COLOR_GREEN, "[----------] "); - printf("%s from %s", counts.c_str(), test_case_name_.c_str()); + printf("%s from %s", counts.c_str(), test_case.name()); if (test_case.type_param() == NULL) { printf("\n"); } else { - printf(", where TypeParam = %s\n", test_case.type_param()); + printf(", where %s = %s\n", kTypeParamLabel, test_case.type_param()); } fflush(stdout); } void PrettyUnitTestResultPrinter::OnTestStart(const TestInfo& test_info) { ColoredPrintf(COLOR_GREEN, "[ RUN ] "); - PrintTestName(test_case_name_.c_str(), test_info.name()); + PrintTestName(test_info.test_case_name(), test_info.name()); printf("\n"); fflush(stdout); } @@ -4097,7 +4280,7 @@ void PrettyUnitTestResultPrinter::OnTestEnd(const TestInfo& test_info) { } else { ColoredPrintf(COLOR_RED, "[ FAILED ] "); } - PrintTestName(test_case_name_.c_str(), test_info.name()); + PrintTestName(test_info.test_case_name(), test_info.name()); if (test_info.result()->Failed()) PrintFullTestCommentIfPresent(test_info); @@ -4113,12 +4296,11 @@ void PrettyUnitTestResultPrinter::OnTestEnd(const TestInfo& test_info) { void PrettyUnitTestResultPrinter::OnTestCaseEnd(const TestCase& test_case) { if (!GTEST_FLAG(print_time)) return; - test_case_name_ = test_case.name(); - const internal::String counts = + const std::string counts = FormatCountableNoun(test_case.test_to_run_count(), "test", "tests"); ColoredPrintf(COLOR_GREEN, "[----------] "); printf("%s from %s (%s ms total)\n\n", - counts.c_str(), test_case_name_.c_str(), + counts.c_str(), test_case.name(), internal::StreamableToString(test_case.elapsed_time()).c_str()); fflush(stdout); } @@ -4179,7 +4361,7 @@ void PrettyUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, num_failures == 1 ? "TEST" : "TESTS"); } - int num_disabled = unit_test.disabled_test_count(); + int num_disabled = unit_test.reportable_disabled_test_count(); if (num_disabled && !GTEST_FLAG(also_run_disabled_tests)) { if (!num_failures) { printf("\n"); // Add a spacer if no FAILURE banner is displayed. @@ -4333,18 +4515,27 @@ class XmlUnitTestResultPrinter : public EmptyTestEventListener { // is_attribute is true, the text is meant to appear as an attribute // value, and normalizable whitespace is preserved by replacing it // with character references. - static String EscapeXml(const char* str, bool is_attribute); + static std::string EscapeXml(const std::string& str, bool is_attribute); // Returns the given string with all characters invalid in XML removed. - static string RemoveInvalidXmlCharacters(const string& str); + static std::string RemoveInvalidXmlCharacters(const std::string& str); // Convenience wrapper around EscapeXml when str is an attribute value. - static String EscapeXmlAttribute(const char* str) { + static std::string EscapeXmlAttribute(const std::string& str) { return EscapeXml(str, true); } // Convenience wrapper around EscapeXml when str is not an attribute value. - static String EscapeXmlText(const char* str) { return EscapeXml(str, false); } + static std::string EscapeXmlText(const char* str) { + return EscapeXml(str, false); + } + + // Verifies that the given attribute belongs to the given element and + // streams the attribute as XML. + static void OutputXmlAttribute(std::ostream* stream, + const std::string& element_name, + const std::string& name, + const std::string& value); // Streams an XML CDATA section, escaping invalid CDATA sequences as needed. static void OutputXmlCDataSection(::std::ostream* stream, const char* data); @@ -4355,19 +4546,21 @@ class XmlUnitTestResultPrinter : public EmptyTestEventListener { const TestInfo& test_info); // Prints an XML representation of a TestCase object - static void PrintXmlTestCase(FILE* out, const TestCase& test_case); + static void PrintXmlTestCase(::std::ostream* stream, + const TestCase& test_case); // Prints an XML summary of unit_test to output stream out. - static void PrintXmlUnitTest(FILE* out, const UnitTest& unit_test); + static void PrintXmlUnitTest(::std::ostream* stream, + const UnitTest& unit_test); // Produces a string representing the test properties in a result as space // delimited XML attributes based on the property key="value" pairs. - // When the String is not empty, it includes a space at the beginning, + // When the std::string is not empty, it includes a space at the beginning, // to delimit this attribute from prior attributes. - static String TestPropertiesAsXmlAttributes(const TestResult& result); + static std::string TestPropertiesAsXmlAttributes(const TestResult& result); // The output file. - const String output_file_; + const std::string output_file_; GTEST_DISALLOW_COPY_AND_ASSIGN_(XmlUnitTestResultPrinter); }; @@ -4409,7 +4602,9 @@ void XmlUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, fflush(stderr); exit(EXIT_FAILURE); } - PrintXmlUnitTest(xmlout, unit_test); + std::stringstream stream; + PrintXmlUnitTest(&stream, unit_test); + fprintf(xmlout, "%s", StringStreamToString(&stream).c_str()); fclose(xmlout); } @@ -4425,42 +4620,43 @@ void XmlUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, // most invalid characters can be retained using character references. // TODO(wan): It might be nice to have a minimally invasive, human-readable // escaping scheme for invalid characters, rather than dropping them. -String XmlUnitTestResultPrinter::EscapeXml(const char* str, bool is_attribute) { +std::string XmlUnitTestResultPrinter::EscapeXml( + const std::string& str, bool is_attribute) { Message m; - if (str != NULL) { - for (const char* src = str; *src; ++src) { - switch (*src) { - case '<': - m << "<"; - break; - case '>': - m << ">"; - break; - case '&': - m << "&"; - break; - case '\'': - if (is_attribute) - m << "'"; - else - m << '\''; - break; - case '"': - if (is_attribute) - m << """; + for (size_t i = 0; i < str.size(); ++i) { + const char ch = str[i]; + switch (ch) { + case '<': + m << "<"; + break; + case '>': + m << ">"; + break; + case '&': + m << "&"; + break; + case '\'': + if (is_attribute) + m << "'"; + else + m << '\''; + break; + case '"': + if (is_attribute) + m << """; + else + m << '"'; + break; + default: + if (IsValidXmlCharacter(ch)) { + if (is_attribute && IsNormalizableWhitespace(ch)) + m << "&#x" << String::FormatByte(static_cast<unsigned char>(ch)) + << ";"; else - m << '"'; - break; - default: - if (IsValidXmlCharacter(*src)) { - if (is_attribute && IsNormalizableWhitespace(*src)) - m << String::Format("&#x%02X;", unsigned(*src)); - else - m << *src; - } - break; - } + m << ch; + } + break; } } @@ -4470,10 +4666,11 @@ String XmlUnitTestResultPrinter::EscapeXml(const char* str, bool is_attribute) { // Returns the given string with all characters invalid in XML removed. // Currently invalid characters are dropped from the string. An // alternative is to replace them with certain characters such as . or ?. -string XmlUnitTestResultPrinter::RemoveInvalidXmlCharacters(const string& str) { - string output; +std::string XmlUnitTestResultPrinter::RemoveInvalidXmlCharacters( + const std::string& str) { + std::string output; output.reserve(str.size()); - for (string::const_iterator it = str.begin(); it != str.end(); ++it) + for (std::string::const_iterator it = str.begin(); it != str.end(); ++it) if (IsValidXmlCharacter(*it)) output.push_back(*it); @@ -4503,6 +4700,32 @@ std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) { return ss.str(); } +// Converts the given epoch time in milliseconds to a date string in the ISO +// 8601 format, without the timezone information. +std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) { + // Using non-reentrant version as localtime_r is not portable. + time_t seconds = static_cast<time_t>(ms / 1000); +#ifdef _MSC_VER +# pragma warning(push) // Saves the current warning state. +# pragma warning(disable:4996) // Temporarily disables warning 4996 + // (function or variable may be unsafe). + const struct tm* const time_struct = localtime(&seconds); // NOLINT +# pragma warning(pop) // Restores the warning state again. +#else + const struct tm* const time_struct = localtime(&seconds); // NOLINT +#endif + if (time_struct == NULL) + return ""; // Invalid ms value + + // YYYY-MM-DDThh:mm:ss + return StreamableToString(time_struct->tm_year + 1900) + "-" + + String::FormatIntWidth2(time_struct->tm_mon + 1) + "-" + + String::FormatIntWidth2(time_struct->tm_mday) + "T" + + String::FormatIntWidth2(time_struct->tm_hour) + ":" + + String::FormatIntWidth2(time_struct->tm_min) + ":" + + String::FormatIntWidth2(time_struct->tm_sec); +} + // Streams an XML CDATA section, escaping invalid CDATA sequences as needed. void XmlUnitTestResultPrinter::OutputXmlCDataSection(::std::ostream* stream, const char* data) { @@ -4523,45 +4746,63 @@ void XmlUnitTestResultPrinter::OutputXmlCDataSection(::std::ostream* stream, *stream << "]]>"; } +void XmlUnitTestResultPrinter::OutputXmlAttribute( + std::ostream* stream, + const std::string& element_name, + const std::string& name, + const std::string& value) { + const std::vector<std::string>& allowed_names = + GetReservedAttributesForElement(element_name); + + GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) != + allowed_names.end()) + << "Attribute " << name << " is not allowed for element <" << element_name + << ">."; + + *stream << " " << name << "=\"" << EscapeXmlAttribute(value) << "\""; +} + // Prints an XML representation of a TestInfo object. // TODO(wan): There is also value in printing properties with the plain printer. void XmlUnitTestResultPrinter::OutputXmlTestInfo(::std::ostream* stream, const char* test_case_name, const TestInfo& test_info) { const TestResult& result = *test_info.result(); - *stream << " <testcase name=\"" - << EscapeXmlAttribute(test_info.name()).c_str() << "\""; + const std::string kTestcase = "testcase"; + + *stream << " <testcase"; + OutputXmlAttribute(stream, kTestcase, "name", test_info.name()); if (test_info.value_param() != NULL) { - *stream << " value_param=\"" << EscapeXmlAttribute(test_info.value_param()) - << "\""; + OutputXmlAttribute(stream, kTestcase, "value_param", + test_info.value_param()); } if (test_info.type_param() != NULL) { - *stream << " type_param=\"" << EscapeXmlAttribute(test_info.type_param()) - << "\""; + OutputXmlAttribute(stream, kTestcase, "type_param", test_info.type_param()); } - *stream << " status=\"" - << (test_info.should_run() ? "run" : "notrun") - << "\" time=\"" - << FormatTimeInMillisAsSeconds(result.elapsed_time()) - << "\" classname=\"" << EscapeXmlAttribute(test_case_name).c_str() - << "\"" << TestPropertiesAsXmlAttributes(result).c_str(); + OutputXmlAttribute(stream, kTestcase, "status", + test_info.should_run() ? "run" : "notrun"); + OutputXmlAttribute(stream, kTestcase, "time", + FormatTimeInMillisAsSeconds(result.elapsed_time())); + OutputXmlAttribute(stream, kTestcase, "classname", test_case_name); + *stream << TestPropertiesAsXmlAttributes(result); int failures = 0; for (int i = 0; i < result.total_part_count(); ++i) { const TestPartResult& part = result.GetTestPartResult(i); if (part.failed()) { - if (++failures == 1) + if (++failures == 1) { *stream << ">\n"; - *stream << " <failure message=\"" - << EscapeXmlAttribute(part.summary()).c_str() - << "\" type=\"\">"; + } const string location = internal::FormatCompilerIndependentFileLocation( part.file_name(), part.line_number()); - const string message = location + "\n" + part.message(); - OutputXmlCDataSection(stream, - RemoveInvalidXmlCharacters(message).c_str()); + const string summary = location + "\n" + part.summary(); + *stream << " <failure message=\"" + << EscapeXmlAttribute(summary.c_str()) + << "\" type=\"\">"; + const string detail = location + "\n" + part.message(); + OutputXmlCDataSection(stream, RemoveInvalidXmlCharacters(detail).c_str()); *stream << "</failure>\n"; } } @@ -4573,49 +4814,73 @@ void XmlUnitTestResultPrinter::OutputXmlTestInfo(::std::ostream* stream, } // Prints an XML representation of a TestCase object -void XmlUnitTestResultPrinter::PrintXmlTestCase(FILE* out, +void XmlUnitTestResultPrinter::PrintXmlTestCase(std::ostream* stream, const TestCase& test_case) { - fprintf(out, - " <testsuite name=\"%s\" tests=\"%d\" failures=\"%d\" " - "disabled=\"%d\" ", - EscapeXmlAttribute(test_case.name()).c_str(), - test_case.total_test_count(), - test_case.failed_test_count(), - test_case.disabled_test_count()); - fprintf(out, - "errors=\"0\" time=\"%s\">\n", - FormatTimeInMillisAsSeconds(test_case.elapsed_time()).c_str()); + const std::string kTestsuite = "testsuite"; + *stream << " <" << kTestsuite; + OutputXmlAttribute(stream, kTestsuite, "name", test_case.name()); + OutputXmlAttribute(stream, kTestsuite, "tests", + StreamableToString(test_case.reportable_test_count())); + OutputXmlAttribute(stream, kTestsuite, "failures", + StreamableToString(test_case.failed_test_count())); + OutputXmlAttribute( + stream, kTestsuite, "disabled", + StreamableToString(test_case.reportable_disabled_test_count())); + OutputXmlAttribute(stream, kTestsuite, "errors", "0"); + OutputXmlAttribute(stream, kTestsuite, "time", + FormatTimeInMillisAsSeconds(test_case.elapsed_time())); + *stream << TestPropertiesAsXmlAttributes(test_case.ad_hoc_test_result()) + << ">\n"; + for (int i = 0; i < test_case.total_test_count(); ++i) { - ::std::stringstream stream; - OutputXmlTestInfo(&stream, test_case.name(), *test_case.GetTestInfo(i)); - fprintf(out, "%s", StringStreamToString(&stream).c_str()); + if (test_case.GetTestInfo(i)->is_reportable()) + OutputXmlTestInfo(stream, test_case.name(), *test_case.GetTestInfo(i)); } - fprintf(out, " </testsuite>\n"); + *stream << " </" << kTestsuite << ">\n"; } // Prints an XML summary of unit_test to output stream out. -void XmlUnitTestResultPrinter::PrintXmlUnitTest(FILE* out, +void XmlUnitTestResultPrinter::PrintXmlUnitTest(std::ostream* stream, const UnitTest& unit_test) { - fprintf(out, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); - fprintf(out, - "<testsuites tests=\"%d\" failures=\"%d\" disabled=\"%d\" " - "errors=\"0\" time=\"%s\" ", - unit_test.total_test_count(), - unit_test.failed_test_count(), - unit_test.disabled_test_count(), - FormatTimeInMillisAsSeconds(unit_test.elapsed_time()).c_str()); + const std::string kTestsuites = "testsuites"; + + *stream << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; + *stream << "<" << kTestsuites; + + OutputXmlAttribute(stream, kTestsuites, "tests", + StreamableToString(unit_test.reportable_test_count())); + OutputXmlAttribute(stream, kTestsuites, "failures", + StreamableToString(unit_test.failed_test_count())); + OutputXmlAttribute( + stream, kTestsuites, "disabled", + StreamableToString(unit_test.reportable_disabled_test_count())); + OutputXmlAttribute(stream, kTestsuites, "errors", "0"); + OutputXmlAttribute( + stream, kTestsuites, "timestamp", + FormatEpochTimeInMillisAsIso8601(unit_test.start_timestamp())); + OutputXmlAttribute(stream, kTestsuites, "time", + FormatTimeInMillisAsSeconds(unit_test.elapsed_time())); + if (GTEST_FLAG(shuffle)) { - fprintf(out, "random_seed=\"%d\" ", unit_test.random_seed()); + OutputXmlAttribute(stream, kTestsuites, "random_seed", + StreamableToString(unit_test.random_seed())); } - fprintf(out, "name=\"AllTests\">\n"); - for (int i = 0; i < unit_test.total_test_case_count(); ++i) - PrintXmlTestCase(out, *unit_test.GetTestCase(i)); - fprintf(out, "</testsuites>\n"); + + *stream << TestPropertiesAsXmlAttributes(unit_test.ad_hoc_test_result()); + + OutputXmlAttribute(stream, kTestsuites, "name", "AllTests"); + *stream << ">\n"; + + for (int i = 0; i < unit_test.total_test_case_count(); ++i) { + if (unit_test.GetTestCase(i)->reportable_test_count() > 0) + PrintXmlTestCase(stream, *unit_test.GetTestCase(i)); + } + *stream << "</" << kTestsuites << ">\n"; } // Produces a string representing the test properties in a result as space // delimited XML attributes based on the property key="value" pairs. -String XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes( +std::string XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes( const TestResult& result) { Message attributes; for (int i = 0; i < result.test_property_count(); ++i) { @@ -4630,112 +4895,6 @@ String XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes( #if GTEST_CAN_STREAM_RESULTS_ -// Streams test results to the given port on the given host machine. -class StreamingListener : public EmptyTestEventListener { - public: - // Escapes '=', '&', '%', and '\n' characters in str as "%xx". - static string UrlEncode(const char* str); - - StreamingListener(const string& host, const string& port) - : sockfd_(-1), host_name_(host), port_num_(port) { - MakeConnection(); - Send("gtest_streaming_protocol_version=1.0\n"); - } - - virtual ~StreamingListener() { - if (sockfd_ != -1) - CloseConnection(); - } - - void OnTestProgramStart(const UnitTest& /* unit_test */) { - Send("event=TestProgramStart\n"); - } - - void OnTestProgramEnd(const UnitTest& unit_test) { - // Note that Google Test current only report elapsed time for each - // test iteration, not for the entire test program. - Send(String::Format("event=TestProgramEnd&passed=%d\n", - unit_test.Passed())); - - // Notify the streaming server to stop. - CloseConnection(); - } - - void OnTestIterationStart(const UnitTest& /* unit_test */, int iteration) { - Send(String::Format("event=TestIterationStart&iteration=%d\n", - iteration)); - } - - void OnTestIterationEnd(const UnitTest& unit_test, int /* iteration */) { - Send(String::Format("event=TestIterationEnd&passed=%d&elapsed_time=%sms\n", - unit_test.Passed(), - StreamableToString(unit_test.elapsed_time()).c_str())); - } - - void OnTestCaseStart(const TestCase& test_case) { - Send(String::Format("event=TestCaseStart&name=%s\n", test_case.name())); - } - - void OnTestCaseEnd(const TestCase& test_case) { - Send(String::Format("event=TestCaseEnd&passed=%d&elapsed_time=%sms\n", - test_case.Passed(), - StreamableToString(test_case.elapsed_time()).c_str())); - } - - void OnTestStart(const TestInfo& test_info) { - Send(String::Format("event=TestStart&name=%s\n", test_info.name())); - } - - void OnTestEnd(const TestInfo& test_info) { - Send(String::Format( - "event=TestEnd&passed=%d&elapsed_time=%sms\n", - (test_info.result())->Passed(), - StreamableToString((test_info.result())->elapsed_time()).c_str())); - } - - void OnTestPartResult(const TestPartResult& test_part_result) { - const char* file_name = test_part_result.file_name(); - if (file_name == NULL) - file_name = ""; - Send(String::Format("event=TestPartResult&file=%s&line=%d&message=", - UrlEncode(file_name).c_str(), - test_part_result.line_number())); - Send(UrlEncode(test_part_result.message()) + "\n"); - } - - private: - // Creates a client socket and connects to the server. - void MakeConnection(); - - // Closes the socket. - void CloseConnection() { - GTEST_CHECK_(sockfd_ != -1) - << "CloseConnection() can be called only when there is a connection."; - - close(sockfd_); - sockfd_ = -1; - } - - // Sends a string to the socket. - void Send(const string& message) { - GTEST_CHECK_(sockfd_ != -1) - << "Send() can be called only when there is a connection."; - - const int len = static_cast<int>(message.length()); - if (write(sockfd_, message.c_str(), len) != len) { - GTEST_LOG_(WARNING) - << "stream_result_to: failed to stream to " - << host_name_ << ":" << port_num_; - } - } - - int sockfd_; // socket file descriptor - const string host_name_; - const string port_num_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(StreamingListener); -}; // class StreamingListener - // Checks if str contains '=', '&', '%' or '\n' characters. If yes, // replaces them by "%xx" where xx is their hexadecimal value. For // example, replaces "=" with "%3D". This algorithm is O(strlen(str)) @@ -4750,7 +4909,7 @@ string StreamingListener::UrlEncode(const char* str) { case '=': case '&': case '\n': - result.append(String::Format("%%%02x", static_cast<unsigned char>(ch))); + result.append("%" + String::FormatByte(static_cast<unsigned char>(ch))); break; default: result.push_back(ch); @@ -4760,7 +4919,7 @@ string StreamingListener::UrlEncode(const char* str) { return result; } -void StreamingListener::MakeConnection() { +void StreamingListener::SocketWriter::MakeConnection() { GTEST_CHECK_(sockfd_ == -1) << "MakeConnection() can't be called when there is already a connection."; @@ -4808,8 +4967,8 @@ void StreamingListener::MakeConnection() { // Pushes the given source file location and message onto a per-thread // trace stack maintained by Google Test. -// L < UnitTest::mutex_ -ScopedTrace::ScopedTrace(const char* file, int line, const Message& message) { +ScopedTrace::ScopedTrace(const char* file, int line, const Message& message) + GTEST_LOCK_EXCLUDED_(&UnitTest::mutex_) { TraceInfo trace; trace.file = file; trace.line = line; @@ -4819,35 +4978,64 @@ ScopedTrace::ScopedTrace(const char* file, int line, const Message& message) { } // Pops the info pushed by the c'tor. -// L < UnitTest::mutex_ -ScopedTrace::~ScopedTrace() { +ScopedTrace::~ScopedTrace() + GTEST_LOCK_EXCLUDED_(&UnitTest::mutex_) { UnitTest::GetInstance()->PopGTestTrace(); } // class OsStackTraceGetter -// Returns the current OS stack trace as a String. Parameters: +// Returns the current OS stack trace as an std::string. Parameters: // // max_depth - the maximum number of stack frames to be included // in the trace. // skip_count - the number of top frames to be skipped; doesn't count // against max_depth. // -// L < mutex_ -// We use "L < mutex_" to denote that the function may acquire mutex_. -String OsStackTraceGetter::CurrentStackTrace(int, int) { - return String(""); +string OsStackTraceGetter::CurrentStackTrace(int /* max_depth */, + int /* skip_count */) + GTEST_LOCK_EXCLUDED_(mutex_) { + return ""; } -// L < mutex_ -void OsStackTraceGetter::UponLeavingGTest() { +void OsStackTraceGetter::UponLeavingGTest() + GTEST_LOCK_EXCLUDED_(mutex_) { } const char* const OsStackTraceGetter::kElidedFramesMarker = "... " GTEST_NAME_ " internal frames ..."; +// A helper class that creates the premature-exit file in its +// constructor and deletes the file in its destructor. +class ScopedPrematureExitFile { + public: + explicit ScopedPrematureExitFile(const char* premature_exit_filepath) + : premature_exit_filepath_(premature_exit_filepath) { + // If a path to the premature-exit file is specified... + if (premature_exit_filepath != NULL && *premature_exit_filepath != '\0') { + // create the file with a single "0" character in it. I/O + // errors are ignored as there's nothing better we can do and we + // don't want to fail the test because of this. + FILE* pfile = posix::FOpen(premature_exit_filepath, "w"); + fwrite("0", 1, 1, pfile); + fclose(pfile); + } + } + + ~ScopedPrematureExitFile() { + if (premature_exit_filepath_ != NULL && *premature_exit_filepath_ != '\0') { + remove(premature_exit_filepath_); + } + } + + private: + const char* const premature_exit_filepath_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedPrematureExitFile); +}; + } // namespace internal // class TestEventListeners @@ -4934,7 +5122,7 @@ void TestEventListeners::SuppressEventForwarding() { // We don't protect this under mutex_ as a user is not supposed to // call this before main() starts, from which point on the return // value will never change. -UnitTest * UnitTest::GetInstance() { +UnitTest* UnitTest::GetInstance() { // When compiled with MSVC 7.1 in optimized mode, destroying the // UnitTest object upon exiting the program messes up the exit code, // causing successful tests to appear failed. We have to use a @@ -4984,17 +5172,33 @@ int UnitTest::successful_test_count() const { // Gets the number of failed tests. int UnitTest::failed_test_count() const { return impl()->failed_test_count(); } +// Gets the number of disabled tests that will be reported in the XML report. +int UnitTest::reportable_disabled_test_count() const { + return impl()->reportable_disabled_test_count(); +} + // Gets the number of disabled tests. int UnitTest::disabled_test_count() const { return impl()->disabled_test_count(); } +// Gets the number of tests to be printed in the XML report. +int UnitTest::reportable_test_count() const { + return impl()->reportable_test_count(); +} + // Gets the number of all tests. int UnitTest::total_test_count() const { return impl()->total_test_count(); } // Gets the number of tests that should run. int UnitTest::test_to_run_count() const { return impl()->test_to_run_count(); } +// Gets the time of the test program start, in ms from the start of the +// UNIX epoch. +internal::TimeInMillis UnitTest::start_timestamp() const { + return impl()->start_timestamp(); +} + // Gets the elapsed time, in milliseconds. internal::TimeInMillis UnitTest::elapsed_time() const { return impl()->elapsed_time(); @@ -5013,6 +5217,12 @@ const TestCase* UnitTest::GetTestCase(int i) const { return impl()->GetTestCase(i); } +// Returns the TestResult containing information on test failures and +// properties logged outside of individual test cases. +const TestResult& UnitTest::ad_hoc_test_result() const { + return *impl()->ad_hoc_test_result(); +} + // Gets the i-th test case among all the test cases. i can range from 0 to // total_test_case_count() - 1. If i is not in that range, returns NULL. TestCase* UnitTest::GetMutableTestCase(int i) { @@ -5048,12 +5258,12 @@ Environment* UnitTest::AddEnvironment(Environment* env) { // assertion macros (e.g. ASSERT_TRUE, EXPECT_EQ, etc) eventually call // this to report their results. The user code should use the // assertion macros instead of calling this directly. -// L < mutex_ -void UnitTest::AddTestPartResult(TestPartResult::Type result_type, - const char* file_name, - int line_number, - const internal::String& message, - const internal::String& os_stack_trace) { +void UnitTest::AddTestPartResult( + TestPartResult::Type result_type, + const char* file_name, + int line_number, + const std::string& message, + const std::string& os_stack_trace) GTEST_LOCK_EXCLUDED_(mutex_) { Message msg; msg << message; @@ -5100,7 +5310,7 @@ void UnitTest::AddTestPartResult(TestPartResult::Type result_type, #endif // GTEST_OS_WINDOWS } else if (GTEST_FLAG(throw_on_failure)) { #if GTEST_HAS_EXCEPTIONS - throw GoogleTestFailureException(result); + throw internal::GoogleTestFailureException(result); #else // We cannot call abort() as it generates a pop-up in debug mode // that cannot be suppressed in VC 7.1 or below. @@ -5110,12 +5320,14 @@ void UnitTest::AddTestPartResult(TestPartResult::Type result_type, } } -// Creates and adds a property to the current TestResult. If a property matching -// the supplied value already exists, updates its value instead. -void UnitTest::RecordPropertyForCurrentTest(const char* key, - const char* value) { - const TestProperty test_property(key, value); - impl_->current_test_result()->RecordProperty(test_property); +// Adds a TestProperty to the current TestResult object when invoked from +// inside a test, to current TestCase's ad_hoc_test_result_ when invoked +// from SetUpTestCase or TearDownTestCase, or to the global property set +// when invoked elsewhere. If the result already contains a property with +// the same key, the value will be updated. +void UnitTest::RecordProperty(const std::string& key, + const std::string& value) { + impl_->RecordProperty(TestProperty(key, value)); } // Runs all tests in this UnitTest object and prints the result. @@ -5124,20 +5336,44 @@ void UnitTest::RecordPropertyForCurrentTest(const char* key, // We don't protect this under mutex_, as we only support calling it // from the main thread. int UnitTest::Run() { + const bool in_death_test_child_process = + internal::GTEST_FLAG(internal_run_death_test).length() > 0; + + // Google Test implements this protocol for catching that a test + // program exits before returning control to Google Test: + // + // 1. Upon start, Google Test creates a file whose absolute path + // is specified by the environment variable + // TEST_PREMATURE_EXIT_FILE. + // 2. When Google Test has finished its work, it deletes the file. + // + // This allows a test runner to set TEST_PREMATURE_EXIT_FILE before + // running a Google-Test-based test program and check the existence + // of the file at the end of the test execution to see if it has + // exited prematurely. + + // If we are in the child process of a death test, don't + // create/delete the premature exit file, as doing so is unnecessary + // and will confuse the parent process. Otherwise, create/delete + // the file upon entering/leaving this function. If the program + // somehow exits before this function has a chance to return, the + // premature-exit file will be left undeleted, causing a test runner + // that understands the premature-exit-file protocol to report the + // test as having failed. + const internal::ScopedPrematureExitFile premature_exit_file( + in_death_test_child_process ? + NULL : internal::posix::GetEnv("TEST_PREMATURE_EXIT_FILE")); + // Captures the value of GTEST_FLAG(catch_exceptions). This value will be // used for the duration of the program. impl()->set_catch_exceptions(GTEST_FLAG(catch_exceptions)); #if GTEST_HAS_SEH - const bool in_death_test_child_process = - internal::GTEST_FLAG(internal_run_death_test).length() > 0; - // Either the user wants Google Test to catch exceptions thrown by the // tests or this is executing in the context of death test child // process. In either case the user does not want to see pop-up dialogs // about crashes - they are expected. if (impl()->catch_exceptions() || in_death_test_child_process) { - # if !GTEST_OS_WINDOWS_MOBILE // SetErrorMode doesn't exist on CE. SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOALIGNMENTFAULTEXCEPT | @@ -5168,7 +5404,6 @@ int UnitTest::Run() { 0x0, // Clear the following flags: _WRITE_ABORT_MSG | _CALL_REPORTFAULT); // pop-up window, core dump. # endif - } #endif // GTEST_HAS_SEH @@ -5186,16 +5421,16 @@ const char* UnitTest::original_working_dir() const { // Returns the TestCase object for the test that's currently running, // or NULL if no test is running. -// L < mutex_ -const TestCase* UnitTest::current_test_case() const { +const TestCase* UnitTest::current_test_case() const + GTEST_LOCK_EXCLUDED_(mutex_) { internal::MutexLock lock(&mutex_); return impl_->current_test_case(); } // Returns the TestInfo object for the test that's currently running, // or NULL if no test is running. -// L < mutex_ -const TestInfo* UnitTest::current_test_info() const { +const TestInfo* UnitTest::current_test_info() const + GTEST_LOCK_EXCLUDED_(mutex_) { internal::MutexLock lock(&mutex_); return impl_->current_test_info(); } @@ -5206,9 +5441,9 @@ int UnitTest::random_seed() const { return impl_->random_seed(); } #if GTEST_HAS_PARAM_TEST // Returns ParameterizedTestCaseRegistry object used to keep track of // value-parameterized tests and instantiate and register them. -// L < mutex_ internal::ParameterizedTestCaseRegistry& - UnitTest::parameterized_test_registry() { + UnitTest::parameterized_test_registry() + GTEST_LOCK_EXCLUDED_(mutex_) { return impl_->parameterized_test_registry(); } #endif // GTEST_HAS_PARAM_TEST @@ -5225,15 +5460,15 @@ UnitTest::~UnitTest() { // Pushes a trace defined by SCOPED_TRACE() on to the per-thread // Google Test trace stack. -// L < mutex_ -void UnitTest::PushGTestTrace(const internal::TraceInfo& trace) { +void UnitTest::PushGTestTrace(const internal::TraceInfo& trace) + GTEST_LOCK_EXCLUDED_(mutex_) { internal::MutexLock lock(&mutex_); impl_->gtest_trace_stack().push_back(trace); } // Pops a trace from the per-thread Google Test trace stack. -// L < mutex_ -void UnitTest::PopGTestTrace() { +void UnitTest::PopGTestTrace() + GTEST_LOCK_EXCLUDED_(mutex_) { internal::MutexLock lock(&mutex_); impl_->gtest_trace_stack().pop_back(); } @@ -5269,9 +5504,9 @@ UnitTestImpl::UnitTestImpl(UnitTest* parent) post_flag_parse_init_performed_(false), random_seed_(0), // Will be overridden by the flag before first use. random_(0), // Will be reseeded before first use. + start_timestamp_(0), elapsed_time_(0), #if GTEST_HAS_DEATH_TEST - internal_run_death_test_flag_(NULL), death_test_factory_(new DefaultDeathTestFactory), #endif // Will be overridden by the flag before first use. @@ -5289,6 +5524,28 @@ UnitTestImpl::~UnitTestImpl() { delete os_stack_trace_getter_; } +// Adds a TestProperty to the current TestResult object when invoked in a +// context of a test, to current test case's ad_hoc_test_result when invoke +// from SetUpTestCase/TearDownTestCase, or to the global property set +// otherwise. If the result already contains a property with the same key, +// the value will be updated. +void UnitTestImpl::RecordProperty(const TestProperty& test_property) { + std::string xml_element; + TestResult* test_result; // TestResult appropriate for property recording. + + if (current_test_info_ != NULL) { + xml_element = "testcase"; + test_result = &(current_test_info_->result_); + } else if (current_test_case_ != NULL) { + xml_element = "testsuite"; + test_result = &(current_test_case_->ad_hoc_test_result_); + } else { + xml_element = "testsuites"; + test_result = &ad_hoc_test_result_; + } + test_result->RecordProperty(xml_element, test_property); +} + #if GTEST_HAS_DEATH_TEST // Disables event forwarding if the control is currently in a death test // subprocess. Must not be called before InitGoogleTest. @@ -5301,7 +5558,7 @@ void UnitTestImpl::SuppressTestEventsIfInSubprocess() { // Initializes event listeners performing XML output as specified by // UnitTestOptions. Must not be called before InitGoogleTest. void UnitTestImpl::ConfigureXmlOutput() { - const String& output_format = UnitTestOptions::GetOutputFormat(); + const std::string& output_format = UnitTestOptions::GetOutputFormat(); if (output_format == "xml") { listeners()->SetDefaultXmlGenerator(new XmlUnitTestResultPrinter( UnitTestOptions::GetAbsolutePathToOutputFile().c_str())); @@ -5313,13 +5570,13 @@ void UnitTestImpl::ConfigureXmlOutput() { } #if GTEST_CAN_STREAM_RESULTS_ -// Initializes event listeners for streaming test results in String form. +// Initializes event listeners for streaming test results in string form. // Must not be called before InitGoogleTest. void UnitTestImpl::ConfigureStreamingOutput() { - const string& target = GTEST_FLAG(stream_result_to); + const std::string& target = GTEST_FLAG(stream_result_to); if (!target.empty()) { const size_t pos = target.find(':'); - if (pos != string::npos) { + if (pos != std::string::npos) { listeners()->Append(new StreamingListener(target.substr(0, pos), target.substr(pos+1))); } else { @@ -5373,7 +5630,7 @@ void UnitTestImpl::PostFlagParsingInit() { class TestCaseNameIs { public: // Constructor. - explicit TestCaseNameIs(const String& name) + explicit TestCaseNameIs(const std::string& name) : name_(name) {} // Returns true iff the name of test_case matches name_. @@ -5382,7 +5639,7 @@ class TestCaseNameIs { } private: - String name_; + std::string name_; }; // Finds and returns a TestCase with the given name. If one doesn't @@ -5414,7 +5671,7 @@ TestCase* UnitTestImpl::GetTestCase(const char* test_case_name, new TestCase(test_case_name, type_param, set_up_tc, tear_down_tc); // Is this a death test case? - if (internal::UnitTestOptions::MatchesFilter(String(test_case_name), + if (internal::UnitTestOptions::MatchesFilter(test_case_name, kDeathTestCaseFilter)) { // Yes. Inserts the test case after the last death test case // defined so far. This only works when the test cases haven't @@ -5500,6 +5757,7 @@ bool UnitTestImpl::RunAllTests() { TestEventListener* repeater = listeners()->repeater(); + start_timestamp_ = GetTimeInMillis(); repeater->OnTestProgramStart(*parent_); // How many times to repeat the tests? We don't want to repeat them @@ -5692,12 +5950,12 @@ int UnitTestImpl::FilterTests(ReactionToSharding shard_tests) { int num_selected_tests = 0; for (size_t i = 0; i < test_cases_.size(); i++) { TestCase* const test_case = test_cases_[i]; - const String &test_case_name = test_case->name(); + const std::string &test_case_name = test_case->name(); test_case->set_should_run(false); for (size_t j = 0; j < test_case->test_info_list().size(); j++) { TestInfo* const test_info = test_case->test_info_list()[j]; - const String test_name(test_info->name()); + const std::string test_name(test_info->name()); // A test is disabled if test case name or test name matches // kDisableTestFilter. const bool is_disabled = @@ -5731,8 +5989,33 @@ int UnitTestImpl::FilterTests(ReactionToSharding shard_tests) { return num_selected_tests; } +// Prints the given C-string on a single line by replacing all '\n' +// characters with string "\\n". If the output takes more than +// max_length characters, only prints the first max_length characters +// and "...". +static void PrintOnOneLine(const char* str, int max_length) { + if (str != NULL) { + for (int i = 0; *str != '\0'; ++str) { + if (i >= max_length) { + printf("..."); + break; + } + if (*str == '\n') { + printf("\\n"); + i += 2; + } else { + printf("%c", *str); + ++i; + } + } + } +} + // Prints the names of the tests matching the user-specified filter flag. void UnitTestImpl::ListTestsMatchingFilter() { + // Print at most this many characters for each type/value parameter. + const int kMaxParamLength = 250; + for (size_t i = 0; i < test_cases_.size(); i++) { const TestCase* const test_case = test_cases_[i]; bool printed_test_case_name = false; @@ -5743,9 +6026,23 @@ void UnitTestImpl::ListTestsMatchingFilter() { if (test_info->matches_filter_) { if (!printed_test_case_name) { printed_test_case_name = true; - printf("%s.\n", test_case->name()); + printf("%s.", test_case->name()); + if (test_case->type_param() != NULL) { + printf(" # %s = ", kTypeParamLabel); + // We print the type parameter on a single line to make + // the output easy to parse by a program. + PrintOnOneLine(test_case->type_param(), kMaxParamLength); + } + printf("\n"); + } + printf(" %s", test_info->name()); + if (test_info->value_param() != NULL) { + printf(" # %s = ", kValueParamLabel); + // We print the value parameter on a single line to make the + // output easy to parse by a program. + PrintOnOneLine(test_info->value_param(), kMaxParamLength); } - printf(" %s\n", test_info->name()); + printf("\n"); } } } @@ -5809,7 +6106,7 @@ void UnitTestImpl::UnshuffleTests() { } } -// Returns the current OS stack trace as a String. +// Returns the current OS stack trace as an std::string. // // The maximum number of stack frames to be included is specified by // the gtest_stack_trace_depth flag. The skip_count parameter @@ -5819,8 +6116,8 @@ void UnitTestImpl::UnshuffleTests() { // For example, if Foo() calls Bar(), which in turn calls // GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in // the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't. -String GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/, - int skip_count) { +std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/, + int skip_count) { // We pass skip_count + 1 to skip this wrapper function in addition // to what the user really wants to skip. return GetUnitTestImpl()->CurrentOsStackTraceExceptTop(skip_count + 1); @@ -5868,7 +6165,7 @@ const char* ParseFlagValue(const char* str, if (str == NULL || flag == NULL) return NULL; // The flag must start with "--" followed by GTEST_FLAG_PREFIX_. - const String flag_str = String::Format("--%s%s", GTEST_FLAG_PREFIX_, flag); + const std::string flag_str = std::string("--") + GTEST_FLAG_PREFIX_ + flag; const size_t flag_len = flag_str.length(); if (strncmp(str, flag_str.c_str(), flag_len) != 0) return NULL; @@ -5933,7 +6230,7 @@ bool ParseInt32Flag(const char* str, const char* flag, Int32* value) { // // On success, stores the value of the flag in *value, and returns // true. On failure, returns false without changing *value. -bool ParseStringFlag(const char* str, const char* flag, String* value) { +bool ParseStringFlag(const char* str, const char* flag, std::string* value) { // Gets the value of the flag as a string. const char* const value_str = ParseFlagValue(str, flag, false); @@ -5985,7 +6282,7 @@ static void PrintColorEncoded(const char* str) { return; } - ColoredPrintf(color, "%s", String(str, p - str).c_str()); + ColoredPrintf(color, "%s", std::string(str, p).c_str()); const char ch = p[1]; str = p + 2; @@ -6075,7 +6372,7 @@ static const char kColorEncodedHelpMessage[] = template <typename CharType> void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) { for (int i = 1; i < *argc; i++) { - const String arg_string = StreamableToString(argv[i]); + const std::string arg_string = StreamableToString(argv[i]); const char* const arg = arg_string.c_str(); using internal::ParseBoolFlag; @@ -6243,6 +6540,11 @@ void InitGoogleTest(int* argc, wchar_t** argv) { # include <errno.h> # include <fcntl.h> # include <limits.h> + +# if GTEST_OS_LINUX +# include <signal.h> +# endif // GTEST_OS_LINUX + # include <stdarg.h> # if GTEST_OS_WINDOWS @@ -6252,6 +6554,10 @@ void InitGoogleTest(int* argc, wchar_t** argv) { # include <sys/wait.h> # endif // GTEST_OS_WINDOWS +# if GTEST_OS_QNX +# include <spawn.h> +# endif // GTEST_OS_QNX + #endif // GTEST_HAS_DEATH_TEST @@ -6297,13 +6603,42 @@ GTEST_DEFINE_string_( "Indicates the file, line number, temporal index of " "the single death test to run, and a file descriptor to " "which a success code may be sent, all separated by " - "colons. This flag is specified if and only if the current " + "the '|' characters. This flag is specified if and only if the current " "process is a sub-process launched for running a thread-safe " "death test. FOR INTERNAL USE ONLY."); } // namespace internal #if GTEST_HAS_DEATH_TEST +namespace internal { + +// Valid only for fast death tests. Indicates the code is running in the +// child process of a fast style death test. +static bool g_in_fast_death_test_child = false; + +// Returns a Boolean value indicating whether the caller is currently +// executing in the context of the death test child process. Tools such as +// Valgrind heap checkers may need this to modify their behavior in death +// tests. IMPORTANT: This is an internal utility. Using it may break the +// implementation of death tests. User code MUST NOT use it. +bool InDeathTestChild() { +# if GTEST_OS_WINDOWS + + // On Windows, death tests are thread-safe regardless of the value of the + // death_test_style flag. + return !GTEST_FLAG(internal_run_death_test).empty(); + +# else + + if (GTEST_FLAG(death_test_style) == "threadsafe") + return !GTEST_FLAG(internal_run_death_test).empty(); + else + return g_in_fast_death_test_child; +#endif +} + +} // namespace internal + // ExitedWithCode constructor. ExitedWithCode::ExitedWithCode(int exit_code) : exit_code_(exit_code) { } @@ -6338,7 +6673,7 @@ namespace internal { // Generates a textual description of a given exit code, in the format // specified by wait(2). -static String ExitSummary(int exit_code) { +static std::string ExitSummary(int exit_code) { Message m; # if GTEST_OS_WINDOWS @@ -6373,7 +6708,7 @@ bool ExitedUnsuccessfully(int exit_status) { // one thread running, or cannot determine the number of threads, prior // to executing the given statement. It is the responsibility of the // caller not to pass a thread_count of 1. -static String DeathTestThreadWarning(size_t thread_count) { +static std::string DeathTestThreadWarning(size_t thread_count) { Message msg; msg << "Death tests use fork(), which is unsafe particularly" << " in a threaded context. For this test, " << GTEST_NAME_ << " "; @@ -6407,7 +6742,7 @@ enum DeathTestOutcome { IN_PROGRESS, DIED, LIVED, RETURNED, THREW }; // message is propagated back to the parent process. Otherwise, the // message is simply printed to stderr. In either case, the program // then exits with status 1. -void DeathTestAbort(const String& message) { +void DeathTestAbort(const std::string& message) { // On a POSIX system, this function may be called from a threadsafe-style // death test child process, which operates on a very small stack. Use // the heap for any additional non-minuscule memory requirements. @@ -6431,9 +6766,10 @@ void DeathTestAbort(const String& message) { # define GTEST_DEATH_TEST_CHECK_(expression) \ do { \ if (!::testing::internal::IsTrue(expression)) { \ - DeathTestAbort(::testing::internal::String::Format( \ - "CHECK failed: File %s, line %d: %s", \ - __FILE__, __LINE__, #expression)); \ + DeathTestAbort( \ + ::std::string("CHECK failed: File ") + __FILE__ + ", line " \ + + ::testing::internal::StreamableToString(__LINE__) + ": " \ + + #expression); \ } \ } while (::testing::internal::AlwaysFalse()) @@ -6451,15 +6787,16 @@ void DeathTestAbort(const String& message) { gtest_retval = (expression); \ } while (gtest_retval == -1 && errno == EINTR); \ if (gtest_retval == -1) { \ - DeathTestAbort(::testing::internal::String::Format( \ - "CHECK failed: File %s, line %d: %s != -1", \ - __FILE__, __LINE__, #expression)); \ + DeathTestAbort( \ + ::std::string("CHECK failed: File ") + __FILE__ + ", line " \ + + ::testing::internal::StreamableToString(__LINE__) + ": " \ + + #expression + " != -1"); \ } \ } while (::testing::internal::AlwaysFalse()) // Returns the message describing the last system error in errno. -String GetLastErrnoDescription() { - return String(errno == 0 ? "" : posix::StrError(errno)); +std::string GetLastErrnoDescription() { + return errno == 0 ? "" : posix::StrError(errno); } // This is called from a death test parent process to read a failure @@ -6509,11 +6846,11 @@ const char* DeathTest::LastMessage() { return last_death_test_message_.c_str(); } -void DeathTest::set_last_death_test_message(const String& message) { +void DeathTest::set_last_death_test_message(const std::string& message) { last_death_test_message_ = message; } -String DeathTest::last_death_test_message_; +std::string DeathTest::last_death_test_message_; // Provides cross platform implementation for some death functionality. class DeathTestImpl : public DeathTest { @@ -6688,7 +7025,7 @@ bool DeathTestImpl::Passed(bool status_ok) { if (!spawned()) return false; - const String error_message = GetCapturedStderr(); + const std::string error_message = GetCapturedStderr(); bool success = false; Message buffer; @@ -6870,22 +7207,19 @@ DeathTest::TestRole WindowsDeathTest::AssumeRole() { FALSE, // The initial state is non-signalled. NULL)); // The even is unnamed. GTEST_DEATH_TEST_CHECK_(event_handle_.Get() != NULL); - const String filter_flag = String::Format("--%s%s=%s.%s", - GTEST_FLAG_PREFIX_, kFilterFlag, - info->test_case_name(), - info->name()); - const String internal_flag = String::Format( - "--%s%s=%s|%d|%d|%u|%Iu|%Iu", - GTEST_FLAG_PREFIX_, - kInternalRunDeathTestFlag, - file_, line_, - death_test_index, - static_cast<unsigned int>(::GetCurrentProcessId()), - // size_t has the same with as pointers on both 32-bit and 64-bit + const std::string filter_flag = + std::string("--") + GTEST_FLAG_PREFIX_ + kFilterFlag + "=" + + info->test_case_name() + "." + info->name(); + const std::string internal_flag = + std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag + + "=" + file_ + "|" + StreamableToString(line_) + "|" + + StreamableToString(death_test_index) + "|" + + StreamableToString(static_cast<unsigned int>(::GetCurrentProcessId())) + + // size_t has the same width as pointers on both 32-bit and 64-bit // Windows platforms. // See http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx. - reinterpret_cast<size_t>(write_handle), - reinterpret_cast<size_t>(event_handle_.Get())); + "|" + StreamableToString(reinterpret_cast<size_t>(write_handle)) + + "|" + StreamableToString(reinterpret_cast<size_t>(event_handle_.Get())); char executable_path[_MAX_PATH + 1]; // NOLINT GTEST_DEATH_TEST_CHECK_( @@ -6893,10 +7227,9 @@ DeathTest::TestRole WindowsDeathTest::AssumeRole() { executable_path, _MAX_PATH)); - String command_line = String::Format("%s %s \"%s\"", - ::GetCommandLineA(), - filter_flag.c_str(), - internal_flag.c_str()); + std::string command_line = + std::string(::GetCommandLineA()) + " " + filter_flag + " \"" + + internal_flag + "\""; DeathTest::set_last_death_test_message(""); @@ -7013,6 +7346,7 @@ DeathTest::TestRole NoExecDeathTest::AssumeRole() { // Event forwarding to the listeners of event listener API mush be shut // down in death test subprocesses. GetUnitTestImpl()->listeners()->SuppressEventForwarding(); + g_in_fast_death_test_child = true; return EXECUTE_TEST; } else { GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1])); @@ -7032,6 +7366,11 @@ class ExecDeathTest : public ForkingDeathTest { ForkingDeathTest(a_statement, a_regex), file_(file), line_(line) { } virtual TestRole AssumeRole(); private: + static ::std::vector<testing::internal::string> + GetArgvsForDeathTestChildProcess() { + ::std::vector<testing::internal::string> args = GetInjectableArgvs(); + return args; + } // The name of the file in which the death test is located. const char* const file_; // The line number on which the death test is located. @@ -7066,6 +7405,7 @@ class Arguments { char* const* Argv() { return &args_[0]; } + private: std::vector<char*> args_; }; @@ -7091,6 +7431,7 @@ extern "C" char** environ; inline char** GetEnviron() { return environ; } # endif // GTEST_OS_MAC +# if !GTEST_OS_QNX // The main function for a threadsafe-style death test child process. // This function is called in a clone()-ed process and thus must avoid // any potentially unsafe operations like malloc or libc functions. @@ -7105,9 +7446,8 @@ static int ExecDeathTestChildMain(void* child_arg) { UnitTest::GetInstance()->original_working_dir(); // We can safely call chdir() as it's a direct system call. if (chdir(original_dir) != 0) { - DeathTestAbort(String::Format("chdir(\"%s\") failed: %s", - original_dir, - GetLastErrnoDescription().c_str())); + DeathTestAbort(std::string("chdir(\"") + original_dir + "\") failed: " + + GetLastErrnoDescription()); return EXIT_FAILURE; } @@ -7117,12 +7457,12 @@ static int ExecDeathTestChildMain(void* child_arg) { // invoke the test program via a valid path that contains at least // one path separator. execve(args->argv[0], args->argv, GetEnviron()); - DeathTestAbort(String::Format("execve(%s, ...) in %s failed: %s", - args->argv[0], - original_dir, - GetLastErrnoDescription().c_str())); + DeathTestAbort(std::string("execve(") + args->argv[0] + ", ...) in " + + original_dir + " failed: " + + GetLastErrnoDescription()); return EXIT_FAILURE; } +# endif // !GTEST_OS_QNX // Two utility routines that together determine the direction the stack // grows. @@ -7133,25 +7473,75 @@ static int ExecDeathTestChildMain(void* child_arg) { // GTEST_NO_INLINE_ is required to prevent GCC 4.6 from inlining // StackLowerThanAddress into StackGrowsDown, which then doesn't give // correct answer. -bool StackLowerThanAddress(const void* ptr) GTEST_NO_INLINE_; -bool StackLowerThanAddress(const void* ptr) { +void StackLowerThanAddress(const void* ptr, bool* result) GTEST_NO_INLINE_; +void StackLowerThanAddress(const void* ptr, bool* result) { int dummy; - return &dummy < ptr; + *result = (&dummy < ptr); } bool StackGrowsDown() { int dummy; - return StackLowerThanAddress(&dummy); + bool result; + StackLowerThanAddress(&dummy, &result); + return result; } -// A threadsafe implementation of fork(2) for threadsafe-style death tests -// that uses clone(2). It dies with an error message if anything goes -// wrong. -static pid_t ExecDeathTestFork(char* const* argv, int close_fd) { +// Spawns a child process with the same executable as the current process in +// a thread-safe manner and instructs it to run the death test. The +// implementation uses fork(2) + exec. On systems where clone(2) is +// available, it is used instead, being slightly more thread-safe. On QNX, +// fork supports only single-threaded environments, so this function uses +// spawn(2) there instead. The function dies with an error message if +// anything goes wrong. +static pid_t ExecDeathTestSpawnChild(char* const* argv, int close_fd) { ExecDeathTestArgs args = { argv, close_fd }; pid_t child_pid = -1; -# if GTEST_HAS_CLONE +# if GTEST_OS_QNX + // Obtains the current directory and sets it to be closed in the child + // process. + const int cwd_fd = open(".", O_RDONLY); + GTEST_DEATH_TEST_CHECK_(cwd_fd != -1); + GTEST_DEATH_TEST_CHECK_SYSCALL_(fcntl(cwd_fd, F_SETFD, FD_CLOEXEC)); + // We need to execute the test program in the same environment where + // it was originally invoked. Therefore we change to the original + // working directory first. + const char* const original_dir = + UnitTest::GetInstance()->original_working_dir(); + // We can safely call chdir() as it's a direct system call. + if (chdir(original_dir) != 0) { + DeathTestAbort(std::string("chdir(\"") + original_dir + "\") failed: " + + GetLastErrnoDescription()); + return EXIT_FAILURE; + } + + int fd_flags; + // Set close_fd to be closed after spawn. + GTEST_DEATH_TEST_CHECK_SYSCALL_(fd_flags = fcntl(close_fd, F_GETFD)); + GTEST_DEATH_TEST_CHECK_SYSCALL_(fcntl(close_fd, F_SETFD, + fd_flags | FD_CLOEXEC)); + struct inheritance inherit = {0}; + // spawn is a system call. + child_pid = spawn(args.argv[0], 0, NULL, &inherit, args.argv, GetEnviron()); + // Restores the current working directory. + GTEST_DEATH_TEST_CHECK_(fchdir(cwd_fd) != -1); + GTEST_DEATH_TEST_CHECK_SYSCALL_(close(cwd_fd)); + +# else // GTEST_OS_QNX +# if GTEST_OS_LINUX + // When a SIGPROF signal is received while fork() or clone() are executing, + // the process may hang. To avoid this, we ignore SIGPROF here and re-enable + // it after the call to fork()/clone() is complete. + struct sigaction saved_sigprof_action; + struct sigaction ignore_sigprof_action; + memset(&ignore_sigprof_action, 0, sizeof(ignore_sigprof_action)); + sigemptyset(&ignore_sigprof_action.sa_mask); + ignore_sigprof_action.sa_handler = SIG_IGN; + GTEST_DEATH_TEST_CHECK_SYSCALL_(sigaction( + SIGPROF, &ignore_sigprof_action, &saved_sigprof_action)); +# endif // GTEST_OS_LINUX + +# if GTEST_HAS_CLONE const bool use_fork = GTEST_FLAG(death_test_use_fork); if (!use_fork) { @@ -7161,21 +7551,37 @@ static pid_t ExecDeathTestFork(char* const* argv, int close_fd) { void* const stack = mmap(NULL, stack_size, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0); GTEST_DEATH_TEST_CHECK_(stack != MAP_FAILED); + + // Maximum stack alignment in bytes: For a downward-growing stack, this + // amount is subtracted from size of the stack space to get an address + // that is within the stack space and is aligned on all systems we care + // about. As far as I know there is no ABI with stack alignment greater + // than 64. We assume stack and stack_size already have alignment of + // kMaxStackAlignment. + const size_t kMaxStackAlignment = 64; void* const stack_top = - static_cast<char*>(stack) + (stack_grows_down ? stack_size : 0); + static_cast<char*>(stack) + + (stack_grows_down ? stack_size - kMaxStackAlignment : 0); + GTEST_DEATH_TEST_CHECK_(stack_size > kMaxStackAlignment && + reinterpret_cast<intptr_t>(stack_top) % kMaxStackAlignment == 0); child_pid = clone(&ExecDeathTestChildMain, stack_top, SIGCHLD, &args); GTEST_DEATH_TEST_CHECK_(munmap(stack, stack_size) != -1); } -# else +# else const bool use_fork = true; -# endif // GTEST_HAS_CLONE +# endif // GTEST_HAS_CLONE if (use_fork && (child_pid = fork()) == 0) { ExecDeathTestChildMain(&args); _exit(0); } +# endif // GTEST_OS_QNX +# if GTEST_OS_LINUX + GTEST_DEATH_TEST_CHECK_SYSCALL_( + sigaction(SIGPROF, &saved_sigprof_action, NULL)); +# endif // GTEST_OS_LINUX GTEST_DEATH_TEST_CHECK_(child_pid != -1); return child_pid; @@ -7203,16 +7609,16 @@ DeathTest::TestRole ExecDeathTest::AssumeRole() { // it be closed when the child process does an exec: GTEST_DEATH_TEST_CHECK_(fcntl(pipe_fd[1], F_SETFD, 0) != -1); - const String filter_flag = - String::Format("--%s%s=%s.%s", - GTEST_FLAG_PREFIX_, kFilterFlag, - info->test_case_name(), info->name()); - const String internal_flag = - String::Format("--%s%s=%s|%d|%d|%d", - GTEST_FLAG_PREFIX_, kInternalRunDeathTestFlag, - file_, line_, death_test_index, pipe_fd[1]); + const std::string filter_flag = + std::string("--") + GTEST_FLAG_PREFIX_ + kFilterFlag + "=" + + info->test_case_name() + "." + info->name(); + const std::string internal_flag = + std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag + "=" + + file_ + "|" + StreamableToString(line_) + "|" + + StreamableToString(death_test_index) + "|" + + StreamableToString(pipe_fd[1]); Arguments args; - args.AddArguments(GetArgvs()); + args.AddArguments(GetArgvsForDeathTestChildProcess()); args.AddArgument(filter_flag.c_str()); args.AddArgument(internal_flag.c_str()); @@ -7223,7 +7629,7 @@ DeathTest::TestRole ExecDeathTest::AssumeRole() { // is necessary. FlushInfoLog(); - const pid_t child_pid = ExecDeathTestFork(args.Argv(), pipe_fd[0]); + const pid_t child_pid = ExecDeathTestSpawnChild(args.Argv(), pipe_fd[0]); GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1])); set_child_pid(child_pid); set_read_fd(pipe_fd[0]); @@ -7249,9 +7655,10 @@ bool DefaultDeathTestFactory::Create(const char* statement, const RE* regex, if (flag != NULL) { if (death_test_index > flag->index()) { - DeathTest::set_last_death_test_message(String::Format( - "Death test count (%d) somehow exceeded expected maximum (%d)", - death_test_index, flag->index())); + DeathTest::set_last_death_test_message( + "Death test count (" + StreamableToString(death_test_index) + + ") somehow exceeded expected maximum (" + + StreamableToString(flag->index()) + ")"); return false; } @@ -7280,9 +7687,9 @@ bool DefaultDeathTestFactory::Create(const char* statement, const RE* regex, # endif // GTEST_OS_WINDOWS else { // NOLINT - this is more readable than unbalanced brackets inside #if. - DeathTest::set_last_death_test_message(String::Format( - "Unknown death test style \"%s\" encountered", - GTEST_FLAG(death_test_style).c_str())); + DeathTest::set_last_death_test_message( + "Unknown death test style \"" + GTEST_FLAG(death_test_style) + + "\" encountered"); return false; } @@ -7320,8 +7727,8 @@ int GetStatusFileDescriptor(unsigned int parent_process_id, FALSE, // Non-inheritable. parent_process_id)); if (parent_process_handle.Get() == INVALID_HANDLE_VALUE) { - DeathTestAbort(String::Format("Unable to open parent process %u", - parent_process_id)); + DeathTestAbort("Unable to open parent process " + + StreamableToString(parent_process_id)); } // TODO(vladl@google.com): Replace the following check with a @@ -7341,9 +7748,10 @@ int GetStatusFileDescriptor(unsigned int parent_process_id, // DUPLICATE_SAME_ACCESS is used. FALSE, // Request non-inheritable handler. DUPLICATE_SAME_ACCESS)) { - DeathTestAbort(String::Format( - "Unable to duplicate the pipe handle %Iu from the parent process %u", - write_handle_as_size_t, parent_process_id)); + DeathTestAbort("Unable to duplicate the pipe handle " + + StreamableToString(write_handle_as_size_t) + + " from the parent process " + + StreamableToString(parent_process_id)); } const HANDLE event_handle = reinterpret_cast<HANDLE>(event_handle_as_size_t); @@ -7354,17 +7762,18 @@ int GetStatusFileDescriptor(unsigned int parent_process_id, 0x0, FALSE, DUPLICATE_SAME_ACCESS)) { - DeathTestAbort(String::Format( - "Unable to duplicate the event handle %Iu from the parent process %u", - event_handle_as_size_t, parent_process_id)); + DeathTestAbort("Unable to duplicate the event handle " + + StreamableToString(event_handle_as_size_t) + + " from the parent process " + + StreamableToString(parent_process_id)); } const int write_fd = ::_open_osfhandle(reinterpret_cast<intptr_t>(dup_write_handle), O_APPEND); if (write_fd == -1) { - DeathTestAbort(String::Format( - "Unable to convert pipe handle %Iu to a file descriptor", - write_handle_as_size_t)); + DeathTestAbort("Unable to convert pipe handle " + + StreamableToString(write_handle_as_size_t) + + " to a file descriptor"); } // Signals the parent that the write end of the pipe has been acquired @@ -7401,9 +7810,8 @@ InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag() { || !ParseNaturalNumber(fields[3], &parent_process_id) || !ParseNaturalNumber(fields[4], &write_handle_as_size_t) || !ParseNaturalNumber(fields[5], &event_handle_as_size_t)) { - DeathTestAbort(String::Format( - "Bad --gtest_internal_run_death_test flag: %s", - GTEST_FLAG(internal_run_death_test).c_str())); + DeathTestAbort("Bad --gtest_internal_run_death_test flag: " + + GTEST_FLAG(internal_run_death_test)); } write_fd = GetStatusFileDescriptor(parent_process_id, write_handle_as_size_t, @@ -7414,9 +7822,8 @@ InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag() { || !ParseNaturalNumber(fields[1], &line) || !ParseNaturalNumber(fields[2], &index) || !ParseNaturalNumber(fields[3], &write_fd)) { - DeathTestAbort(String::Format( - "Bad --gtest_internal_run_death_test flag: %s", - GTEST_FLAG(internal_run_death_test).c_str())); + DeathTestAbort("Bad --gtest_internal_run_death_test flag: " + + GTEST_FLAG(internal_run_death_test)); } # endif // GTEST_OS_WINDOWS @@ -7468,8 +7875,8 @@ InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag() { #elif GTEST_OS_WINDOWS # include <direct.h> # include <io.h> -#elif GTEST_OS_SYMBIAN || GTEST_OS_NACL -// Symbian OpenC and NaCl have PATH_MAX in sys/syslimits.h +#elif GTEST_OS_SYMBIAN +// Symbian OpenC has PATH_MAX in sys/syslimits.h # include <sys/syslimits.h> #else # include <limits.h> @@ -7544,9 +7951,10 @@ FilePath FilePath::GetCurrentDir() { // FilePath("dir/file"). If a case-insensitive extension is not // found, returns a copy of the original FilePath. FilePath FilePath::RemoveExtension(const char* extension) const { - String dot_extension(String::Format(".%s", extension)); - if (pathname_.EndsWithCaseInsensitive(dot_extension.c_str())) { - return FilePath(String(pathname_.c_str(), pathname_.length() - 4)); + const std::string dot_extension = std::string(".") + extension; + if (String::EndsWithCaseInsensitive(pathname_, dot_extension)) { + return FilePath(pathname_.substr( + 0, pathname_.length() - dot_extension.length())); } return *this; } @@ -7575,7 +7983,7 @@ const char* FilePath::FindLastPathSeparator() const { // On Windows platform, '\' is the path separator, otherwise it is '/'. FilePath FilePath::RemoveDirectoryName() const { const char* const last_sep = FindLastPathSeparator(); - return last_sep ? FilePath(String(last_sep + 1)) : *this; + return last_sep ? FilePath(last_sep + 1) : *this; } // RemoveFileName returns the directory path with the filename removed. @@ -7586,9 +7994,9 @@ FilePath FilePath::RemoveDirectoryName() const { // On Windows platform, '\' is the path separator, otherwise it is '/'. FilePath FilePath::RemoveFileName() const { const char* const last_sep = FindLastPathSeparator(); - String dir; + std::string dir; if (last_sep) { - dir = String(c_str(), last_sep + 1 - c_str()); + dir = std::string(c_str(), last_sep + 1 - c_str()); } else { dir = kCurrentDirectoryString; } @@ -7605,11 +8013,12 @@ FilePath FilePath::MakeFileName(const FilePath& directory, const FilePath& base_name, int number, const char* extension) { - String file; + std::string file; if (number == 0) { - file = String::Format("%s.%s", base_name.c_str(), extension); + file = base_name.string() + "." + extension; } else { - file = String::Format("%s_%d.%s", base_name.c_str(), number, extension); + file = base_name.string() + "_" + StreamableToString(number) + + "." + extension; } return ConcatPaths(directory, FilePath(file)); } @@ -7621,8 +8030,7 @@ FilePath FilePath::ConcatPaths(const FilePath& directory, if (directory.IsEmpty()) return relative_path; const FilePath dir(directory.RemoveTrailingPathSeparator()); - return FilePath(String::Format("%s%c%s", dir.c_str(), kPathSeparator, - relative_path.c_str())); + return FilePath(dir.string() + kPathSeparator + relative_path.string()); } // Returns true if pathname describes something findable in the file-system, @@ -7766,7 +8174,7 @@ bool FilePath::CreateFolder() const { // On Windows platform, uses \ as the separator, other platforms use /. FilePath FilePath::RemoveTrailingPathSeparator() const { return IsDirectory() - ? FilePath(String(pathname_.c_str(), pathname_.length() - 1)) + ? FilePath(pathname_.substr(0, pathname_.length() - 1)) : *this; } @@ -7858,6 +8266,11 @@ void FilePath::Normalize() { # include <mach/vm_map.h> #endif // GTEST_OS_MAC +#if GTEST_OS_QNX +# include <devctl.h> +# include <sys/procfs.h> +#endif // GTEST_OS_QNX + // Indicates that this translation unit is part of Google Test's // implementation. It must come before gtest-internal-inl.h is @@ -7900,6 +8313,26 @@ size_t GetThreadCount() { } } +#elif GTEST_OS_QNX + +// Returns the number of threads running in the process, or 0 to indicate that +// we cannot detect it. +size_t GetThreadCount() { + const int fd = open("/proc/self/as", O_RDONLY); + if (fd < 0) { + return 0; + } + procfs_info process_info; + const int status = + devctl(fd, DCMD_PROC_INFO, &process_info, sizeof(process_info), NULL); + close(fd); + if (status == EOK) { + return static_cast<size_t>(process_info.num_threads); + } else { + return 0; + } +} + #else size_t GetThreadCount() { @@ -8024,7 +8457,7 @@ bool AtomMatchesChar(bool escaped, char pattern_char, char ch) { } // Helper function used by ValidateRegex() to format error messages. -String FormatRegexSyntaxError(const char* regex, int index) { +std::string FormatRegexSyntaxError(const char* regex, int index) { return (Message() << "Syntax error at index " << index << " in simple regular expression \"" << regex << "\": ").GetString(); } @@ -8231,15 +8664,15 @@ const char kUnknownFile[] = "unknown file"; // Formats a source file path and a line number as they would appear // in an error message from the compiler used to compile this code. GTEST_API_ ::std::string FormatFileLocation(const char* file, int line) { - const char* const file_name = file == NULL ? kUnknownFile : file; + const std::string file_name(file == NULL ? kUnknownFile : file); if (line < 0) { - return String::Format("%s:", file_name).c_str(); + return file_name + ":"; } #ifdef _MSC_VER - return String::Format("%s(%d):", file_name, line).c_str(); + return file_name + "(" + StreamableToString(line) + "):"; #else - return String::Format("%s:%d:", file_name, line).c_str(); + return file_name + ":" + StreamableToString(line) + ":"; #endif // _MSC_VER } @@ -8250,12 +8683,12 @@ GTEST_API_ ::std::string FormatFileLocation(const char* file, int line) { // to the file location it produces, unlike FormatFileLocation(). GTEST_API_ ::std::string FormatCompilerIndependentFileLocation( const char* file, int line) { - const char* const file_name = file == NULL ? kUnknownFile : file; + const std::string file_name(file == NULL ? kUnknownFile : file); if (line < 0) return file_name; else - return String::Format("%s:%d", file_name, line).c_str(); + return file_name + ":" + StreamableToString(line); } @@ -8290,8 +8723,7 @@ GTestLog::~GTestLog() { class CapturedStream { public: // The ctor redirects the stream to a temporary file. - CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) { - + explicit CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) { # if GTEST_OS_WINDOWS char temp_dir_path[MAX_PATH + 1] = { '\0' }; // NOLINT char temp_file_path[MAX_PATH + 1] = { '\0' }; // NOLINT @@ -8308,10 +8740,29 @@ class CapturedStream { << temp_file_path; filename_ = temp_file_path; # else - // There's no guarantee that a test has write access to the - // current directory, so we create the temporary file in the /tmp - // directory instead. + // There's no guarantee that a test has write access to the current + // directory, so we create the temporary file in the /tmp directory + // instead. We use /tmp on most systems, and /sdcard on Android. + // That's because Android doesn't have /tmp. +# if GTEST_OS_LINUX_ANDROID + // Note: Android applications are expected to call the framework's + // Context.getExternalStorageDirectory() method through JNI to get + // the location of the world-writable SD Card directory. However, + // this requires a Context handle, which cannot be retrieved + // globally from native code. Doing so also precludes running the + // code as part of a regular standalone executable, which doesn't + // run in a Dalvik process (e.g. when running it through 'adb shell'). + // + // The location /sdcard is directly accessible from native code + // and is the only location (unofficially) supported by the Android + // team. It's generally a symlink to the real SD Card mount point + // which can be /mnt/sdcard, /mnt/sdcard0, /system/media/sdcard, or + // other OEM-customized locations. Never rely on these, and always + // use /sdcard. + char name_template[] = "/sdcard/gtest_captured_stream.XXXXXX"; +# else char name_template[] = "/tmp/captured_stream.XXXXXX"; +# endif // GTEST_OS_LINUX_ANDROID const int captured_fd = mkstemp(name_template); filename_ = name_template; # endif // GTEST_OS_WINDOWS @@ -8324,7 +8775,7 @@ class CapturedStream { remove(filename_.c_str()); } - String GetCapturedString() { + std::string GetCapturedString() { if (uncaptured_fd_ != -1) { // Restores the original stream. fflush(NULL); @@ -8334,14 +8785,14 @@ class CapturedStream { } FILE* const file = posix::FOpen(filename_.c_str(), "r"); - const String content = ReadEntireFile(file); + const std::string content = ReadEntireFile(file); posix::FClose(file); return content; } private: - // Reads the entire content of a file as a String. - static String ReadEntireFile(FILE* file); + // Reads the entire content of a file as an std::string. + static std::string ReadEntireFile(FILE* file); // Returns the size (in bytes) of a file. static size_t GetFileSize(FILE* file); @@ -8361,7 +8812,7 @@ size_t CapturedStream::GetFileSize(FILE* file) { } // Reads the entire content of a file as a string. -String CapturedStream::ReadEntireFile(FILE* file) { +std::string CapturedStream::ReadEntireFile(FILE* file) { const size_t file_size = GetFileSize(file); char* const buffer = new char[file_size]; @@ -8377,7 +8828,7 @@ String CapturedStream::ReadEntireFile(FILE* file) { bytes_read += bytes_last_read; } while (bytes_last_read > 0 && bytes_read < file_size); - const String content(buffer, bytes_read); + const std::string content(buffer, bytes_read); delete[] buffer; return content; @@ -8400,8 +8851,8 @@ void CaptureStream(int fd, const char* stream_name, CapturedStream** stream) { } // Stops capturing the output stream and returns the captured string. -String GetCapturedStream(CapturedStream** captured_stream) { - const String content = (*captured_stream)->GetCapturedString(); +std::string GetCapturedStream(CapturedStream** captured_stream) { + const std::string content = (*captured_stream)->GetCapturedString(); delete *captured_stream; *captured_stream = NULL; @@ -8420,21 +8871,37 @@ void CaptureStderr() { } // Stops capturing stdout and returns the captured string. -String GetCapturedStdout() { return GetCapturedStream(&g_captured_stdout); } +std::string GetCapturedStdout() { + return GetCapturedStream(&g_captured_stdout); +} // Stops capturing stderr and returns the captured string. -String GetCapturedStderr() { return GetCapturedStream(&g_captured_stderr); } +std::string GetCapturedStderr() { + return GetCapturedStream(&g_captured_stderr); +} #endif // GTEST_HAS_STREAM_REDIRECTION #if GTEST_HAS_DEATH_TEST // A copy of all command line arguments. Set by InitGoogleTest(). -::std::vector<String> g_argvs; +::std::vector<testing::internal::string> g_argvs; -// Returns the command line as a vector of strings. -const ::std::vector<String>& GetArgvs() { return g_argvs; } +static const ::std::vector<testing::internal::string>* g_injected_test_argvs = + NULL; // Owned. +void SetInjectableArgvs(const ::std::vector<testing::internal::string>* argvs) { + if (g_injected_test_argvs != argvs) + delete g_injected_test_argvs; + g_injected_test_argvs = argvs; +} + +const ::std::vector<testing::internal::string>& GetInjectableArgvs() { + if (g_injected_test_argvs != NULL) { + return *g_injected_test_argvs; + } + return g_argvs; +} #endif // GTEST_HAS_DEATH_TEST #if GTEST_OS_WINDOWS_MOBILE @@ -8449,8 +8916,8 @@ void Abort() { // Returns the name of the environment variable corresponding to the // given flag. For example, FlagToEnvVar("foo") will return // "GTEST_FOO" in the open-source version. -static String FlagToEnvVar(const char* flag) { - const String full_flag = +static std::string FlagToEnvVar(const char* flag) { + const std::string full_flag = (Message() << GTEST_FLAG_PREFIX_ << flag).GetString(); Message env_var; @@ -8507,7 +8974,7 @@ bool ParseInt32(const Message& src_text, const char* str, Int32* value) { // // The value is considered true iff it's not "0". bool BoolFromGTestEnv(const char* flag, bool default_value) { - const String env_var = FlagToEnvVar(flag); + const std::string env_var = FlagToEnvVar(flag); const char* const string_value = posix::GetEnv(env_var.c_str()); return string_value == NULL ? default_value : strcmp(string_value, "0") != 0; @@ -8517,7 +8984,7 @@ bool BoolFromGTestEnv(const char* flag, bool default_value) { // variable corresponding to the given flag; if it isn't set or // doesn't represent a valid 32-bit integer, returns default_value. Int32 Int32FromGTestEnv(const char* flag, Int32 default_value) { - const String env_var = FlagToEnvVar(flag); + const std::string env_var = FlagToEnvVar(flag); const char* const string_value = posix::GetEnv(env_var.c_str()); if (string_value == NULL) { // The environment variable is not set. @@ -8539,7 +9006,7 @@ Int32 Int32FromGTestEnv(const char* flag, Int32 default_value) { // Reads and returns the string environment variable corresponding to // the given flag; if it's not set, returns default_value. const char* StringFromGTestEnv(const char* flag, const char* default_value) { - const String env_var = FlagToEnvVar(flag); + const std::string env_var = FlagToEnvVar(flag); const char* const value = posix::GetEnv(env_var.c_str()); return value == NULL ? default_value : value; } @@ -8601,14 +9068,6 @@ namespace { using ::std::ostream; -#if GTEST_OS_WINDOWS_MOBILE // Windows CE does not define _snprintf_s. -# define snprintf _snprintf -#elif _MSC_VER >= 1400 // VC 8.0 and later deprecate snprintf and _snprintf. -# define snprintf _snprintf_s -#elif _MSC_VER -# define snprintf _snprintf -#endif // GTEST_OS_WINDOWS_MOBILE - // Prints a segment of bytes in the given object. void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start, size_t count, ostream* os) { @@ -8623,7 +9082,7 @@ void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start, else *os << '-'; } - snprintf(text, sizeof(text), "%02X", obj_bytes[j]); + GTEST_SNPRINTF_(text, sizeof(text), "%02X", obj_bytes[j]); *os << text; } } @@ -8730,16 +9189,16 @@ static CharFormat PrintAsCharLiteralTo(Char c, ostream* os) { *os << static_cast<char>(c); return kAsIs; } else { - *os << String::Format("\\x%X", static_cast<UnsignedChar>(c)); + *os << "\\x" + String::FormatHexInt(static_cast<UnsignedChar>(c)); return kHexEscape; } } return kSpecialEscape; } -// Prints a char c as if it's part of a string literal, escaping it when +// Prints a wchar_t c as if it's part of a string literal, escaping it when // necessary; returns how c was formatted. -static CharFormat PrintAsWideStringLiteralTo(wchar_t c, ostream* os) { +static CharFormat PrintAsStringLiteralTo(wchar_t c, ostream* os) { switch (c) { case L'\'': *os << "'"; @@ -8754,8 +9213,9 @@ static CharFormat PrintAsWideStringLiteralTo(wchar_t c, ostream* os) { // Prints a char c as if it's part of a string literal, escaping it when // necessary; returns how c was formatted. -static CharFormat PrintAsNarrowStringLiteralTo(char c, ostream* os) { - return PrintAsWideStringLiteralTo(static_cast<unsigned char>(c), os); +static CharFormat PrintAsStringLiteralTo(char c, ostream* os) { + return PrintAsStringLiteralTo( + static_cast<wchar_t>(static_cast<unsigned char>(c)), os); } // Prints a wide or narrow character c and its code. '\0' is printed @@ -8774,7 +9234,7 @@ void PrintCharAndCodeTo(Char c, ostream* os) { // obvious). if (c == 0) return; - *os << " (" << String::Format("%d", c).c_str(); + *os << " (" << static_cast<int>(c); // For more convenience, we print c's code again in hexidecimal, // unless c was already printed in the form '\x##' or the code is in @@ -8782,8 +9242,7 @@ void PrintCharAndCodeTo(Char c, ostream* os) { if (format == kHexEscape || (1 <= c && c <= 9)) { // Do nothing. } else { - *os << String::Format(", 0x%X", - static_cast<UnsignedChar>(c)).c_str(); + *os << ", 0x" << String::FormatHexInt(static_cast<UnsignedChar>(c)); } *os << ")"; } @@ -8801,48 +9260,63 @@ void PrintTo(wchar_t wc, ostream* os) { PrintCharAndCodeTo<wchar_t>(wc, os); } -// Prints the given array of characters to the ostream. -// The array starts at *begin, the length is len, it may include '\0' characters -// and may not be null-terminated. -static void PrintCharsAsStringTo(const char* begin, size_t len, ostream* os) { - *os << "\""; +// Prints the given array of characters to the ostream. CharType must be either +// char or wchar_t. +// The array starts at begin, the length is len, it may include '\0' characters +// and may not be NUL-terminated. +template <typename CharType> +static void PrintCharsAsStringTo( + const CharType* begin, size_t len, ostream* os) { + const char* const kQuoteBegin = sizeof(CharType) == 1 ? "\"" : "L\""; + *os << kQuoteBegin; bool is_previous_hex = false; for (size_t index = 0; index < len; ++index) { - const char cur = begin[index]; + const CharType cur = begin[index]; if (is_previous_hex && IsXDigit(cur)) { // Previous character is of '\x..' form and this character can be // interpreted as another hexadecimal digit in its number. Break string to // disambiguate. - *os << "\" \""; + *os << "\" " << kQuoteBegin; } - is_previous_hex = PrintAsNarrowStringLiteralTo(cur, os) == kHexEscape; + is_previous_hex = PrintAsStringLiteralTo(cur, os) == kHexEscape; } *os << "\""; } +// Prints a (const) char/wchar_t array of 'len' elements, starting at address +// 'begin'. CharType must be either char or wchar_t. +template <typename CharType> +static void UniversalPrintCharArray( + const CharType* begin, size_t len, ostream* os) { + // The code + // const char kFoo[] = "foo"; + // generates an array of 4, not 3, elements, with the last one being '\0'. + // + // Therefore when printing a char array, we don't print the last element if + // it's '\0', such that the output matches the string literal as it's + // written in the source code. + if (len > 0 && begin[len - 1] == '\0') { + PrintCharsAsStringTo(begin, len - 1, os); + return; + } + + // If, however, the last element in the array is not '\0', e.g. + // const char kFoo[] = { 'f', 'o', 'o' }; + // we must print the entire array. We also print a message to indicate + // that the array is not NUL-terminated. + PrintCharsAsStringTo(begin, len, os); + *os << " (no terminating NUL)"; +} + // Prints a (const) char array of 'len' elements, starting at address 'begin'. void UniversalPrintArray(const char* begin, size_t len, ostream* os) { - PrintCharsAsStringTo(begin, len, os); + UniversalPrintCharArray(begin, len, os); } -// Prints the given array of wide characters to the ostream. -// The array starts at *begin, the length is len, it may include L'\0' -// characters and may not be null-terminated. -static void PrintWideCharsAsStringTo(const wchar_t* begin, size_t len, - ostream* os) { - *os << "L\""; - bool is_previous_hex = false; - for (size_t index = 0; index < len; ++index) { - const wchar_t cur = begin[index]; - if (is_previous_hex && isascii(cur) && IsXDigit(static_cast<char>(cur))) { - // Previous character is of '\x..' form and this character can be - // interpreted as another hexadecimal digit in its number. Break string to - // disambiguate. - *os << "\" L\""; - } - is_previous_hex = PrintAsWideStringLiteralTo(cur, os) == kHexEscape; - } - *os << "\""; +// Prints a (const) wchar_t array of 'len' elements, starting at address +// 'begin'. +void UniversalPrintArray(const wchar_t* begin, size_t len, ostream* os) { + UniversalPrintCharArray(begin, len, os); } // Prints the given C string to the ostream. @@ -8868,7 +9342,7 @@ void PrintTo(const wchar_t* s, ostream* os) { *os << "NULL"; } else { *os << ImplicitCast_<const void*>(s) << " pointing to "; - PrintWideCharsAsStringTo(s, wcslen(s), os); + PrintCharsAsStringTo(s, wcslen(s), os); } } #endif // wchar_t is native @@ -8887,13 +9361,13 @@ void PrintStringTo(const ::std::string& s, ostream* os) { // Prints a ::wstring object. #if GTEST_HAS_GLOBAL_WSTRING void PrintWideStringTo(const ::wstring& s, ostream* os) { - PrintWideCharsAsStringTo(s.data(), s.size(), os); + PrintCharsAsStringTo(s.data(), s.size(), os); } #endif // GTEST_HAS_GLOBAL_WSTRING #if GTEST_HAS_STD_WSTRING void PrintWideStringTo(const ::std::wstring& s, ostream* os) { - PrintWideCharsAsStringTo(s.data(), s.size(), os); + PrintCharsAsStringTo(s.data(), s.size(), os); } #endif // GTEST_HAS_STD_WSTRING @@ -8948,10 +9422,10 @@ using internal::GetUnitTestImpl; // Gets the summary of the failure message by omitting the stack trace // in it. -internal::String TestPartResult::ExtractSummary(const char* message) { +std::string TestPartResult::ExtractSummary(const char* message) { const char* const stack_trace = strstr(message, internal::kStackTraceMarker); - return stack_trace == NULL ? internal::String(message) : - internal::String(message, stack_trace - message); + return stack_trace == NULL ? message : + std::string(message, stack_trace); } // Prints a TestPartResult object. @@ -9066,10 +9540,10 @@ const char* TypedTestCasePState::VerifyRegisteredTestNames( registered_tests = SkipSpaces(registered_tests); Message errors; - ::std::set<String> tests; + ::std::set<std::string> tests; for (const char* names = registered_tests; names != NULL; names = SkipComma(names)) { - const String name = GetPrefixUntilComma(names); + const std::string name = GetPrefixUntilComma(names); if (tests.count(name) != 0) { errors << "Test " << name << " is listed more than once.\n"; continue; @@ -9101,7 +9575,7 @@ const char* TypedTestCasePState::VerifyRegisteredTestNames( } } - const String& errors_str = errors.GetString(); + const std::string& errors_str = errors.GetString(); if (errors_str != "") { fprintf(stderr, "%s %s", FormatFileLocation(file, line).c_str(), errors_str.c_str()); diff --git a/resources/3rdparty/gtest-1.6.0/fused-src/gtest/gtest.h b/resources/3rdparty/gtest-1.7.0/fused-src/gtest/gtest.h similarity index 92% rename from resources/3rdparty/gtest-1.6.0/fused-src/gtest/gtest.h rename to resources/3rdparty/gtest-1.7.0/fused-src/gtest/gtest.h index 3143bd679..4f3804f70 100644 --- a/resources/3rdparty/gtest-1.6.0/fused-src/gtest/gtest.h +++ b/resources/3rdparty/gtest-1.7.0/fused-src/gtest/gtest.h @@ -52,6 +52,7 @@ #define GTEST_INCLUDE_GTEST_GTEST_H_ #include <limits> +#include <ostream> #include <vector> // Copyright 2005, Google Inc. @@ -127,6 +128,10 @@ // Low-level types and utilities for porting Google Test to various // platforms. They are subject to change without notice. DO NOT USE // THEM IN USER CODE. +// +// This file is fundamental to Google Test. All other Google Test source +// files are expected to #include this. Therefore, it cannot #include +// any other Google Test header. #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ @@ -167,6 +172,8 @@ // Test's own tr1 tuple implementation should be // used. Unused when the user sets // GTEST_HAS_TR1_TUPLE to 0. +// GTEST_LANG_CXX11 - Define it to 1/0 to indicate that Google Test +// is building in C++11/C++98 mode. // GTEST_LINKED_AS_SHARED_LIBRARY // - Define to 1 when compiling tests that use // Google Test as a shared library (known as @@ -185,7 +192,11 @@ // GTEST_OS_LINUX - Linux // GTEST_OS_LINUX_ANDROID - Google Android // GTEST_OS_MAC - Mac OS X +// GTEST_OS_IOS - iOS +// GTEST_OS_IOS_SIMULATOR - iOS simulator // GTEST_OS_NACL - Google Native Client (NaCl) +// GTEST_OS_OPENBSD - OpenBSD +// GTEST_OS_QNX - QNX // GTEST_OS_SOLARIS - Sun Solaris // GTEST_OS_SYMBIAN - Symbian // GTEST_OS_WINDOWS - Windows (Desktop, MinGW, or Mobile) @@ -270,7 +281,7 @@ // GTEST_FLAG() - references a flag. // GTEST_DECLARE_*() - declares a flag. // GTEST_DEFINE_*() - defines a flag. -// GetArgvs() - returns the command line as a vector of strings. +// GetInjectableArgvs() - returns the command line as a vector of strings. // // Environment variable utilities: // GetEnv() - gets the value of an environment variable. @@ -288,6 +299,11 @@ # include <sys/stat.h> #endif // !_WIN32_WCE +#if defined __APPLE__ +# include <AvailabilityMacros.h> +# include <TargetConditionals.h> +#endif + #include <iostream> // NOLINT #include <sstream> // NOLINT #include <string> // NOLINT @@ -322,11 +338,17 @@ # endif // _WIN32_WCE #elif defined __APPLE__ # define GTEST_OS_MAC 1 +# if TARGET_OS_IPHONE +# define GTEST_OS_IOS 1 +# if TARGET_IPHONE_SIMULATOR +# define GTEST_OS_IOS_SIMULATOR 1 +# endif +# endif #elif defined __linux__ # define GTEST_OS_LINUX 1 -# ifdef ANDROID +# if defined __ANDROID__ # define GTEST_OS_LINUX_ANDROID 1 -# endif // ANDROID +# endif #elif defined __MVS__ # define GTEST_OS_ZOS 1 #elif defined(__sun) && defined(__SVR4) @@ -337,8 +359,25 @@ # define GTEST_OS_HPUX 1 #elif defined __native_client__ # define GTEST_OS_NACL 1 +#elif defined __OpenBSD__ +# define GTEST_OS_OPENBSD 1 +#elif defined __QNX__ +# define GTEST_OS_QNX 1 #endif // __CYGWIN__ +#ifndef GTEST_LANG_CXX11 +// gcc and clang define __GXX_EXPERIMENTAL_CXX0X__ when +// -std={c,gnu}++{0x,11} is passed. The C++11 standard specifies a +// value for __cplusplus, and recent versions of clang, gcc, and +// probably other compilers set that too in C++11 mode. +# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L +// Compiling in at least C++11 mode. +# define GTEST_LANG_CXX11 1 +# else +# define GTEST_LANG_CXX11 0 +# endif +#endif + // Brings in definitions for functions used in the testing::internal::posix // namespace (read, write, close, chdir, isatty, stat). We do not currently // use them on Windows Mobile. @@ -347,20 +386,25 @@ // is not the case, we need to include headers that provide the functions // mentioned above. # include <unistd.h> -# if !GTEST_OS_NACL -// TODO(vladl@google.com): Remove this condition when Native Client SDK adds -// strings.h (tracked in -// http://code.google.com/p/nativeclient/issues/detail?id=1175). -# include <strings.h> // Native Client doesn't provide strings.h. -# endif +# include <strings.h> #elif !GTEST_OS_WINDOWS_MOBILE # include <direct.h> # include <io.h> #endif +#if GTEST_OS_LINUX_ANDROID +// Used to define __ANDROID_API__ matching the target NDK API level. +# include <android/api-level.h> // NOLINT +#endif + // Defines this to true iff Google Test can use POSIX regular expressions. #ifndef GTEST_HAS_POSIX_RE -# define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS) +# if GTEST_OS_LINUX_ANDROID +// On Android, <regex.h> is only available starting with Gingerbread. +# define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9) +# else +# define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS) +# endif #endif #if GTEST_HAS_POSIX_RE @@ -475,11 +519,27 @@ # elif defined(__GNUC__) && (GTEST_GCC_VER_ >= 40302) # ifdef __GXX_RTTI -# define GTEST_HAS_RTTI 1 +// When building against STLport with the Android NDK and with +// -frtti -fno-exceptions, the build fails at link time with undefined +// references to __cxa_bad_typeid. Note sure if STL or toolchain bug, +// so disable RTTI when detected. +# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) && \ + !defined(__EXCEPTIONS) +# define GTEST_HAS_RTTI 0 +# else +# define GTEST_HAS_RTTI 1 +# endif // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS # else # define GTEST_HAS_RTTI 0 # endif // __GXX_RTTI +// Clang defines __GXX_RTTI starting with version 3.0, but its manual recommends +// using has_feature instead. has_feature(cxx_rtti) is supported since 2.7, the +// first version with C++ support. +# elif defined(__clang__) + +# define GTEST_HAS_RTTI __has_feature(cxx_rtti) + // Starting with version 9.0 IBM Visual Age defines __RTTI_ALL__ to 1 if // both the typeid and dynamic_cast features are present. # elif defined(__IBMCPP__) && (__IBMCPP__ >= 900) @@ -512,7 +572,8 @@ // // To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0 // to your compiler flags. -# define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX) +# define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX \ + || GTEST_OS_QNX) #endif // GTEST_HAS_PTHREAD #if GTEST_HAS_PTHREAD @@ -528,8 +589,13 @@ // this macro to 0 to prevent Google Test from using tuple (any // feature depending on tuple with be disabled in this mode). #ifndef GTEST_HAS_TR1_TUPLE +# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) +// STLport, provided with the Android NDK, has neither <tr1/tuple> or <tuple>. +# define GTEST_HAS_TR1_TUPLE 0 +# else // The user didn't tell us not to do it, so we assume it's OK. -# define GTEST_HAS_TR1_TUPLE 1 +# define GTEST_HAS_TR1_TUPLE 1 +# endif #endif // GTEST_HAS_TR1_TUPLE // Determines whether Google Test's own tr1 tuple implementation @@ -538,14 +604,28 @@ // The user didn't tell us, so we need to figure it out. // We use our own TR1 tuple if we aren't sure the user has an -// implementation of it already. At this time, GCC 4.0.0+ and MSVC -// 2010 are the only mainstream compilers that come with a TR1 tuple -// implementation. NVIDIA's CUDA NVCC compiler pretends to be GCC by -// defining __GNUC__ and friends, but cannot compile GCC's tuple -// implementation. MSVC 2008 (9.0) provides TR1 tuple in a 323 MB -// Feature Pack download, which we cannot assume the user has. -# if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000)) \ - || _MSC_VER >= 1600 +// implementation of it already. At this time, libstdc++ 4.0.0+ and +// MSVC 2010 are the only mainstream standard libraries that come +// with a TR1 tuple implementation. NVIDIA's CUDA NVCC compiler +// pretends to be GCC by defining __GNUC__ and friends, but cannot +// compile GCC's tuple implementation. MSVC 2008 (9.0) provides TR1 +// tuple in a 323 MB Feature Pack download, which we cannot assume the +// user has. QNX's QCC compiler is a modified GCC but it doesn't +// support TR1 tuple. libc++ only provides std::tuple, in C++11 mode, +// and it can be used with some compilers that define __GNUC__. +# if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000) \ + && !GTEST_OS_QNX && !defined(_LIBCPP_VERSION)) || _MSC_VER >= 1600 +# define GTEST_ENV_HAS_TR1_TUPLE_ 1 +# endif + +// C++11 specifies that <tuple> provides std::tuple. Use that if gtest is used +// in C++11 mode and libstdc++ isn't very old (binaries targeting OS X 10.6 +// can build with clang but need to use gcc4.2's libstdc++). +# if GTEST_LANG_CXX11 && (!defined(__GLIBCXX__) || __GLIBCXX__ > 20110325) +# define GTEST_ENV_HAS_STD_TUPLE_ 1 +# endif + +# if GTEST_ENV_HAS_TR1_TUPLE_ || GTEST_ENV_HAS_STD_TUPLE_ # define GTEST_USE_OWN_TR1_TUPLE 0 # else # define GTEST_USE_OWN_TR1_TUPLE 1 @@ -559,7 +639,9 @@ #if GTEST_HAS_TR1_TUPLE # if GTEST_USE_OWN_TR1_TUPLE -// This file was GENERATED by a script. DO NOT EDIT BY HAND!!! +// This file was GENERATED by command: +// pump.py gtest-tuple.h.pump +// DO NOT EDIT BY HAND!!! // Copyright 2009 Google Inc. // All Rights Reserved. @@ -701,34 +783,54 @@ template <bool kIndexValid, int kIndex, class Tuple> struct TupleElement; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 0, GTEST_10_TUPLE_(T)> { typedef T0 type; }; +struct TupleElement<true, 0, GTEST_10_TUPLE_(T) > { + typedef T0 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 1, GTEST_10_TUPLE_(T)> { typedef T1 type; }; +struct TupleElement<true, 1, GTEST_10_TUPLE_(T) > { + typedef T1 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 2, GTEST_10_TUPLE_(T)> { typedef T2 type; }; +struct TupleElement<true, 2, GTEST_10_TUPLE_(T) > { + typedef T2 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 3, GTEST_10_TUPLE_(T)> { typedef T3 type; }; +struct TupleElement<true, 3, GTEST_10_TUPLE_(T) > { + typedef T3 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 4, GTEST_10_TUPLE_(T)> { typedef T4 type; }; +struct TupleElement<true, 4, GTEST_10_TUPLE_(T) > { + typedef T4 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 5, GTEST_10_TUPLE_(T)> { typedef T5 type; }; +struct TupleElement<true, 5, GTEST_10_TUPLE_(T) > { + typedef T5 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 6, GTEST_10_TUPLE_(T)> { typedef T6 type; }; +struct TupleElement<true, 6, GTEST_10_TUPLE_(T) > { + typedef T6 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 7, GTEST_10_TUPLE_(T)> { typedef T7 type; }; +struct TupleElement<true, 7, GTEST_10_TUPLE_(T) > { + typedef T7 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 8, GTEST_10_TUPLE_(T)> { typedef T8 type; }; +struct TupleElement<true, 8, GTEST_10_TUPLE_(T) > { + typedef T8 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 9, GTEST_10_TUPLE_(T)> { typedef T9 type; }; +struct TupleElement<true, 9, GTEST_10_TUPLE_(T) > { + typedef T9 type; +}; } // namespace gtest_internal @@ -1269,37 +1371,59 @@ inline GTEST_10_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, template <typename Tuple> struct tuple_size; template <GTEST_0_TYPENAMES_(T)> -struct tuple_size<GTEST_0_TUPLE_(T)> { static const int value = 0; }; +struct tuple_size<GTEST_0_TUPLE_(T) > { + static const int value = 0; +}; template <GTEST_1_TYPENAMES_(T)> -struct tuple_size<GTEST_1_TUPLE_(T)> { static const int value = 1; }; +struct tuple_size<GTEST_1_TUPLE_(T) > { + static const int value = 1; +}; template <GTEST_2_TYPENAMES_(T)> -struct tuple_size<GTEST_2_TUPLE_(T)> { static const int value = 2; }; +struct tuple_size<GTEST_2_TUPLE_(T) > { + static const int value = 2; +}; template <GTEST_3_TYPENAMES_(T)> -struct tuple_size<GTEST_3_TUPLE_(T)> { static const int value = 3; }; +struct tuple_size<GTEST_3_TUPLE_(T) > { + static const int value = 3; +}; template <GTEST_4_TYPENAMES_(T)> -struct tuple_size<GTEST_4_TUPLE_(T)> { static const int value = 4; }; +struct tuple_size<GTEST_4_TUPLE_(T) > { + static const int value = 4; +}; template <GTEST_5_TYPENAMES_(T)> -struct tuple_size<GTEST_5_TUPLE_(T)> { static const int value = 5; }; +struct tuple_size<GTEST_5_TUPLE_(T) > { + static const int value = 5; +}; template <GTEST_6_TYPENAMES_(T)> -struct tuple_size<GTEST_6_TUPLE_(T)> { static const int value = 6; }; +struct tuple_size<GTEST_6_TUPLE_(T) > { + static const int value = 6; +}; template <GTEST_7_TYPENAMES_(T)> -struct tuple_size<GTEST_7_TUPLE_(T)> { static const int value = 7; }; +struct tuple_size<GTEST_7_TUPLE_(T) > { + static const int value = 7; +}; template <GTEST_8_TYPENAMES_(T)> -struct tuple_size<GTEST_8_TUPLE_(T)> { static const int value = 8; }; +struct tuple_size<GTEST_8_TUPLE_(T) > { + static const int value = 8; +}; template <GTEST_9_TYPENAMES_(T)> -struct tuple_size<GTEST_9_TUPLE_(T)> { static const int value = 9; }; +struct tuple_size<GTEST_9_TUPLE_(T) > { + static const int value = 9; +}; template <GTEST_10_TYPENAMES_(T)> -struct tuple_size<GTEST_10_TUPLE_(T)> { static const int value = 10; }; +struct tuple_size<GTEST_10_TUPLE_(T) > { + static const int value = 10; +}; template <int k, class Tuple> struct tuple_element { @@ -1483,8 +1607,8 @@ template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)> inline bool operator==(const GTEST_10_TUPLE_(T)& t, const GTEST_10_TUPLE_(U)& u) { return gtest_internal::SameSizeTuplePrefixComparator< - tuple_size<GTEST_10_TUPLE_(T)>::value, - tuple_size<GTEST_10_TUPLE_(U)>::value>::Eq(t, u); + tuple_size<GTEST_10_TUPLE_(T) >::value, + tuple_size<GTEST_10_TUPLE_(U) >::value>::Eq(t, u); } template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)> @@ -1527,6 +1651,22 @@ inline bool operator!=(const GTEST_10_TUPLE_(T)& t, #undef GTEST_TUPLE_ELEMENT_ #endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ +# elif GTEST_ENV_HAS_STD_TUPLE_ +# include <tuple> +// C++11 puts its tuple into the ::std namespace rather than +// ::std::tr1. gtest expects tuple to live in ::std::tr1, so put it there. +// This causes undefined behavior, but supported compilers react in +// the way we intend. +namespace std { +namespace tr1 { +using ::std::get; +using ::std::make_tuple; +using ::std::tuple; +using ::std::tuple_element; +using ::std::tuple_size; +} +} + # elif GTEST_OS_SYMBIAN // On Symbian, BOOST_HAS_TR1_TUPLE causes Boost's TR1 tuple library to @@ -1577,7 +1717,16 @@ inline bool operator!=(const GTEST_10_TUPLE_(T)& t, // The user didn't tell us, so we need to figure it out. # if GTEST_OS_LINUX && !defined(__ia64__) -# define GTEST_HAS_CLONE 1 +# if GTEST_OS_LINUX_ANDROID +// On Android, clone() is only available on ARM starting with Gingerbread. +# if defined(__arm__) && __ANDROID_API__ >= 9 +# define GTEST_HAS_CLONE 1 +# else +# define GTEST_HAS_CLONE 0 +# endif +# else +# define GTEST_HAS_CLONE 1 +# endif # else # define GTEST_HAS_CLONE 0 # endif // GTEST_OS_LINUX && !defined(__ia64__) @@ -1600,9 +1749,11 @@ inline bool operator!=(const GTEST_10_TUPLE_(T)& t, // Google Test does not support death tests for VC 7.1 and earlier as // abort() in a VC 7.1 application compiled as GUI in debug config // pops up a dialog window that cannot be suppressed programmatically. -#if (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ +#if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ + (GTEST_OS_MAC && !GTEST_OS_IOS) || GTEST_OS_IOS_SIMULATOR || \ (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER >= 1400) || \ - GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX) + GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX || \ + GTEST_OS_OPENBSD || GTEST_OS_QNX) # define GTEST_HAS_DEATH_TEST 1 # include <vector> // NOLINT #endif @@ -1731,13 +1882,23 @@ inline bool operator!=(const GTEST_10_TUPLE_(T)& t, # define GTEST_NO_INLINE_ #endif +// _LIBCPP_VERSION is defined by the libc++ library from the LLVM project. +#if defined(__GLIBCXX__) || defined(_LIBCPP_VERSION) +# define GTEST_HAS_CXXABI_H_ 1 +#else +# define GTEST_HAS_CXXABI_H_ 0 +#endif + namespace testing { class Message; namespace internal { -class String; +// A secret type that Google Test users don't know about. It has no +// definition on purpose. Therefore it's impossible to create a +// Secret object, which is what we want. +class Secret; // The GTEST_COMPILE_ASSERT_ macro can be used to verify that a compile time // expression is true. For example, you could use it to verify the @@ -1759,8 +1920,8 @@ struct CompileAssert { }; #define GTEST_COMPILE_ASSERT_(expr, msg) \ - typedef ::testing::internal::CompileAssert<(bool(expr))> \ - msg[bool(expr) ? 1 : -1] + typedef ::testing::internal::CompileAssert<(static_cast<bool>(expr))> \ + msg[static_cast<bool>(expr) ? 1 : -1] GTEST_ATTRIBUTE_UNUSED_ // Implementation details of GTEST_COMPILE_ASSERT_: // @@ -1858,6 +2019,7 @@ class scoped_ptr { ptr_ = p; } } + private: T* ptr_; @@ -1920,10 +2082,9 @@ class GTEST_API_ RE { private: void Init(const char* regex); - // We use a const char* instead of a string, as Google Test may be used - // where string is not available. We also do not use Google Test's own - // String type here, in order to simplify dependencies between the - // files. + // We use a const char* instead of an std::string, as Google Test used to be + // used where std::string is not available. TODO(wan@google.com): change to + // std::string. const char* pattern_; bool is_valid_; @@ -2106,20 +2267,21 @@ Derived* CheckedDowncastToActualType(Base* base) { // GetCapturedStderr - stops capturing stderr and returns the captured string. // GTEST_API_ void CaptureStdout(); -GTEST_API_ String GetCapturedStdout(); +GTEST_API_ std::string GetCapturedStdout(); GTEST_API_ void CaptureStderr(); -GTEST_API_ String GetCapturedStderr(); +GTEST_API_ std::string GetCapturedStderr(); #endif // GTEST_HAS_STREAM_REDIRECTION #if GTEST_HAS_DEATH_TEST -// A copy of all command line arguments. Set by InitGoogleTest(). -extern ::std::vector<String> g_argvs; +const ::std::vector<testing::internal::string>& GetInjectableArgvs(); +void SetInjectableArgvs(const ::std::vector<testing::internal::string>* + new_argvs); -// GTEST_HAS_DEATH_TEST implies we have ::std::string. -const ::std::vector<String>& GetArgvs(); +// A copy of all command line arguments. Set by InitGoogleTest(). +extern ::std::vector<testing::internal::string> g_argvs; #endif // GTEST_HAS_DEATH_TEST @@ -2146,22 +2308,37 @@ inline void SleepMilliseconds(int n) { // use it in user tests, either directly or indirectly. class Notification { public: - Notification() : notified_(false) {} + Notification() : notified_(false) { + GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, NULL)); + } + ~Notification() { + pthread_mutex_destroy(&mutex_); + } // Notifies all threads created with this notification to start. Must // be called from the controller thread. - void Notify() { notified_ = true; } + void Notify() { + pthread_mutex_lock(&mutex_); + notified_ = true; + pthread_mutex_unlock(&mutex_); + } // Blocks until the controller thread notifies. Must be called from a test // thread. void WaitForNotification() { - while(!notified_) { + for (;;) { + pthread_mutex_lock(&mutex_); + const bool notified = notified_; + pthread_mutex_unlock(&mutex_); + if (notified) + break; SleepMilliseconds(10); } } private: - volatile bool notified_; + pthread_mutex_t mutex_; + bool notified_; GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification); }; @@ -2269,21 +2446,23 @@ class MutexBase { void Lock() { GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_lock(&mutex_)); owner_ = pthread_self(); + has_owner_ = true; } // Releases this mutex. void Unlock() { - // We don't protect writing to owner_ here, as it's the caller's - // responsibility to ensure that the current thread holds the + // Since the lock is being released the owner_ field should no longer be + // considered valid. We don't protect writing to has_owner_ here, as it's + // the caller's responsibility to ensure that the current thread holds the // mutex when this is called. - owner_ = 0; + has_owner_ = false; GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_unlock(&mutex_)); } // Does nothing if the current thread holds the mutex. Otherwise, crashes // with high probability. void AssertHeld() const { - GTEST_CHECK_(owner_ == pthread_self()) + GTEST_CHECK_(has_owner_ && pthread_equal(owner_, pthread_self())) << "The current thread is not holding the mutex @" << this; } @@ -2294,7 +2473,14 @@ class MutexBase { // have to be public. public: pthread_mutex_t mutex_; // The underlying pthread mutex. - pthread_t owner_; // The thread holding the mutex; 0 means no one holds it. + // has_owner_ indicates whether the owner_ field below contains a valid thread + // ID and is therefore safe to inspect (e.g., to use in pthread_equal()). All + // accesses to the owner_ field should be protected by a check of this field. + // An alternative might be to memset() owner_ to all zeros, but there's no + // guarantee that a zero'd pthread_t is necessarily invalid or even different + // from pthread_self(). + bool has_owner_; + pthread_t owner_; // The thread holding the mutex. }; // Forward-declares a static mutex. @@ -2302,8 +2488,13 @@ class MutexBase { extern ::testing::internal::MutexBase mutex // Defines and statically (i.e. at link time) initializes a static mutex. +// The initialization list here does not explicitly initialize each field, +// instead relying on default initialization for the unspecified fields. In +// particular, the owner_ field (a pthread_t) is not explicitly initialized. +// This allows initialization to work whether pthread_t is a scalar or struct. +// The flag -Wmissing-field-initializers must not be specified for this to work. # define GTEST_DEFINE_STATIC_MUTEX_(mutex) \ - ::testing::internal::MutexBase mutex = { PTHREAD_MUTEX_INITIALIZER, 0 } + ::testing::internal::MutexBase mutex = { PTHREAD_MUTEX_INITIALIZER, false } // The Mutex class can only be used for mutexes created at runtime. It // shares its API with MutexBase otherwise. @@ -2311,7 +2502,7 @@ class Mutex : public MutexBase { public: Mutex() { GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, NULL)); - owner_ = 0; + has_owner_ = false; } ~Mutex() { GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_)); @@ -2461,6 +2652,8 @@ class ThreadLocal { class Mutex { public: Mutex() {} + void Lock() {} + void Unlock() {} void AssertHeld() const {} }; @@ -2591,6 +2784,10 @@ inline bool IsUpper(char ch) { inline bool IsXDigit(char ch) { return isxdigit(static_cast<unsigned char>(ch)) != 0; } +inline bool IsXDigit(wchar_t ch) { + const unsigned char low_byte = static_cast<unsigned char>(ch); + return ch == low_byte && isxdigit(low_byte) != 0; +} inline char ToLower(char ch) { return static_cast<char>(tolower(static_cast<unsigned char>(ch))); @@ -2728,6 +2925,23 @@ inline void Abort() { abort(); } } // namespace posix +// MSVC "deprecates" snprintf and issues warnings wherever it is used. In +// order to avoid these warnings, we need to use _snprintf or _snprintf_s on +// MSVC-based platforms. We map the GTEST_SNPRINTF_ macro to the appropriate +// function in order to achieve that. We use macro definition here because +// snprintf is a variadic function. +#if _MSC_VER >= 1400 && !GTEST_OS_WINDOWS_MOBILE +// MSVC 2005 and above support variadic macros. +# define GTEST_SNPRINTF_(buffer, size, format, ...) \ + _snprintf_s(buffer, size, size, format, __VA_ARGS__) +#elif defined(_MSC_VER) +// Windows CE does not define _snprintf_s and MSVC prior to 2005 doesn't +// complain about _snprintf. +# define GTEST_SNPRINTF_ _snprintf +#else +# define GTEST_SNPRINTF_ snprintf +#endif + // The maximum number a BiggestInt can represent. This definition // works no matter BiggestInt is represented in one's complement or // two's complement. @@ -2780,7 +2994,6 @@ class TypeWithSize<4> { template <> class TypeWithSize<8> { public: - #if GTEST_OS_WINDOWS typedef __int64 Int; typedef unsigned __int64 UInt; @@ -2807,7 +3020,7 @@ typedef TypeWithSize<8>::Int TimeInMillis; // Represents time in milliseconds. #define GTEST_DECLARE_int32_(name) \ GTEST_API_ extern ::testing::internal::Int32 GTEST_FLAG(name) #define GTEST_DECLARE_string_(name) \ - GTEST_API_ extern ::testing::internal::String GTEST_FLAG(name) + GTEST_API_ extern ::std::string GTEST_FLAG(name) // Macros for defining flags. #define GTEST_DEFINE_bool_(name, default_val, doc) \ @@ -2815,7 +3028,11 @@ typedef TypeWithSize<8>::Int TimeInMillis; // Represents time in milliseconds. #define GTEST_DEFINE_int32_(name, default_val, doc) \ GTEST_API_ ::testing::internal::Int32 GTEST_FLAG(name) = (default_val) #define GTEST_DEFINE_string_(name, default_val, doc) \ - GTEST_API_ ::testing::internal::String GTEST_FLAG(name) = (default_val) + GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val) + +// Thread annotations +#define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks) +#define GTEST_LOCK_EXCLUDED_(locks) // Parses 'str' for a 32-bit signed integer. If successful, writes the result // to *value and returns true; otherwise leaves *value unchanged and returns @@ -2843,7 +3060,12 @@ const char* StringFromGTestEnv(const char* flag, const char* default_val); # include <unistd.h> #endif // GTEST_OS_LINUX +#if GTEST_HAS_EXCEPTIONS +# include <stdexcept> +#endif + #include <ctype.h> +#include <float.h> #include <string.h> #include <iomanip> #include <limits> @@ -2878,321 +3100,387 @@ const char* StringFromGTestEnv(const char* flag, const char* default_val); // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee) +// Author: wan@google.com (Zhanyong Wan) // // The Google C++ Testing Framework (Google Test) // -// This header file declares the String class and functions used internally by -// Google Test. They are subject to change without notice. They should not used -// by code external to Google Test. +// This header file defines the Message class. // -// This header file is #included by <gtest/internal/gtest-internal.h>. -// It should not be #included by other files. +// IMPORTANT NOTE: Due to limitation of the C++ language, we have to +// leave some internal implementation details in this header file. +// They are clearly marked by comments like this: +// +// // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. +// +// Such code is NOT meant to be used by a user directly, and is subject +// to CHANGE WITHOUT NOTICE. Therefore DO NOT DEPEND ON IT in a user +// program! -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ +#ifndef GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ +#define GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ -#ifdef __BORLANDC__ -// string.h is not guaranteed to provide strcpy on C++ Builder. -# include <mem.h> -#endif +#include <limits> -#include <string.h> -#include <string> +// Ensures that there is at least one operator<< in the global namespace. +// See Message& operator<<(...) below for why. +void operator<<(const testing::internal::Secret&, int); namespace testing { -namespace internal { -// String - a UTF-8 string class. +// The Message class works like an ostream repeater. // -// For historic reasons, we don't use std::string. +// Typical usage: // -// TODO(wan@google.com): replace this class with std::string or -// implement it in terms of the latter. +// 1. You stream a bunch of values to a Message object. +// It will remember the text in a stringstream. +// 2. Then you stream the Message object to an ostream. +// This causes the text in the Message to be streamed +// to the ostream. // -// Note that String can represent both NULL and the empty string, -// while std::string cannot represent NULL. +// For example; // -// NULL and the empty string are considered different. NULL is less -// than anything (including the empty string) except itself. +// testing::Message foo; +// foo << 1 << " != " << 2; +// std::cout << foo; // -// This class only provides minimum functionality necessary for -// implementing Google Test. We do not intend to implement a full-fledged -// string class here. +// will print "1 != 2". // -// Since the purpose of this class is to provide a substitute for -// std::string on platforms where it cannot be used, we define a copy -// constructor and assignment operators such that we don't need -// conditional compilation in a lot of places. +// Message is not intended to be inherited from. In particular, its +// destructor is not virtual. // -// In order to make the representation efficient, the d'tor of String -// is not virtual. Therefore DO NOT INHERIT FROM String. -class GTEST_API_ String { +// Note that stringstream behaves differently in gcc and in MSVC. You +// can stream a NULL char pointer to it in the former, but not in the +// latter (it causes an access violation if you do). The Message +// class hides this difference by treating a NULL char pointer as +// "(null)". +class GTEST_API_ Message { + private: + // The type of basic IO manipulators (endl, ends, and flush) for + // narrow streams. + typedef std::ostream& (*BasicNarrowIoManip)(std::ostream&); + public: - // Static utility methods + // Constructs an empty Message. + Message(); - // Returns the input enclosed in double quotes if it's not NULL; - // otherwise returns "(null)". For example, "\"Hello\"" is returned - // for input "Hello". - // - // This is useful for printing a C string in the syntax of a literal. - // - // Known issue: escape sequences are not handled yet. - static String ShowCStringQuoted(const char* c_str); + // Copy constructor. + Message(const Message& msg) : ss_(new ::std::stringstream) { // NOLINT + *ss_ << msg.GetString(); + } - // Clones a 0-terminated C string, allocating memory using new. The - // caller is responsible for deleting the return value using - // delete[]. Returns the cloned string, or NULL if the input is - // NULL. - // - // This is different from strdup() in string.h, which allocates - // memory using malloc(). - static const char* CloneCString(const char* c_str); + // Constructs a Message from a C-string. + explicit Message(const char* str) : ss_(new ::std::stringstream) { + *ss_ << str; + } -#if GTEST_OS_WINDOWS_MOBILE - // Windows CE does not have the 'ANSI' versions of Win32 APIs. To be - // able to pass strings to Win32 APIs on CE we need to convert them - // to 'Unicode', UTF-16. +#if GTEST_OS_SYMBIAN + // Streams a value (either a pointer or not) to this object. + template <typename T> + inline Message& operator <<(const T& value) { + StreamHelper(typename internal::is_pointer<T>::type(), value); + return *this; + } +#else + // Streams a non-pointer value to this object. + template <typename T> + inline Message& operator <<(const T& val) { + // Some libraries overload << for STL containers. These + // overloads are defined in the global namespace instead of ::std. + // + // C++'s symbol lookup rule (i.e. Koenig lookup) says that these + // overloads are visible in either the std namespace or the global + // namespace, but not other namespaces, including the testing + // namespace which Google Test's Message class is in. + // + // To allow STL containers (and other types that has a << operator + // defined in the global namespace) to be used in Google Test + // assertions, testing::Message must access the custom << operator + // from the global namespace. With this using declaration, + // overloads of << defined in the global namespace and those + // visible via Koenig lookup are both exposed in this function. + using ::operator <<; + *ss_ << val; + return *this; + } - // Creates a UTF-16 wide string from the given ANSI string, allocating - // memory using new. The caller is responsible for deleting the return - // value using delete[]. Returns the wide string, or NULL if the - // input is NULL. + // Streams a pointer value to this object. // - // The wide string is created using the ANSI codepage (CP_ACP) to - // match the behaviour of the ANSI versions of Win32 calls and the - // C runtime. - static LPCWSTR AnsiToUtf16(const char* c_str); - - // Creates an ANSI string from the given wide string, allocating - // memory using new. The caller is responsible for deleting the return - // value using delete[]. Returns the ANSI string, or NULL if the - // input is NULL. + // This function is an overload of the previous one. When you + // stream a pointer to a Message, this definition will be used as it + // is more specialized. (The C++ Standard, section + // [temp.func.order].) If you stream a non-pointer, then the + // previous definition will be used. // - // The returned string is created using the ANSI codepage (CP_ACP) to - // match the behaviour of the ANSI versions of Win32 calls and the - // C runtime. - static const char* Utf16ToAnsi(LPCWSTR utf16_str); -#endif + // The reason for this overload is that streaming a NULL pointer to + // ostream is undefined behavior. Depending on the compiler, you + // may get "0", "(nil)", "(null)", or an access violation. To + // ensure consistent result across compilers, we always treat NULL + // as "(null)". + template <typename T> + inline Message& operator <<(T* const& pointer) { // NOLINT + if (pointer == NULL) { + *ss_ << "(null)"; + } else { + *ss_ << pointer; + } + return *this; + } +#endif // GTEST_OS_SYMBIAN - // Compares two C strings. Returns true iff they have the same content. - // - // Unlike strcmp(), this function can handle NULL argument(s). A - // NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool CStringEquals(const char* lhs, const char* rhs); + // Since the basic IO manipulators are overloaded for both narrow + // and wide streams, we have to provide this specialized definition + // of operator <<, even though its body is the same as the + // templatized version above. Without this definition, streaming + // endl or other basic IO manipulators to Message will confuse the + // compiler. + Message& operator <<(BasicNarrowIoManip val) { + *ss_ << val; + return *this; + } - // Converts a wide C string to a String using the UTF-8 encoding. - // NULL will be converted to "(null)". If an error occurred during - // the conversion, "(failed to convert from wide string)" is - // returned. - static String ShowWideCString(const wchar_t* wide_c_str); + // Instead of 1/0, we want to see true/false for bool values. + Message& operator <<(bool b) { + return *this << (b ? "true" : "false"); + } - // Similar to ShowWideCString(), except that this function encloses - // the converted string in double quotes. - static String ShowWideCStringQuoted(const wchar_t* wide_c_str); + // These two overloads allow streaming a wide C string to a Message + // using the UTF-8 encoding. + Message& operator <<(const wchar_t* wide_c_str); + Message& operator <<(wchar_t* wide_c_str); - // Compares two wide C strings. Returns true iff they have the same - // content. - // - // Unlike wcscmp(), this function can handle NULL argument(s). A - // NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool WideCStringEquals(const wchar_t* lhs, const wchar_t* rhs); +#if GTEST_HAS_STD_WSTRING + // Converts the given wide string to a narrow string using the UTF-8 + // encoding, and streams the result to this Message object. + Message& operator <<(const ::std::wstring& wstr); +#endif // GTEST_HAS_STD_WSTRING - // Compares two C strings, ignoring case. Returns true iff they - // have the same content. - // - // Unlike strcasecmp(), this function can handle NULL argument(s). - // A NULL C string is considered different to any non-NULL C string, - // including the empty string. - static bool CaseInsensitiveCStringEquals(const char* lhs, - const char* rhs); - - // Compares two wide C strings, ignoring case. Returns true iff they - // have the same content. - // - // Unlike wcscasecmp(), this function can handle NULL argument(s). - // A NULL C string is considered different to any non-NULL wide C string, - // including the empty string. - // NB: The implementations on different platforms slightly differ. - // On windows, this method uses _wcsicmp which compares according to LC_CTYPE - // environment variable. On GNU platform this method uses wcscasecmp - // which compares according to LC_CTYPE category of the current locale. - // On MacOS X, it uses towlower, which also uses LC_CTYPE category of the - // current locale. - static bool CaseInsensitiveWideCStringEquals(const wchar_t* lhs, - const wchar_t* rhs); +#if GTEST_HAS_GLOBAL_WSTRING + // Converts the given wide string to a narrow string using the UTF-8 + // encoding, and streams the result to this Message object. + Message& operator <<(const ::wstring& wstr); +#endif // GTEST_HAS_GLOBAL_WSTRING - // Formats a list of arguments to a String, using the same format - // spec string as for printf. - // - // We do not use the StringPrintf class as it is not universally - // available. + // Gets the text streamed to this object so far as an std::string. + // Each '\0' character in the buffer is replaced with "\\0". // - // The result is limited to 4096 characters (including the tailing - // 0). If 4096 characters are not enough to format the input, - // "<buffer exceeded>" is returned. - static String Format(const char* format, ...); - - // C'tors + // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. + std::string GetString() const; - // The default c'tor constructs a NULL string. - String() : c_str_(NULL), length_(0) {} + private: - // Constructs a String by cloning a 0-terminated C string. - String(const char* a_c_str) { // NOLINT - if (a_c_str == NULL) { - c_str_ = NULL; - length_ = 0; +#if GTEST_OS_SYMBIAN + // These are needed as the Nokia Symbian Compiler cannot decide between + // const T& and const T* in a function template. The Nokia compiler _can_ + // decide between class template specializations for T and T*, so a + // tr1::type_traits-like is_pointer works, and we can overload on that. + template <typename T> + inline void StreamHelper(internal::true_type /*is_pointer*/, T* pointer) { + if (pointer == NULL) { + *ss_ << "(null)"; } else { - ConstructNonNull(a_c_str, strlen(a_c_str)); + *ss_ << pointer; } } - - // Constructs a String by copying a given number of chars from a - // buffer. E.g. String("hello", 3) creates the string "hel", - // String("a\0bcd", 4) creates "a\0bc", String(NULL, 0) creates "", - // and String(NULL, 1) results in access violation. - String(const char* buffer, size_t a_length) { - ConstructNonNull(buffer, a_length); + template <typename T> + inline void StreamHelper(internal::false_type /*is_pointer*/, + const T& value) { + // See the comments in Message& operator <<(const T&) above for why + // we need this using statement. + using ::operator <<; + *ss_ << value; } +#endif // GTEST_OS_SYMBIAN - // The copy c'tor creates a new copy of the string. The two - // String objects do not share content. - String(const String& str) : c_str_(NULL), length_(0) { *this = str; } - - // D'tor. String is intended to be a final class, so the d'tor - // doesn't need to be virtual. - ~String() { delete[] c_str_; } - - // Allows a String to be implicitly converted to an ::std::string or - // ::string, and vice versa. Converting a String containing a NULL - // pointer to ::std::string or ::string is undefined behavior. - // Converting a ::std::string or ::string containing an embedded NUL - // character to a String will result in the prefix up to the first - // NUL character. - String(const ::std::string& str) { - ConstructNonNull(str.c_str(), str.length()); - } + // We'll hold the text streamed to this object here. + const internal::scoped_ptr< ::std::stringstream> ss_; - operator ::std::string() const { return ::std::string(c_str(), length()); } + // We declare (but don't implement) this to prevent the compiler + // from implementing the assignment operator. + void operator=(const Message&); +}; -#if GTEST_HAS_GLOBAL_STRING - String(const ::string& str) { - ConstructNonNull(str.c_str(), str.length()); - } +// Streams a Message to an ostream. +inline std::ostream& operator <<(std::ostream& os, const Message& sb) { + return os << sb.GetString(); +} - operator ::string() const { return ::string(c_str(), length()); } -#endif // GTEST_HAS_GLOBAL_STRING +namespace internal { - // Returns true iff this is an empty string (i.e. ""). - bool empty() const { return (c_str() != NULL) && (length() == 0); } +// Converts a streamable value to an std::string. A NULL pointer is +// converted to "(null)". When the input value is a ::string, +// ::std::string, ::wstring, or ::std::wstring object, each NUL +// character in it is replaced with "\\0". +template <typename T> +std::string StreamableToString(const T& streamable) { + return (Message() << streamable).GetString(); +} - // Compares this with another String. - // Returns < 0 if this is less than rhs, 0 if this is equal to rhs, or > 0 - // if this is greater than rhs. - int Compare(const String& rhs) const; +} // namespace internal +} // namespace testing - // Returns true iff this String equals the given C string. A NULL - // string and a non-NULL string are considered not equal. - bool operator==(const char* a_c_str) const { return Compare(a_c_str) == 0; } +#endif // GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ +// Copyright 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee) +// +// The Google C++ Testing Framework (Google Test) +// +// This header file declares the String class and functions used internally by +// Google Test. They are subject to change without notice. They should not used +// by code external to Google Test. +// +// This header file is #included by <gtest/internal/gtest-internal.h>. +// It should not be #included by other files. - // Returns true iff this String is less than the given String. A - // NULL string is considered less than "". - bool operator<(const String& rhs) const { return Compare(rhs) < 0; } +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ - // Returns true iff this String doesn't equal the given C string. A NULL - // string and a non-NULL string are considered not equal. - bool operator!=(const char* a_c_str) const { return !(*this == a_c_str); } +#ifdef __BORLANDC__ +// string.h is not guaranteed to provide strcpy on C++ Builder. +# include <mem.h> +#endif - // Returns true iff this String ends with the given suffix. *Any* - // String is considered to end with a NULL or empty suffix. - bool EndsWith(const char* suffix) const; +#include <string.h> +#include <string> - // Returns true iff this String ends with the given suffix, not considering - // case. Any String is considered to end with a NULL or empty suffix. - bool EndsWithCaseInsensitive(const char* suffix) const; - // Returns the length of the encapsulated string, or 0 if the - // string is NULL. - size_t length() const { return length_; } +namespace testing { +namespace internal { - // Gets the 0-terminated C string this String object represents. - // The String object still owns the string. Therefore the caller - // should NOT delete the return value. - const char* c_str() const { return c_str_; } +// String - an abstract class holding static string utilities. +class GTEST_API_ String { + public: + // Static utility methods - // Assigns a C string to this object. Self-assignment works. - const String& operator=(const char* a_c_str) { - return *this = String(a_c_str); - } + // Clones a 0-terminated C string, allocating memory using new. The + // caller is responsible for deleting the return value using + // delete[]. Returns the cloned string, or NULL if the input is + // NULL. + // + // This is different from strdup() in string.h, which allocates + // memory using malloc(). + static const char* CloneCString(const char* c_str); - // Assigns a String object to this object. Self-assignment works. - const String& operator=(const String& rhs) { - if (this != &rhs) { - delete[] c_str_; - if (rhs.c_str() == NULL) { - c_str_ = NULL; - length_ = 0; - } else { - ConstructNonNull(rhs.c_str(), rhs.length()); - } - } +#if GTEST_OS_WINDOWS_MOBILE + // Windows CE does not have the 'ANSI' versions of Win32 APIs. To be + // able to pass strings to Win32 APIs on CE we need to convert them + // to 'Unicode', UTF-16. - return *this; - } + // Creates a UTF-16 wide string from the given ANSI string, allocating + // memory using new. The caller is responsible for deleting the return + // value using delete[]. Returns the wide string, or NULL if the + // input is NULL. + // + // The wide string is created using the ANSI codepage (CP_ACP) to + // match the behaviour of the ANSI versions of Win32 calls and the + // C runtime. + static LPCWSTR AnsiToUtf16(const char* c_str); - private: - // Constructs a non-NULL String from the given content. This - // function can only be called when c_str_ has not been allocated. - // ConstructNonNull(NULL, 0) results in an empty string (""). - // ConstructNonNull(NULL, non_zero) is undefined behavior. - void ConstructNonNull(const char* buffer, size_t a_length) { - char* const str = new char[a_length + 1]; - memcpy(str, buffer, a_length); - str[a_length] = '\0'; - c_str_ = str; - length_ = a_length; - } + // Creates an ANSI string from the given wide string, allocating + // memory using new. The caller is responsible for deleting the return + // value using delete[]. Returns the ANSI string, or NULL if the + // input is NULL. + // + // The returned string is created using the ANSI codepage (CP_ACP) to + // match the behaviour of the ANSI versions of Win32 calls and the + // C runtime. + static const char* Utf16ToAnsi(LPCWSTR utf16_str); +#endif - const char* c_str_; - size_t length_; -}; // class String + // Compares two C strings. Returns true iff they have the same content. + // + // Unlike strcmp(), this function can handle NULL argument(s). A + // NULL C string is considered different to any non-NULL C string, + // including the empty string. + static bool CStringEquals(const char* lhs, const char* rhs); -// Streams a String to an ostream. Each '\0' character in the String -// is replaced with "\\0". -inline ::std::ostream& operator<<(::std::ostream& os, const String& str) { - if (str.c_str() == NULL) { - os << "(null)"; - } else { - const char* const c_str = str.c_str(); - for (size_t i = 0; i != str.length(); i++) { - if (c_str[i] == '\0') { - os << "\\0"; - } else { - os << c_str[i]; - } - } - } - return os; -} + // Converts a wide C string to a String using the UTF-8 encoding. + // NULL will be converted to "(null)". If an error occurred during + // the conversion, "(failed to convert from wide string)" is + // returned. + static std::string ShowWideCString(const wchar_t* wide_c_str); -// Gets the content of the stringstream's buffer as a String. Each '\0' -// character in the buffer is replaced with "\\0". -GTEST_API_ String StringStreamToString(::std::stringstream* stream); + // Compares two wide C strings. Returns true iff they have the same + // content. + // + // Unlike wcscmp(), this function can handle NULL argument(s). A + // NULL C string is considered different to any non-NULL C string, + // including the empty string. + static bool WideCStringEquals(const wchar_t* lhs, const wchar_t* rhs); -// Converts a streamable value to a String. A NULL pointer is -// converted to "(null)". When the input value is a ::string, -// ::std::string, ::wstring, or ::std::wstring object, each NUL -// character in it is replaced with "\\0". + // Compares two C strings, ignoring case. Returns true iff they + // have the same content. + // + // Unlike strcasecmp(), this function can handle NULL argument(s). + // A NULL C string is considered different to any non-NULL C string, + // including the empty string. + static bool CaseInsensitiveCStringEquals(const char* lhs, + const char* rhs); -// Declared here but defined in gtest.h, so that it has access -// to the definition of the Message class, required by the ARM -// compiler. -template <typename T> -String StreamableToString(const T& streamable); + // Compares two wide C strings, ignoring case. Returns true iff they + // have the same content. + // + // Unlike wcscasecmp(), this function can handle NULL argument(s). + // A NULL C string is considered different to any non-NULL wide C string, + // including the empty string. + // NB: The implementations on different platforms slightly differ. + // On windows, this method uses _wcsicmp which compares according to LC_CTYPE + // environment variable. On GNU platform this method uses wcscasecmp + // which compares according to LC_CTYPE category of the current locale. + // On MacOS X, it uses towlower, which also uses LC_CTYPE category of the + // current locale. + static bool CaseInsensitiveWideCStringEquals(const wchar_t* lhs, + const wchar_t* rhs); + + // Returns true iff the given string ends with the given suffix, ignoring + // case. Any string is considered to end with an empty suffix. + static bool EndsWithCaseInsensitive( + const std::string& str, const std::string& suffix); + + // Formats an int value as "%02d". + static std::string FormatIntWidth2(int value); // "%02d" for width == 2 + + // Formats an int value as "%X". + static std::string FormatHexInt(int value); + + // Formats a byte as "%02X". + static std::string FormatByte(unsigned char value); + + private: + String(); // Not meant to be instantiated. +}; // class String + +// Gets the content of the stringstream's buffer as an std::string. Each '\0' +// character in the buffer is replaced with "\\0". +GTEST_API_ std::string StringStreamToString(::std::stringstream* stream); } // namespace internal } // namespace testing @@ -3260,11 +3548,7 @@ class GTEST_API_ FilePath { FilePath() : pathname_("") { } FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) { } - explicit FilePath(const char* pathname) : pathname_(pathname) { - Normalize(); - } - - explicit FilePath(const String& pathname) : pathname_(pathname) { + explicit FilePath(const std::string& pathname) : pathname_(pathname) { Normalize(); } @@ -3277,7 +3561,7 @@ class GTEST_API_ FilePath { pathname_ = rhs.pathname_; } - String ToString() const { return pathname_; } + const std::string& string() const { return pathname_; } const char* c_str() const { return pathname_.c_str(); } // Returns the current working directory, or "" if unsuccessful. @@ -3310,8 +3594,8 @@ class GTEST_API_ FilePath { const FilePath& base_name, const char* extension); - // Returns true iff the path is NULL or "". - bool IsEmpty() const { return c_str() == NULL || *c_str() == '\0'; } + // Returns true iff the path is "". + bool IsEmpty() const { return pathname_.empty(); } // If input name has a trailing separator character, removes it and returns // the name, otherwise return the name string unmodified. @@ -3400,7 +3684,7 @@ class GTEST_API_ FilePath { // separators. Returns NULL if no path separator was found. const char* FindLastPathSeparator() const; - String pathname_; + std::string pathname_; }; // class FilePath } // namespace internal @@ -3456,11 +3740,11 @@ class GTEST_API_ FilePath { // #ifdef __GNUC__ is too general here. It is possible to use gcc without using // libstdc++ (which is where cxxabi.h comes from). -# ifdef __GLIBCXX__ +# if GTEST_HAS_CXXABI_H_ # include <cxxabi.h> # elif defined(__HP_aCC) # include <acxx_demangle.h> -# endif // __GLIBCXX__ +# endif // GTEST_HASH_CXXABI_H_ namespace testing { namespace internal { @@ -3469,24 +3753,24 @@ namespace internal { // NB: This function is also used in Google Mock, so don't move it inside of // the typed-test-only section below. template <typename T> -String GetTypeName() { +std::string GetTypeName() { # if GTEST_HAS_RTTI const char* const name = typeid(T).name(); -# if defined(__GLIBCXX__) || defined(__HP_aCC) +# if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) int status = 0; // gcc's implementation of typeid(T).name() mangles the type name, // so we have to demangle it. -# ifdef __GLIBCXX__ +# if GTEST_HAS_CXXABI_H_ using abi::__cxa_demangle; -# endif // __GLIBCXX__ +# endif // GTEST_HAS_CXXABI_H_ char* const readable_name = __cxa_demangle(name, 0, 0, &status); - const String name_str(status == 0 ? readable_name : name); + const std::string name_str(status == 0 ? readable_name : name); free(readable_name); return name_str; # else return name; -# endif // __GLIBCXX__ || __HP_aCC +# endif // GTEST_HAS_CXXABI_H_ || __HP_aCC # else @@ -6707,7 +6991,9 @@ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, // INSTANTIATE_TYPED_TEST_CASE_P(). template <typename T> -struct TypeList { typedef Types1<T> type; }; +struct TypeList { + typedef Types1<T> type; +}; template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, @@ -6747,36 +7033,6 @@ struct TypeList<Types<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, #define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar) #define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar -// Google Test defines the testing::Message class to allow construction of -// test messages via the << operator. The idea is that anything -// streamable to std::ostream can be streamed to a testing::Message. -// This allows a user to use his own types in Google Test assertions by -// overloading the << operator. -// -// util/gtl/stl_logging-inl.h overloads << for STL containers. These -// overloads cannot be defined in the std namespace, as that will be -// undefined behavior. Therefore, they are defined in the global -// namespace instead. -// -// C++'s symbol lookup rule (i.e. Koenig lookup) says that these -// overloads are visible in either the std namespace or the global -// namespace, but not other namespaces, including the testing -// namespace which Google Test's Message class is in. -// -// To allow STL containers (and other types that has a << operator -// defined in the global namespace) to be used in Google Test assertions, -// testing::Message must access the custom << operator from the global -// namespace. Hence this helper function. -// -// Note: Jeffrey Yasskin suggested an alternative fix by "using -// ::operator<<;" in the definition of Message's operator<<. That fix -// doesn't require a helper function, but unfortunately doesn't -// compile with MSVC. -template <typename T> -inline void GTestStreamToHelper(std::ostream* os, const T& val) { - *os << val; -} - class ProtocolMessage; namespace proto2 { class Message; } @@ -6802,17 +7058,12 @@ class TestInfoImpl; // Opaque implementation of TestInfo class UnitTestImpl; // Opaque implementation of UnitTest // How many times InitGoogleTest() has been called. -extern int g_init_gtest_count; +GTEST_API_ extern int g_init_gtest_count; // The text used in failure messages to indicate the start of the // stack trace. GTEST_API_ extern const char kStackTraceMarker[]; -// A secret type that Google Test users don't know about. It has no -// definition on purpose. Therefore it's impossible to create a -// Secret object, which is what we want. -class Secret; - // Two overloaded helpers for checking at compile time whether an // expression is a null pointer literal (i.e. NULL or any 0-valued // compile-time integral constant). Their return values have @@ -6843,8 +7094,23 @@ char (&IsNullLiteralHelper(...))[2]; // NOLINT #endif // GTEST_ELLIPSIS_NEEDS_POD_ // Appends the user-supplied message to the Google-Test-generated message. -GTEST_API_ String AppendUserMessage(const String& gtest_msg, - const Message& user_msg); +GTEST_API_ std::string AppendUserMessage( + const std::string& gtest_msg, const Message& user_msg); + +#if GTEST_HAS_EXCEPTIONS + +// This exception is thrown by (and only by) a failed Google Test +// assertion when GTEST_FLAG(throw_on_failure) is true (if exceptions +// are enabled). We derive it from std::runtime_error, which is for +// errors presumably detectable only at run time. Since +// std::runtime_error inherits from std::exception, many testing +// frameworks know how to extract and print the message inside it. +class GTEST_API_ GoogleTestFailureException : public ::std::runtime_error { + public: + explicit GoogleTestFailureException(const TestPartResult& failure); +}; + +#endif // GTEST_HAS_EXCEPTIONS // A helper class for creating scoped traces in user programs. class GTEST_API_ ScopedTrace { @@ -6865,77 +7131,6 @@ class GTEST_API_ ScopedTrace { // c'tor and d'tor. Therefore it doesn't // need to be used otherwise. -// Converts a streamable value to a String. A NULL pointer is -// converted to "(null)". When the input value is a ::string, -// ::std::string, ::wstring, or ::std::wstring object, each NUL -// character in it is replaced with "\\0". -// Declared here but defined in gtest.h, so that it has access -// to the definition of the Message class, required by the ARM -// compiler. -template <typename T> -String StreamableToString(const T& streamable); - -// The Symbian compiler has a bug that prevents it from selecting the -// correct overload of FormatForComparisonFailureMessage (see below) -// unless we pass the first argument by reference. If we do that, -// however, Visual Age C++ 10.1 generates a compiler error. Therefore -// we only apply the work-around for Symbian. -#if defined(__SYMBIAN32__) -# define GTEST_CREF_WORKAROUND_ const& -#else -# define GTEST_CREF_WORKAROUND_ -#endif - -// When this operand is a const char* or char*, if the other operand -// is a ::std::string or ::string, we print this operand as a C string -// rather than a pointer (we do the same for wide strings); otherwise -// we print it as a pointer to be safe. - -// This internal macro is used to avoid duplicated code. -#define GTEST_FORMAT_IMPL_(operand2_type, operand1_printer)\ -inline String FormatForComparisonFailureMessage(\ - operand2_type::value_type* GTEST_CREF_WORKAROUND_ str, \ - const operand2_type& /*operand2*/) {\ - return operand1_printer(str);\ -}\ -inline String FormatForComparisonFailureMessage(\ - const operand2_type::value_type* GTEST_CREF_WORKAROUND_ str, \ - const operand2_type& /*operand2*/) {\ - return operand1_printer(str);\ -} - -GTEST_FORMAT_IMPL_(::std::string, String::ShowCStringQuoted) -#if GTEST_HAS_STD_WSTRING -GTEST_FORMAT_IMPL_(::std::wstring, String::ShowWideCStringQuoted) -#endif // GTEST_HAS_STD_WSTRING - -#if GTEST_HAS_GLOBAL_STRING -GTEST_FORMAT_IMPL_(::string, String::ShowCStringQuoted) -#endif // GTEST_HAS_GLOBAL_STRING -#if GTEST_HAS_GLOBAL_WSTRING -GTEST_FORMAT_IMPL_(::wstring, String::ShowWideCStringQuoted) -#endif // GTEST_HAS_GLOBAL_WSTRING - -#undef GTEST_FORMAT_IMPL_ - -// The next four overloads handle the case where the operand being -// printed is a char/wchar_t pointer and the other operand is not a -// string/wstring object. In such cases, we just print the operand as -// a pointer to be safe. -#define GTEST_FORMAT_CHAR_PTR_IMPL_(CharType) \ - template <typename T> \ - String FormatForComparisonFailureMessage(CharType* GTEST_CREF_WORKAROUND_ p, \ - const T&) { \ - return PrintToString(static_cast<const void*>(p)); \ - } - -GTEST_FORMAT_CHAR_PTR_IMPL_(char) -GTEST_FORMAT_CHAR_PTR_IMPL_(const char) -GTEST_FORMAT_CHAR_PTR_IMPL_(wchar_t) -GTEST_FORMAT_CHAR_PTR_IMPL_(const wchar_t) - -#undef GTEST_FORMAT_CHAR_PTR_IMPL_ - // Constructs and returns the message for an equality assertion // (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure. // @@ -6953,12 +7148,12 @@ GTEST_FORMAT_CHAR_PTR_IMPL_(const wchar_t) // be inserted into the message. GTEST_API_ AssertionResult EqFailure(const char* expected_expression, const char* actual_expression, - const String& expected_value, - const String& actual_value, + const std::string& expected_value, + const std::string& actual_value, bool ignoring_case); // Constructs a failure message for Boolean assertions such as EXPECT_TRUE. -GTEST_API_ String GetBoolAssertionFailureMessage( +GTEST_API_ std::string GetBoolAssertionFailureMessage( const AssertionResult& assertion_result, const char* expression_text, const char* actual_predicate_value, @@ -7033,7 +7228,7 @@ class FloatingPoint { // bits. Therefore, 4 should be enough for ordinary use. // // See the following article for more details on ULP: - // http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm. + // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ static const size_t kMaxUlps = 4; // Constructs a FloatingPoint from a raw floating-point number. @@ -7060,6 +7255,9 @@ class FloatingPoint { return ReinterpretBits(kExponentBitMask); } + // Returns the maximum representable finite floating-point number. + static RawType Max(); + // Non-static methods // Returns the bits that represents this number. @@ -7140,6 +7338,13 @@ class FloatingPoint { FloatingPointUnion u_; }; +// We cannot use std::numeric_limits<T>::max() as it clashes with the max() +// macro defined by <windows.h>. +template <> +inline float FloatingPoint<float>::Max() { return FLT_MAX; } +template <> +inline double FloatingPoint<double>::Max() { return DBL_MAX; } + // Typedefs the instances of the FloatingPoint template class that we // care to use. typedef FloatingPoint<float> Float; @@ -7234,7 +7439,7 @@ typedef void (*TearDownTestCaseFunc)(); // test_case_name: name of the test case // name: name of the test // type_param the name of the test's type parameter, or NULL if -// this is not a typed or a type-parameterized test. +// this is not a typed or a type-parameterized test. // value_param text representation of the test's value parameter, // or NULL if this is not a type-parameterized test. // fixture_class_id: ID of the test fixture class @@ -7244,7 +7449,8 @@ typedef void (*TearDownTestCaseFunc)(); // The newly created TestInfo instance will assume // ownership of the factory object. GTEST_API_ TestInfo* MakeAndRegisterTestInfo( - const char* test_case_name, const char* name, + const char* test_case_name, + const char* name, const char* type_param, const char* value_param, TypeId fixture_class_id, @@ -7304,9 +7510,9 @@ inline const char* SkipComma(const char* str) { // Returns the prefix of 'str' before the first comma in it; returns // the entire string if it contains no comma. -inline String GetPrefixUntilComma(const char* str) { +inline std::string GetPrefixUntilComma(const char* str) { const char* comma = strchr(str, ','); - return comma == NULL ? String(str) : String(str, comma - str); + return comma == NULL ? str : std::string(str, comma); } // TypeParameterizedTest<Fixture, TestSel, Types>::Register() @@ -7332,8 +7538,8 @@ class TypeParameterizedTest { // First, registers the first type-parameterized test in the type // list. MakeAndRegisterTestInfo( - String::Format("%s%s%s/%d", prefix, prefix[0] == '\0' ? "" : "/", - case_name, index).c_str(), + (std::string(prefix) + (prefix[0] == '\0' ? "" : "/") + case_name + "/" + + StreamableToString(index)).c_str(), GetPrefixUntilComma(test_names).c_str(), GetTypeName<Type>().c_str(), NULL, // No value parameter. @@ -7391,7 +7597,7 @@ class TypeParameterizedTestCase<Fixture, Templates0, Types> { #endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P -// Returns the current OS stack trace as a String. +// Returns the current OS stack trace as an std::string. // // The maximum number of stack frames to be included is specified by // the gtest_stack_trace_depth flag. The skip_count parameter @@ -7401,8 +7607,8 @@ class TypeParameterizedTestCase<Fixture, Templates0, Types> { // For example, if Foo() calls Bar(), which in turn calls // GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in // the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't. -GTEST_API_ String GetCurrentOsStackTraceExceptTop(UnitTest* unit_test, - int skip_count); +GTEST_API_ std::string GetCurrentOsStackTraceExceptTop( + UnitTest* unit_test, int skip_count); // Helpers for suppressing warnings on unreachable code or constant // condition. @@ -7477,14 +7683,20 @@ struct RemoveConst<const T> { typedef T type; }; // NOLINT // MSVC 8.0, Sun C++, and IBM XL C++ have a bug which causes the above // definition to fail to remove the const in 'const int[3]' and 'const // char[3][4]'. The following specialization works around the bug. -// However, it causes trouble with GCC and thus needs to be -// conditionally compiled. -#if defined(_MSC_VER) || defined(__SUNPRO_CC) || defined(__IBMCPP__) template <typename T, size_t N> struct RemoveConst<const T[N]> { typedef typename RemoveConst<T>::type type[N]; }; -#endif + +#if defined(_MSC_VER) && _MSC_VER < 1400 +// This is the only specialization that allows VC++ 7.1 to remove const in +// 'const int[3] and 'const int[3][4]'. However, it causes trouble with GCC +// and thus needs to be conditionally compiled. +template <typename T, size_t N> +struct RemoveConst<T[N]> { + typedef typename RemoveConst<T>::type type[N]; +}; +#endif // A handy wrapper around RemoveConst that works when the argument // T depends on template parameters. @@ -8072,11 +8284,11 @@ class GTEST_API_ DeathTest { // the last death test. static const char* LastMessage(); - static void set_last_death_test_message(const String& message); + static void set_last_death_test_message(const std::string& message); private: // A string containing a description of the outcome of the last death test. - static String last_death_test_message_; + static std::string last_death_test_message_; GTEST_DISALLOW_COPY_AND_ASSIGN_(DeathTest); }; @@ -8162,12 +8374,23 @@ GTEST_API_ bool ExitedUnsuccessfully(int exit_status); // The symbol "fail" here expands to something into which a message // can be streamed. +// This macro is for implementing ASSERT/EXPECT_DEBUG_DEATH when compiled in +// NDEBUG mode. In this case we need the statements to be executed, the regex is +// ignored, and the macro must accept a streamed message even though the message +// is never printed. +# define GTEST_EXECUTE_STATEMENT_(statement, regex) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (::testing::internal::AlwaysTrue()) { \ + GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ + } else \ + ::testing::Message() + // A class representing the parsed contents of the // --gtest_internal_run_death_test flag, as it existed when // RUN_ALL_TESTS was called. class InternalRunDeathTestFlag { public: - InternalRunDeathTestFlag(const String& a_file, + InternalRunDeathTestFlag(const std::string& a_file, int a_line, int an_index, int a_write_fd) @@ -8179,13 +8402,13 @@ class InternalRunDeathTestFlag { posix::Close(write_fd_); } - String file() const { return file_; } + const std::string& file() const { return file_; } int line() const { return line_; } int index() const { return index_; } int write_fd() const { return write_fd_; } private: - String file_; + std::string file_; int line_; int index_; int write_fd_; @@ -8263,6 +8486,17 @@ GTEST_DECLARE_string_(death_test_style); #if GTEST_HAS_DEATH_TEST +namespace internal { + +// Returns a Boolean value indicating whether the caller is currently +// executing in the context of the death test child process. Tools such as +// Valgrind heap checkers may need this to modify their behavior in death +// tests. IMPORTANT: This is an internal utility. Using it may break the +// implementation of death tests. User code MUST NOT use it. +GTEST_API_ bool InDeathTestChild(); + +} // namespace internal + // The following macros are useful for writing death tests. // Here's what happens when an ASSERT_DEATH* or EXPECT_DEATH* is @@ -8287,7 +8521,7 @@ GTEST_DECLARE_string_(death_test_style); // for (int i = 0; i < 5; i++) { // EXPECT_DEATH(server.ProcessRequest(i), // "Invalid request .* in ProcessRequest()") -// << "Failed to die on request " << i); +// << "Failed to die on request " << i; // } // // ASSERT_EXIT(server.ExitNow(), ::testing::ExitedWithCode(0), "Exiting"); @@ -8387,340 +8621,112 @@ GTEST_DECLARE_string_(death_test_style); // Two predicate classes that can be used in {ASSERT,EXPECT}_EXIT*: -// Tests that an exit code describes a normal exit with a given exit code. -class GTEST_API_ ExitedWithCode { - public: - explicit ExitedWithCode(int exit_code); - bool operator()(int exit_status) const; - private: - // No implementation - assignment is unsupported. - void operator=(const ExitedWithCode& other); - - const int exit_code_; -}; - -# if !GTEST_OS_WINDOWS -// Tests that an exit code describes an exit due to termination by a -// given signal. -class GTEST_API_ KilledBySignal { - public: - explicit KilledBySignal(int signum); - bool operator()(int exit_status) const; - private: - const int signum_; -}; -# endif // !GTEST_OS_WINDOWS - -// EXPECT_DEBUG_DEATH asserts that the given statements die in debug mode. -// The death testing framework causes this to have interesting semantics, -// since the sideeffects of the call are only visible in opt mode, and not -// in debug mode. -// -// In practice, this can be used to test functions that utilize the -// LOG(DFATAL) macro using the following style: -// -// int DieInDebugOr12(int* sideeffect) { -// if (sideeffect) { -// *sideeffect = 12; -// } -// LOG(DFATAL) << "death"; -// return 12; -// } -// -// TEST(TestCase, TestDieOr12WorksInDgbAndOpt) { -// int sideeffect = 0; -// // Only asserts in dbg. -// EXPECT_DEBUG_DEATH(DieInDebugOr12(&sideeffect), "death"); -// -// #ifdef NDEBUG -// // opt-mode has sideeffect visible. -// EXPECT_EQ(12, sideeffect); -// #else -// // dbg-mode no visible sideeffect. -// EXPECT_EQ(0, sideeffect); -// #endif -// } -// -// This will assert that DieInDebugReturn12InOpt() crashes in debug -// mode, usually due to a DCHECK or LOG(DFATAL), but returns the -// appropriate fallback value (12 in this case) in opt mode. If you -// need to test that a function has appropriate side-effects in opt -// mode, include assertions against the side-effects. A general -// pattern for this is: -// -// EXPECT_DEBUG_DEATH({ -// // Side-effects here will have an effect after this statement in -// // opt mode, but none in debug mode. -// EXPECT_EQ(12, DieInDebugOr12(&sideeffect)); -// }, "death"); -// -# ifdef NDEBUG - -# define EXPECT_DEBUG_DEATH(statement, regex) \ - do { statement; } while (::testing::internal::AlwaysFalse()) - -# define ASSERT_DEBUG_DEATH(statement, regex) \ - do { statement; } while (::testing::internal::AlwaysFalse()) - -# else - -# define EXPECT_DEBUG_DEATH(statement, regex) \ - EXPECT_DEATH(statement, regex) - -# define ASSERT_DEBUG_DEATH(statement, regex) \ - ASSERT_DEATH(statement, regex) - -# endif // NDEBUG for EXPECT_DEBUG_DEATH -#endif // GTEST_HAS_DEATH_TEST - -// EXPECT_DEATH_IF_SUPPORTED(statement, regex) and -// ASSERT_DEATH_IF_SUPPORTED(statement, regex) expand to real death tests if -// death tests are supported; otherwise they just issue a warning. This is -// useful when you are combining death test assertions with normal test -// assertions in one test. -#if GTEST_HAS_DEATH_TEST -# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ - EXPECT_DEATH(statement, regex) -# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ - ASSERT_DEATH(statement, regex) -#else -# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ - GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, ) -# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ - GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, return) -#endif - -} // namespace testing - -#endif // GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ -// Copyright 2005, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Author: wan@google.com (Zhanyong Wan) -// -// The Google C++ Testing Framework (Google Test) -// -// This header file defines the Message class. -// -// IMPORTANT NOTE: Due to limitation of the C++ language, we have to -// leave some internal implementation details in this header file. -// They are clearly marked by comments like this: -// -// // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. -// -// Such code is NOT meant to be used by a user directly, and is subject -// to CHANGE WITHOUT NOTICE. Therefore DO NOT DEPEND ON IT in a user -// program! - -#ifndef GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ -#define GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ - -#include <limits> - - -namespace testing { - -// The Message class works like an ostream repeater. -// -// Typical usage: -// -// 1. You stream a bunch of values to a Message object. -// It will remember the text in a stringstream. -// 2. Then you stream the Message object to an ostream. -// This causes the text in the Message to be streamed -// to the ostream. -// -// For example; -// -// testing::Message foo; -// foo << 1 << " != " << 2; -// std::cout << foo; -// -// will print "1 != 2". -// -// Message is not intended to be inherited from. In particular, its -// destructor is not virtual. -// -// Note that stringstream behaves differently in gcc and in MSVC. You -// can stream a NULL char pointer to it in the former, but not in the -// latter (it causes an access violation if you do). The Message -// class hides this difference by treating a NULL char pointer as -// "(null)". -class GTEST_API_ Message { - private: - // The type of basic IO manipulators (endl, ends, and flush) for - // narrow streams. - typedef std::ostream& (*BasicNarrowIoManip)(std::ostream&); - - public: - // Constructs an empty Message. - // We allocate the stringstream separately because otherwise each use of - // ASSERT/EXPECT in a procedure adds over 200 bytes to the procedure's - // stack frame leading to huge stack frames in some cases; gcc does not reuse - // the stack space. - Message() : ss_(new ::std::stringstream) { - // By default, we want there to be enough precision when printing - // a double to a Message. - *ss_ << std::setprecision(std::numeric_limits<double>::digits10 + 2); - } - - // Copy constructor. - Message(const Message& msg) : ss_(new ::std::stringstream) { // NOLINT - *ss_ << msg.GetString(); - } - - // Constructs a Message from a C-string. - explicit Message(const char* str) : ss_(new ::std::stringstream) { - *ss_ << str; - } - -#if GTEST_OS_SYMBIAN - // Streams a value (either a pointer or not) to this object. - template <typename T> - inline Message& operator <<(const T& value) { - StreamHelper(typename internal::is_pointer<T>::type(), value); - return *this; - } -#else - // Streams a non-pointer value to this object. - template <typename T> - inline Message& operator <<(const T& val) { - ::GTestStreamToHelper(ss_.get(), val); - return *this; - } - - // Streams a pointer value to this object. - // - // This function is an overload of the previous one. When you - // stream a pointer to a Message, this definition will be used as it - // is more specialized. (The C++ Standard, section - // [temp.func.order].) If you stream a non-pointer, then the - // previous definition will be used. - // - // The reason for this overload is that streaming a NULL pointer to - // ostream is undefined behavior. Depending on the compiler, you - // may get "0", "(nil)", "(null)", or an access violation. To - // ensure consistent result across compilers, we always treat NULL - // as "(null)". - template <typename T> - inline Message& operator <<(T* const& pointer) { // NOLINT - if (pointer == NULL) { - *ss_ << "(null)"; - } else { - ::GTestStreamToHelper(ss_.get(), pointer); - } - return *this; - } -#endif // GTEST_OS_SYMBIAN - - // Since the basic IO manipulators are overloaded for both narrow - // and wide streams, we have to provide this specialized definition - // of operator <<, even though its body is the same as the - // templatized version above. Without this definition, streaming - // endl or other basic IO manipulators to Message will confuse the - // compiler. - Message& operator <<(BasicNarrowIoManip val) { - *ss_ << val; - return *this; - } - - // Instead of 1/0, we want to see true/false for bool values. - Message& operator <<(bool b) { - return *this << (b ? "true" : "false"); - } +// Tests that an exit code describes a normal exit with a given exit code. +class GTEST_API_ ExitedWithCode { + public: + explicit ExitedWithCode(int exit_code); + bool operator()(int exit_status) const; + private: + // No implementation - assignment is unsupported. + void operator=(const ExitedWithCode& other); - // These two overloads allow streaming a wide C string to a Message - // using the UTF-8 encoding. - Message& operator <<(const wchar_t* wide_c_str) { - return *this << internal::String::ShowWideCString(wide_c_str); - } - Message& operator <<(wchar_t* wide_c_str) { - return *this << internal::String::ShowWideCString(wide_c_str); - } + const int exit_code_; +}; -#if GTEST_HAS_STD_WSTRING - // Converts the given wide string to a narrow string using the UTF-8 - // encoding, and streams the result to this Message object. - Message& operator <<(const ::std::wstring& wstr); -#endif // GTEST_HAS_STD_WSTRING +# if !GTEST_OS_WINDOWS +// Tests that an exit code describes an exit due to termination by a +// given signal. +class GTEST_API_ KilledBySignal { + public: + explicit KilledBySignal(int signum); + bool operator()(int exit_status) const; + private: + const int signum_; +}; +# endif // !GTEST_OS_WINDOWS -#if GTEST_HAS_GLOBAL_WSTRING - // Converts the given wide string to a narrow string using the UTF-8 - // encoding, and streams the result to this Message object. - Message& operator <<(const ::wstring& wstr); -#endif // GTEST_HAS_GLOBAL_WSTRING +// EXPECT_DEBUG_DEATH asserts that the given statements die in debug mode. +// The death testing framework causes this to have interesting semantics, +// since the sideeffects of the call are only visible in opt mode, and not +// in debug mode. +// +// In practice, this can be used to test functions that utilize the +// LOG(DFATAL) macro using the following style: +// +// int DieInDebugOr12(int* sideeffect) { +// if (sideeffect) { +// *sideeffect = 12; +// } +// LOG(DFATAL) << "death"; +// return 12; +// } +// +// TEST(TestCase, TestDieOr12WorksInDgbAndOpt) { +// int sideeffect = 0; +// // Only asserts in dbg. +// EXPECT_DEBUG_DEATH(DieInDebugOr12(&sideeffect), "death"); +// +// #ifdef NDEBUG +// // opt-mode has sideeffect visible. +// EXPECT_EQ(12, sideeffect); +// #else +// // dbg-mode no visible sideeffect. +// EXPECT_EQ(0, sideeffect); +// #endif +// } +// +// This will assert that DieInDebugReturn12InOpt() crashes in debug +// mode, usually due to a DCHECK or LOG(DFATAL), but returns the +// appropriate fallback value (12 in this case) in opt mode. If you +// need to test that a function has appropriate side-effects in opt +// mode, include assertions against the side-effects. A general +// pattern for this is: +// +// EXPECT_DEBUG_DEATH({ +// // Side-effects here will have an effect after this statement in +// // opt mode, but none in debug mode. +// EXPECT_EQ(12, DieInDebugOr12(&sideeffect)); +// }, "death"); +// +# ifdef NDEBUG - // Gets the text streamed to this object so far as a String. - // Each '\0' character in the buffer is replaced with "\\0". - // - // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - internal::String GetString() const { - return internal::StringStreamToString(ss_.get()); - } +# define EXPECT_DEBUG_DEATH(statement, regex) \ + GTEST_EXECUTE_STATEMENT_(statement, regex) - private: +# define ASSERT_DEBUG_DEATH(statement, regex) \ + GTEST_EXECUTE_STATEMENT_(statement, regex) -#if GTEST_OS_SYMBIAN - // These are needed as the Nokia Symbian Compiler cannot decide between - // const T& and const T* in a function template. The Nokia compiler _can_ - // decide between class template specializations for T and T*, so a - // tr1::type_traits-like is_pointer works, and we can overload on that. - template <typename T> - inline void StreamHelper(internal::true_type /*dummy*/, T* pointer) { - if (pointer == NULL) { - *ss_ << "(null)"; - } else { - ::GTestStreamToHelper(ss_.get(), pointer); - } - } - template <typename T> - inline void StreamHelper(internal::false_type /*dummy*/, const T& value) { - ::GTestStreamToHelper(ss_.get(), value); - } -#endif // GTEST_OS_SYMBIAN +# else - // We'll hold the text streamed to this object here. - const internal::scoped_ptr< ::std::stringstream> ss_; +# define EXPECT_DEBUG_DEATH(statement, regex) \ + EXPECT_DEATH(statement, regex) - // We declare (but don't implement) this to prevent the compiler - // from implementing the assignment operator. - void operator=(const Message&); -}; +# define ASSERT_DEBUG_DEATH(statement, regex) \ + ASSERT_DEATH(statement, regex) -// Streams a Message to an ostream. -inline std::ostream& operator <<(std::ostream& os, const Message& sb) { - return os << sb.GetString(); -} +# endif // NDEBUG for EXPECT_DEBUG_DEATH +#endif // GTEST_HAS_DEATH_TEST + +// EXPECT_DEATH_IF_SUPPORTED(statement, regex) and +// ASSERT_DEATH_IF_SUPPORTED(statement, regex) expand to real death tests if +// death tests are supported; otherwise they just issue a warning. This is +// useful when you are combining death test assertions with normal test +// assertions in one test. +#if GTEST_HAS_DEATH_TEST +# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ + EXPECT_DEATH(statement, regex) +# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ + ASSERT_DEATH(statement, regex) +#else +# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ + GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, ) +# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ + GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, return) +#endif } // namespace testing -#endif // GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ +#endif // GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ // This file was GENERATED by command: // pump.py gtest-param-test.h.pump // DO NOT EDIT BY HAND!!! @@ -9059,8 +9065,8 @@ class linked_ptr_internal { // framework. // Join an existing circle. - // L < g_linked_ptr_mutex - void join(linked_ptr_internal const* ptr) { + void join(linked_ptr_internal const* ptr) + GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex) { MutexLock lock(&g_linked_ptr_mutex); linked_ptr_internal const* p = ptr; @@ -9071,8 +9077,8 @@ class linked_ptr_internal { // Leave whatever circle we're part of. Returns true if we were the // last member of the circle. Once this is done, you can join() another. - // L < g_linked_ptr_mutex - bool depart() { + bool depart() + GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex) { MutexLock lock(&g_linked_ptr_mutex); if (next_ == this) return true; @@ -9815,9 +9821,12 @@ void UniversalPrintArray(const T* begin, size_t len, ::std::ostream* os) { } } // This overload prints a (const) char array compactly. -GTEST_API_ void UniversalPrintArray(const char* begin, - size_t len, - ::std::ostream* os); +GTEST_API_ void UniversalPrintArray( + const char* begin, size_t len, ::std::ostream* os); + +// This overload prints a (const) wchar_t array compactly. +GTEST_API_ void UniversalPrintArray( + const wchar_t* begin, size_t len, ::std::ostream* os); // Implements printing an array type T[N]. template <typename T, size_t N> @@ -9858,19 +9867,72 @@ class UniversalPrinter<T&> { // Prints a value tersely: for a reference type, the referenced value // (but not the address) is printed; for a (const) char pointer, the // NUL-terminated string (but not the pointer) is printed. + template <typename T> -void UniversalTersePrint(const T& value, ::std::ostream* os) { - UniversalPrint(value, os); -} -inline void UniversalTersePrint(const char* str, ::std::ostream* os) { - if (str == NULL) { - *os << "NULL"; - } else { - UniversalPrint(string(str), os); +class UniversalTersePrinter { + public: + static void Print(const T& value, ::std::ostream* os) { + UniversalPrint(value, os); } -} -inline void UniversalTersePrint(char* str, ::std::ostream* os) { - UniversalTersePrint(static_cast<const char*>(str), os); +}; +template <typename T> +class UniversalTersePrinter<T&> { + public: + static void Print(const T& value, ::std::ostream* os) { + UniversalPrint(value, os); + } +}; +template <typename T, size_t N> +class UniversalTersePrinter<T[N]> { + public: + static void Print(const T (&value)[N], ::std::ostream* os) { + UniversalPrinter<T[N]>::Print(value, os); + } +}; +template <> +class UniversalTersePrinter<const char*> { + public: + static void Print(const char* str, ::std::ostream* os) { + if (str == NULL) { + *os << "NULL"; + } else { + UniversalPrint(string(str), os); + } + } +}; +template <> +class UniversalTersePrinter<char*> { + public: + static void Print(char* str, ::std::ostream* os) { + UniversalTersePrinter<const char*>::Print(str, os); + } +}; + +#if GTEST_HAS_STD_WSTRING +template <> +class UniversalTersePrinter<const wchar_t*> { + public: + static void Print(const wchar_t* str, ::std::ostream* os) { + if (str == NULL) { + *os << "NULL"; + } else { + UniversalPrint(::std::wstring(str), os); + } + } +}; +#endif + +template <> +class UniversalTersePrinter<wchar_t*> { + public: + static void Print(wchar_t* str, ::std::ostream* os) { + UniversalTersePrinter<const wchar_t*>::Print(str, os); + } +}; + +template <typename T> +void UniversalTersePrint(const T& value, ::std::ostream* os) { + UniversalTersePrinter<T>::Print(value, os); } // Prints a value using the type inferred by the compiler. The @@ -9879,7 +9941,10 @@ inline void UniversalTersePrint(char* str, ::std::ostream* os) { // NUL-terminated string. template <typename T> void UniversalPrint(const T& value, ::std::ostream* os) { - UniversalPrinter<T>::Print(value, os); + // A workarond for the bug in VC++ 7.1 that prevents us from instantiating + // UniversalPrinter with T directly. + typedef T T1; + UniversalPrinter<T1>::Print(value, os); } #if GTEST_HAS_TR1_TUPLE @@ -9972,7 +10037,7 @@ Strings UniversalTersePrintTupleFieldsToStrings(const Tuple& value) { template <typename T> ::std::string PrintToString(const T& value) { ::std::stringstream ss; - internal::UniversalTersePrint(value, &ss); + internal::UniversalTersePrinter<T>::Print(value, &ss); return ss.str(); } @@ -10428,10 +10493,10 @@ class ParameterizedTestCaseInfo : public ParameterizedTestCaseInfoBase { const string& instantiation_name = gen_it->first; ParamGenerator<ParamType> generator((*gen_it->second)()); - Message test_case_name_stream; + string test_case_name; if ( !instantiation_name.empty() ) - test_case_name_stream << instantiation_name << "/"; - test_case_name_stream << test_info->test_case_base_name; + test_case_name = instantiation_name + "/"; + test_case_name += test_info->test_case_base_name; int i = 0; for (typename ParamGenerator<ParamType>::iterator param_it = @@ -10440,7 +10505,7 @@ class ParameterizedTestCaseInfo : public ParameterizedTestCaseInfoBase { Message test_name_stream; test_name_stream << test_info->test_base_name << "/" << i; MakeAndRegisterTestInfo( - test_case_name_stream.GetString().c_str(), + test_case_name.c_str(), test_name_stream.GetString().c_str(), NULL, // No type parameter. PrintToString(*param_it).c_str(), @@ -10646,7 +10711,7 @@ class ValueArray2 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_)}; return ValuesIn(array); } @@ -10665,7 +10730,8 @@ class ValueArray3 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_)}; return ValuesIn(array); } @@ -10686,7 +10752,8 @@ class ValueArray4 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_)}; return ValuesIn(array); } @@ -10708,7 +10775,8 @@ class ValueArray5 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_)}; return ValuesIn(array); } @@ -10732,7 +10800,9 @@ class ValueArray6 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_)}; return ValuesIn(array); } @@ -10757,7 +10827,9 @@ class ValueArray7 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_)}; return ValuesIn(array); } @@ -10784,7 +10856,9 @@ class ValueArray8 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_)}; return ValuesIn(array); } @@ -10812,7 +10886,10 @@ class ValueArray9 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_)}; return ValuesIn(array); } @@ -10841,7 +10918,10 @@ class ValueArray10 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_)}; return ValuesIn(array); } @@ -10872,7 +10952,10 @@ class ValueArray11 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_)}; return ValuesIn(array); } @@ -10904,8 +10987,11 @@ class ValueArray12 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_)}; return ValuesIn(array); } @@ -10939,8 +11025,11 @@ class ValueArray13 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_)}; return ValuesIn(array); } @@ -10975,8 +11064,11 @@ class ValueArray14 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_)}; return ValuesIn(array); } @@ -11012,8 +11104,12 @@ class ValueArray15 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_)}; return ValuesIn(array); } @@ -11052,8 +11148,12 @@ class ValueArray16 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_)}; return ValuesIn(array); } @@ -11093,8 +11193,12 @@ class ValueArray17 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_)}; return ValuesIn(array); } @@ -11135,8 +11239,13 @@ class ValueArray18 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_)}; return ValuesIn(array); } @@ -11178,8 +11287,13 @@ class ValueArray19 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_)}; return ValuesIn(array); } @@ -11223,8 +11337,13 @@ class ValueArray20 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_)}; return ValuesIn(array); } @@ -11270,8 +11389,14 @@ class ValueArray21 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_)}; return ValuesIn(array); } @@ -11318,8 +11443,14 @@ class ValueArray22 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_)}; return ValuesIn(array); } @@ -11368,9 +11499,14 @@ class ValueArray23 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, - v23_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_)}; return ValuesIn(array); } @@ -11420,9 +11556,15 @@ class ValueArray24 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_)}; return ValuesIn(array); } @@ -11473,9 +11615,15 @@ class ValueArray25 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_)}; return ValuesIn(array); } @@ -11528,9 +11676,15 @@ class ValueArray26 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_)}; return ValuesIn(array); } @@ -11585,9 +11739,16 @@ class ValueArray27 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_)}; return ValuesIn(array); } @@ -11643,9 +11804,16 @@ class ValueArray28 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_)}; return ValuesIn(array); } @@ -11702,9 +11870,16 @@ class ValueArray29 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_)}; return ValuesIn(array); } @@ -11763,9 +11938,17 @@ class ValueArray30 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_)}; return ValuesIn(array); } @@ -11826,9 +12009,17 @@ class ValueArray31 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_)}; return ValuesIn(array); } @@ -11890,9 +12081,17 @@ class ValueArray32 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_)}; return ValuesIn(array); } @@ -11956,9 +12155,18 @@ class ValueArray33 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_)}; return ValuesIn(array); } @@ -12023,9 +12231,18 @@ class ValueArray34 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_)}; return ValuesIn(array); } @@ -12091,10 +12308,18 @@ class ValueArray35 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, - v35_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_)}; return ValuesIn(array); } @@ -12162,10 +12387,19 @@ class ValueArray36 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_)}; return ValuesIn(array); } @@ -12235,10 +12469,19 @@ class ValueArray37 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_)}; return ValuesIn(array); } @@ -12309,10 +12552,19 @@ class ValueArray38 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_)}; return ValuesIn(array); } @@ -12384,10 +12636,20 @@ class ValueArray39 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_)}; return ValuesIn(array); } @@ -12461,10 +12723,20 @@ class ValueArray40 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_)}; return ValuesIn(array); } @@ -12540,10 +12812,20 @@ class ValueArray41 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_)}; return ValuesIn(array); } @@ -12620,10 +12902,21 @@ class ValueArray42 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_)}; return ValuesIn(array); } @@ -12701,10 +12994,21 @@ class ValueArray43 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_)}; return ValuesIn(array); } @@ -12784,10 +13088,21 @@ class ValueArray44 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_)}; return ValuesIn(array); } @@ -12868,10 +13183,22 @@ class ValueArray45 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_)}; return ValuesIn(array); } @@ -12954,10 +13281,22 @@ class ValueArray46 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_, v46_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_), static_cast<T>(v46_)}; return ValuesIn(array); } @@ -13042,11 +13381,22 @@ class ValueArray47 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_, v46_, - v47_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_)}; return ValuesIn(array); } @@ -13132,11 +13482,23 @@ class ValueArray48 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_, v46_, v47_, - v48_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), + static_cast<T>(v48_)}; return ValuesIn(array); } @@ -13223,11 +13585,23 @@ class ValueArray49 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_, v46_, v47_, - v48_, v49_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), + static_cast<T>(v48_), static_cast<T>(v49_)}; return ValuesIn(array); } @@ -13315,11 +13689,23 @@ class ValueArray50 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_, v46_, v47_, - v48_, v49_, v50_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), + static_cast<T>(v48_), static_cast<T>(v49_), static_cast<T>(v50_)}; return ValuesIn(array); } @@ -16437,7 +16823,7 @@ inline internal::ParamGenerator<bool> Bool() { // Boolean flags: // // class FlagDependentTest -// : public testing::TestWithParam<tuple(bool, bool)> > { +// : public testing::TestWithParam<tuple<bool, bool> > { // virtual void SetUp() { // // Assigns external_flag_1 and external_flag_2 values from the tuple. // tie(external_flag_1, external_flag_2) = GetParam(); @@ -16719,7 +17105,7 @@ class GTEST_API_ TestPartResult { int a_line_number, const char* a_message) : type_(a_type), - file_name_(a_file_name), + file_name_(a_file_name == NULL ? "" : a_file_name), line_number_(a_line_number), summary_(ExtractSummary(a_message)), message_(a_message) { @@ -16730,7 +17116,9 @@ class GTEST_API_ TestPartResult { // Gets the name of the source file where the test part took place, or // NULL if it's unknown. - const char* file_name() const { return file_name_.c_str(); } + const char* file_name() const { + return file_name_.empty() ? NULL : file_name_.c_str(); + } // Gets the line in the source file where the test part took place, // or -1 if it's unknown. @@ -16753,21 +17141,22 @@ class GTEST_API_ TestPartResult { // Returns true iff the test part fatally failed. bool fatally_failed() const { return type_ == kFatalFailure; } + private: Type type_; // Gets the summary of the failure message by omitting the stack // trace in it. - static internal::String ExtractSummary(const char* message); + static std::string ExtractSummary(const char* message); // The name of the source file where the test part took place, or - // NULL if the source file is unknown. - internal::String file_name_; + // "" if the source file is unknown. + std::string file_name_; // The line in the source file where the test part took place, or -1 // if the line number is unknown. int line_number_; - internal::String summary_; // The test failure summary. - internal::String message_; // The test failure message. + std::string summary_; // The test failure summary. + std::string message_; // The test failure message. }; // Prints a TestPartResult object. @@ -17178,25 +17567,15 @@ class ExecDeathTest; class NoExecDeathTest; class FinalSuccessChecker; class GTestFlagSaver; +class StreamingListenerTest; class TestResultAccessor; class TestEventListenersAccessor; class TestEventRepeater; +class UnitTestRecordPropertyTestHelper; class WindowsDeathTest; class UnitTestImpl* GetUnitTestImpl(); void ReportFailureInUnknownLocation(TestPartResult::Type result_type, - const String& message); - -// Converts a streamable value to a String. A NULL pointer is -// converted to "(null)". When the input value is a ::string, -// ::std::string, ::wstring, or ::std::wstring object, each NUL -// character in it is replaced with "\\0". -// Declared in gtest-internal.h but defined here, so that it has access -// to the definition of the Message class, required by the ARM -// compiler. -template <typename T> -String StreamableToString(const T& streamable) { - return (Message() << streamable).GetString(); -} + const std::string& message); } // namespace internal @@ -17416,20 +17795,21 @@ class GTEST_API_ Test { // non-fatal) failure. static bool HasFailure() { return HasFatalFailure() || HasNonfatalFailure(); } - // Logs a property for the current test. Only the last value for a given - // key is remembered. - // These are public static so they can be called from utility functions - // that are not members of the test fixture. - // The arguments are const char* instead strings, as Google Test is used - // on platforms where string doesn't compile. - // - // Note that a driving consideration for these RecordProperty methods - // was to produce xml output suited to the Greenspan charting utility, - // which at present will only chart values that fit in a 32-bit int. It - // is the user's responsibility to restrict their values to 32-bit ints - // if they intend them to be used with Greenspan. - static void RecordProperty(const char* key, const char* value); - static void RecordProperty(const char* key, int value); + // Logs a property for the current test, test case, or for the entire + // invocation of the test program when used outside of the context of a + // test case. Only the last value for a given key is remembered. These + // are public static so they can be called from utility functions that are + // not members of the test fixture. Calls to RecordProperty made during + // lifespan of the test (from the moment its constructor starts to the + // moment its destructor finishes) will be output in XML as attributes of + // the <testcase> element. Properties recorded from fixture's + // SetUpTestCase or TearDownTestCase are logged as attributes of the + // corresponding <testsuite> element. Calls to RecordProperty made in the + // global context (before or after invocation of RUN_ALL_TESTS and from + // SetUp/TearDown method of Environment objects registered with Google + // Test) will be output as attributes of the <testsuites> element. + static void RecordProperty(const std::string& key, const std::string& value); + static void RecordProperty(const std::string& key, int value); protected: // Creates a Test object. @@ -17498,7 +17878,7 @@ class TestProperty { // C'tor. TestProperty does NOT have a default constructor. // Always use this constructor (with parameters) to create a // TestProperty object. - TestProperty(const char* a_key, const char* a_value) : + TestProperty(const std::string& a_key, const std::string& a_value) : key_(a_key), value_(a_value) { } @@ -17513,15 +17893,15 @@ class TestProperty { } // Sets a new value, overriding the one supplied in the constructor. - void SetValue(const char* new_value) { + void SetValue(const std::string& new_value) { value_ = new_value; } private: // The key supplied by the user. - internal::String key_; + std::string key_; // The value supplied by the user. - internal::String value_; + std::string value_; }; // The result of a single Test. This includes a list of @@ -17572,6 +17952,7 @@ class GTEST_API_ TestResult { private: friend class TestInfo; + friend class TestCase; friend class UnitTest; friend class internal::DefaultGlobalTestPartResultReporter; friend class internal::ExecDeathTest; @@ -17596,13 +17977,16 @@ class GTEST_API_ TestResult { // a non-fatal failure if invalid (e.g., if it conflicts with reserved // key names). If a property is already recorded for the same key, the // value will be updated, rather than storing multiple values for the same - // key. - void RecordProperty(const TestProperty& test_property); + // key. xml_element specifies the element for which the property is being + // recorded and is used for validation. + void RecordProperty(const std::string& xml_element, + const TestProperty& test_property); // Adds a failure if the key is a reserved attribute of Google Test // testcase tags. Returns true if the property is valid. // TODO(russr): Validate attribute names are legal and human readable. - static bool ValidateTestProperty(const TestProperty& test_property); + static bool ValidateTestProperty(const std::string& xml_element, + const TestProperty& test_property); // Adds a test part result to the list. void AddTestPartResult(const TestPartResult& test_part_result); @@ -17675,9 +18059,9 @@ class GTEST_API_ TestInfo { return NULL; } - // Returns true if this test should run, that is if the test is not disabled - // (or it is disabled but the also_run_disabled_tests flag has been specified) - // and its full name matches the user-specified filter. + // Returns true if this test should run, that is if the test is not + // disabled (or it is disabled but the also_run_disabled_tests flag has + // been specified) and its full name matches the user-specified filter. // // Google Test allows the user to filter the tests by their full names. // The full name of a test Bar in test case Foo is defined as @@ -17693,19 +18077,28 @@ class GTEST_API_ TestInfo { // contains the character 'A' or starts with "Foo.". bool should_run() const { return should_run_; } + // Returns true iff this test will appear in the XML report. + bool is_reportable() const { + // For now, the XML report includes all tests matching the filter. + // In the future, we may trim tests that are excluded because of + // sharding. + return matches_filter_; + } + // Returns the result of the test. const TestResult* result() const { return &result_; } private: - #if GTEST_HAS_DEATH_TEST friend class internal::DefaultDeathTestFactory; #endif // GTEST_HAS_DEATH_TEST friend class Test; friend class TestCase; friend class internal::UnitTestImpl; + friend class internal::StreamingListenerTest; friend TestInfo* internal::MakeAndRegisterTestInfo( - const char* test_case_name, const char* name, + const char* test_case_name, + const char* name, const char* type_param, const char* value_param, internal::TypeId fixture_class_id, @@ -17715,9 +18108,10 @@ class GTEST_API_ TestInfo { // Constructs a TestInfo object. The newly constructed instance assumes // ownership of the factory object. - TestInfo(const char* test_case_name, const char* name, - const char* a_type_param, - const char* a_value_param, + TestInfo(const std::string& test_case_name, + const std::string& name, + const char* a_type_param, // NULL if not a type-parameterized test + const char* a_value_param, // NULL if not a value-parameterized test internal::TypeId fixture_class_id, internal::TestFactoryBase* factory); @@ -17803,9 +18197,15 @@ class GTEST_API_ TestCase { // Gets the number of failed tests in this test case. int failed_test_count() const; + // Gets the number of disabled tests that will be reported in the XML report. + int reportable_disabled_test_count() const; + // Gets the number of disabled tests in this test case. int disabled_test_count() const; + // Gets the number of tests to be printed in the XML report. + int reportable_test_count() const; + // Get the number of tests in this test case that should run. int test_to_run_count() const; @@ -17825,6 +18225,10 @@ class GTEST_API_ TestCase { // total_test_count() - 1. If i is not in that range, returns NULL. const TestInfo* GetTestInfo(int i) const; + // Returns the TestResult that holds test properties recorded during + // execution of SetUpTestCase and TearDownTestCase. + const TestResult& ad_hoc_test_result() const { return ad_hoc_test_result_; } + private: friend class Test; friend class internal::UnitTestImpl; @@ -17877,11 +18281,22 @@ class GTEST_API_ TestCase { return test_info->should_run() && test_info->result()->Failed(); } + // Returns true iff the test is disabled and will be reported in the XML + // report. + static bool TestReportableDisabled(const TestInfo* test_info) { + return test_info->is_reportable() && test_info->is_disabled_; + } + // Returns true iff test is disabled. static bool TestDisabled(const TestInfo* test_info) { return test_info->is_disabled_; } + // Returns true iff this test will appear in the XML report. + static bool TestReportable(const TestInfo* test_info) { + return test_info->is_reportable(); + } + // Returns true if the given test should run. static bool ShouldRunTest(const TestInfo* test_info) { return test_info->should_run(); @@ -17894,7 +18309,7 @@ class GTEST_API_ TestCase { void UnshuffleTests(); // Name of the test case. - internal::String name_; + std::string name_; // Name of the parameter type, or NULL if this is not a typed or a // type-parameterized test. const internal::scoped_ptr<const ::std::string> type_param_; @@ -17913,6 +18328,9 @@ class GTEST_API_ TestCase { bool should_run_; // Elapsed time, in milliseconds. TimeInMillis elapsed_time_; + // Holds test properties recorded during execution of SetUpTestCase and + // TearDownTestCase. + TestResult ad_hoc_test_result_; // We disallow copying TestCases. GTEST_DISALLOW_COPY_AND_ASSIGN_(TestCase); @@ -18132,11 +18550,13 @@ class GTEST_API_ UnitTest { // Returns the TestCase object for the test that's currently running, // or NULL if no test is running. - const TestCase* current_test_case() const; + const TestCase* current_test_case() const + GTEST_LOCK_EXCLUDED_(mutex_); // Returns the TestInfo object for the test that's currently running, // or NULL if no test is running. - const TestInfo* current_test_info() const; + const TestInfo* current_test_info() const + GTEST_LOCK_EXCLUDED_(mutex_); // Returns the random seed used at the start of the current test run. int random_seed() const; @@ -18146,7 +18566,8 @@ class GTEST_API_ UnitTest { // value-parameterized tests and instantiate and register them. // // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - internal::ParameterizedTestCaseRegistry& parameterized_test_registry(); + internal::ParameterizedTestCaseRegistry& parameterized_test_registry() + GTEST_LOCK_EXCLUDED_(mutex_); #endif // GTEST_HAS_PARAM_TEST // Gets the number of successful test cases. @@ -18168,15 +18589,25 @@ class GTEST_API_ UnitTest { // Gets the number of failed tests. int failed_test_count() const; + // Gets the number of disabled tests that will be reported in the XML report. + int reportable_disabled_test_count() const; + // Gets the number of disabled tests. int disabled_test_count() const; + // Gets the number of tests to be printed in the XML report. + int reportable_test_count() const; + // Gets the number of all tests. int total_test_count() const; // Gets the number of tests that should run. int test_to_run_count() const; + // Gets the time of the test program start, in ms from the start of the + // UNIX epoch. + TimeInMillis start_timestamp() const; + // Gets the elapsed time, in milliseconds. TimeInMillis elapsed_time() const; @@ -18191,6 +18622,10 @@ class GTEST_API_ UnitTest { // total_test_case_count() - 1. If i is not in that range, returns NULL. const TestCase* GetTestCase(int i) const; + // Returns the TestResult containing information on test failures and + // properties logged outside of individual test cases. + const TestResult& ad_hoc_test_result() const; + // Returns the list of event listeners that can be used to track events // inside Google Test. TestEventListeners& listeners(); @@ -18214,12 +18649,16 @@ class GTEST_API_ UnitTest { void AddTestPartResult(TestPartResult::Type result_type, const char* file_name, int line_number, - const internal::String& message, - const internal::String& os_stack_trace); + const std::string& message, + const std::string& os_stack_trace) + GTEST_LOCK_EXCLUDED_(mutex_); - // Adds a TestProperty to the current TestResult object. If the result already - // contains a property with the same key, the value will be updated. - void RecordPropertyForCurrentTest(const char* key, const char* value); + // Adds a TestProperty to the current TestResult object when invoked from + // inside a test, to current TestCase's ad_hoc_test_result_ when invoked + // from SetUpTestCase or TearDownTestCase, or to the global property set + // when invoked elsewhere. If the result already contains a property with + // the same key, the value will be updated. + void RecordProperty(const std::string& key, const std::string& value); // Gets the i-th test case among all the test cases. i can range from 0 to // total_test_case_count() - 1. If i is not in that range, returns NULL. @@ -18234,11 +18673,13 @@ class GTEST_API_ UnitTest { friend class Test; friend class internal::AssertHelper; friend class internal::ScopedTrace; + friend class internal::StreamingListenerTest; + friend class internal::UnitTestRecordPropertyTestHelper; friend Environment* AddGlobalTestEnvironment(Environment* env); friend internal::UnitTestImpl* internal::GetUnitTestImpl(); friend void internal::ReportFailureInUnknownLocation( TestPartResult::Type result_type, - const internal::String& message); + const std::string& message); // Creates an empty UnitTest. UnitTest(); @@ -18248,10 +18689,12 @@ class GTEST_API_ UnitTest { // Pushes a trace defined by SCOPED_TRACE() on to the per-thread // Google Test trace stack. - void PushGTestTrace(const internal::TraceInfo& trace); + void PushGTestTrace(const internal::TraceInfo& trace) + GTEST_LOCK_EXCLUDED_(mutex_); // Pops a trace from the per-thread Google Test trace stack. - void PopGTestTrace(); + void PopGTestTrace() + GTEST_LOCK_EXCLUDED_(mutex_); // Protects mutable state in *impl_. This is mutable as some const // methods need to lock it too. @@ -18306,24 +18749,101 @@ GTEST_API_ void InitGoogleTest(int* argc, wchar_t** argv); namespace internal { +// FormatForComparison<ToPrint, OtherOperand>::Format(value) formats a +// value of type ToPrint that is an operand of a comparison assertion +// (e.g. ASSERT_EQ). OtherOperand is the type of the other operand in +// the comparison, and is used to help determine the best way to +// format the value. In particular, when the value is a C string +// (char pointer) and the other operand is an STL string object, we +// want to format the C string as a string, since we know it is +// compared by value with the string object. If the value is a char +// pointer but the other operand is not an STL string object, we don't +// know whether the pointer is supposed to point to a NUL-terminated +// string, and thus want to print it as a pointer to be safe. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. + +// The default case. +template <typename ToPrint, typename OtherOperand> +class FormatForComparison { + public: + static ::std::string Format(const ToPrint& value) { + return ::testing::PrintToString(value); + } +}; + +// Array. +template <typename ToPrint, size_t N, typename OtherOperand> +class FormatForComparison<ToPrint[N], OtherOperand> { + public: + static ::std::string Format(const ToPrint* value) { + return FormatForComparison<const ToPrint*, OtherOperand>::Format(value); + } +}; + +// By default, print C string as pointers to be safe, as we don't know +// whether they actually point to a NUL-terminated string. + +#define GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(CharType) \ + template <typename OtherOperand> \ + class FormatForComparison<CharType*, OtherOperand> { \ + public: \ + static ::std::string Format(CharType* value) { \ + return ::testing::PrintToString(static_cast<const void*>(value)); \ + } \ + } + +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char); +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char); +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(wchar_t); +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const wchar_t); + +#undef GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_ + +// If a C string is compared with an STL string object, we know it's meant +// to point to a NUL-terminated string, and thus can print it as a string. + +#define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \ + template <> \ + class FormatForComparison<CharType*, OtherStringType> { \ + public: \ + static ::std::string Format(CharType* value) { \ + return ::testing::PrintToString(value); \ + } \ + } + +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::std::string); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::std::string); + +#if GTEST_HAS_GLOBAL_STRING +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::string); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::string); +#endif + +#if GTEST_HAS_GLOBAL_WSTRING +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t, ::wstring); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const wchar_t, ::wstring); +#endif + +#if GTEST_HAS_STD_WSTRING +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t, ::std::wstring); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const wchar_t, ::std::wstring); +#endif + +#undef GTEST_IMPL_FORMAT_C_STRING_AS_STRING_ + // Formats a comparison assertion (e.g. ASSERT_EQ, EXPECT_LT, and etc) // operand to be used in a failure message. The type (but not value) // of the other operand may affect the format. This allows us to // print a char* as a raw pointer when it is compared against another -// char*, and print it as a C string when it is compared against an -// std::string object, for example. -// -// The default implementation ignores the type of the other operand. -// Some specialized versions are used to handle formatting wide or -// narrow C strings. +// char* or void*, and print it as a C string when it is compared +// against an std::string object, for example. // // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. template <typename T1, typename T2> -String FormatForComparisonFailureMessage(const T1& value, - const T2& /* other_operand */) { - // C++Builder compiles this incorrectly if the namespace isn't explicitly - // given. - return ::testing::PrintToString(value); +std::string FormatForComparisonFailureMessage( + const T1& value, const T2& /* other_operand */) { + return FormatForComparison<T1, T2>::Format(value); } // The helper function for {ASSERT|EXPECT}_EQ. @@ -18335,7 +18855,7 @@ AssertionResult CmpHelperEQ(const char* expected_expression, #ifdef _MSC_VER # pragma warning(push) // Saves the current warning state. # pragma warning(disable:4389) // Temporarily disables warning on - // signed/unsigned mismatch. + // signed/unsigned mismatch. #endif if (expected == actual) { @@ -18471,11 +18991,11 @@ GTEST_IMPL_CMP_HELPER_(NE, !=); // Implements the helper function for {ASSERT|EXPECT}_LE GTEST_IMPL_CMP_HELPER_(LE, <=); // Implements the helper function for {ASSERT|EXPECT}_LT -GTEST_IMPL_CMP_HELPER_(LT, < ); +GTEST_IMPL_CMP_HELPER_(LT, <); // Implements the helper function for {ASSERT|EXPECT}_GE GTEST_IMPL_CMP_HELPER_(GE, >=); // Implements the helper function for {ASSERT|EXPECT}_GT -GTEST_IMPL_CMP_HELPER_(GT, > ); +GTEST_IMPL_CMP_HELPER_(GT, >); #undef GTEST_IMPL_CMP_HELPER_ @@ -18639,9 +19159,9 @@ class GTEST_API_ AssertHelper { : type(t), file(srcfile), line(line_num), message(msg) { } TestPartResult::Type const type; - const char* const file; - int const line; - String const message; + const char* const file; + int const line; + std::string const message; private: GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelperData); @@ -18700,7 +19220,12 @@ class WithParamInterface { // references static data, to reduce the opportunity for incorrect uses // like writing 'WithParamInterface<bool>::GetParam()' for a test that // uses a fixture whose parameter type is int. - const ParamType& GetParam() const { return *parameter_; } + const ParamType& GetParam() const { + GTEST_CHECK_(parameter_ != NULL) + << "GetParam() can only be called inside a value-parameterized test " + << "-- did you intend to write TEST_P instead of TEST_F?"; + return *parameter_; + } private: // Sets parameter value. The caller is responsible for making sure the value @@ -18746,12 +19271,6 @@ class TestWithParam : public Test, public WithParamInterface<T> { // usually want the fail-fast behavior of FAIL and ASSERT_*, but those // writing data-driven tests often find themselves using ADD_FAILURE // and EXPECT_* more. -// -// Examples: -// -// EXPECT_TRUE(server.StatusIsOK()); -// ASSERT_FALSE(server.HasPendingRequest(port)) -// << "There are still pending requests " << "on port " << port; // Generates a nonfatal failure with a generic message. #define ADD_FAILURE() GTEST_NONFATAL_FAILURE_("Failed") @@ -18849,7 +19368,7 @@ class TestWithParam : public Test, public WithParamInterface<T> { // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// This file is AUTOMATICALLY GENERATED on 09/24/2010 by command +// This file is AUTOMATICALLY GENERATED on 10/31/2011 by command // 'gen_gtest_pred_impl.py 5'. DO NOT EDIT BY HAND! // // Implements a family of generic predicate assertion macros. @@ -18920,7 +19439,7 @@ AssertionResult AssertPred1Helper(const char* pred_text, // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT1. // Don't use this in your code. #define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, v1),\ + GTEST_ASSERT_(pred_format(#v1, v1), \ on_failure) // Internal macro for implementing {EXPECT|ASSERT}_PRED1. Don't use @@ -18966,7 +19485,7 @@ AssertionResult AssertPred2Helper(const char* pred_text, // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT2. // Don't use this in your code. #define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2),\ + GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \ on_failure) // Internal macro for implementing {EXPECT|ASSERT}_PRED2. Don't use @@ -19019,7 +19538,7 @@ AssertionResult AssertPred3Helper(const char* pred_text, // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT3. // Don't use this in your code. #define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3),\ + GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), \ on_failure) // Internal macro for implementing {EXPECT|ASSERT}_PRED3. Don't use @@ -19079,7 +19598,7 @@ AssertionResult AssertPred4Helper(const char* pred_text, // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT4. // Don't use this in your code. #define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4),\ + GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), \ on_failure) // Internal macro for implementing {EXPECT|ASSERT}_PRED4. Don't use @@ -19146,7 +19665,7 @@ AssertionResult AssertPred5Helper(const char* pred_text, // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT5. // Don't use this in your code. #define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5),\ + GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \ on_failure) // Internal macro for implementing {EXPECT|ASSERT}_PRED5. Don't use @@ -19282,7 +19801,7 @@ AssertionResult AssertPred5Helper(const char* pred_text, # define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2) #endif -// C String Comparisons. All tests treat NULL and any non-NULL string +// C-string Comparisons. All tests treat NULL and any non-NULL string // as different. Two NULLs are equal. // // * {ASSERT|EXPECT}_STREQ(s1, s2): Tests that s1 == s2 @@ -19523,15 +20042,20 @@ bool StaticAssertTypeEq() { GTEST_TEST_(test_fixture, test_name, test_fixture, \ ::testing::internal::GetTypeId<test_fixture>()) -// Use this macro in main() to run all tests. It returns 0 if all +} // namespace testing + +// Use this function in main() to run all tests. It returns 0 if all // tests are successful, or 1 otherwise. // // RUN_ALL_TESTS() should be invoked after the command line has been // parsed by InitGoogleTest(). +// +// This function was formerly a macro; thus, it is in the global +// namespace and has an all-caps name. +int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_; -#define RUN_ALL_TESTS()\ - (::testing::UnitTest::GetInstance()->Run()) - -} // namespace testing +inline int RUN_ALL_TESTS() { + return ::testing::UnitTest::GetInstance()->Run(); +} #endif // GTEST_INCLUDE_GTEST_GTEST_H_ diff --git a/resources/3rdparty/gtest-1.6.0/src/gtest_main.cc b/resources/3rdparty/gtest-1.7.0/fused-src/gtest/gtest_main.cc similarity index 95% rename from resources/3rdparty/gtest-1.6.0/src/gtest_main.cc rename to resources/3rdparty/gtest-1.7.0/fused-src/gtest/gtest_main.cc index a09bbe0c6..f30282255 100644 --- a/resources/3rdparty/gtest-1.6.0/src/gtest_main.cc +++ b/resources/3rdparty/gtest-1.7.0/fused-src/gtest/gtest_main.cc @@ -27,13 +27,12 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -#include <iostream> +#include <stdio.h> #include "gtest/gtest.h" GTEST_API_ int main(int argc, char **argv) { - std::cout << "Running main() from gtest_main.cc\n"; - + printf("Running main() from gtest_main.cc\n"); testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-death-test.h b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-death-test.h similarity index 94% rename from resources/3rdparty/gtest-1.6.0/include/gtest/gtest-death-test.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/gtest-death-test.h index a27883f0a..957a69c6a 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-death-test.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-death-test.h @@ -51,6 +51,17 @@ GTEST_DECLARE_string_(death_test_style); #if GTEST_HAS_DEATH_TEST +namespace internal { + +// Returns a Boolean value indicating whether the caller is currently +// executing in the context of the death test child process. Tools such as +// Valgrind heap checkers may need this to modify their behavior in death +// tests. IMPORTANT: This is an internal utility. Using it may break the +// implementation of death tests. User code MUST NOT use it. +GTEST_API_ bool InDeathTestChild(); + +} // namespace internal + // The following macros are useful for writing death tests. // Here's what happens when an ASSERT_DEATH* or EXPECT_DEATH* is @@ -75,7 +86,7 @@ GTEST_DECLARE_string_(death_test_style); // for (int i = 0; i < 5; i++) { // EXPECT_DEATH(server.ProcessRequest(i), // "Invalid request .* in ProcessRequest()") -// << "Failed to die on request " << i); +// << "Failed to die on request " << i; // } // // ASSERT_EXIT(server.ExitNow(), ::testing::ExitedWithCode(0), "Exiting"); @@ -245,10 +256,10 @@ class GTEST_API_ KilledBySignal { # ifdef NDEBUG # define EXPECT_DEBUG_DEATH(statement, regex) \ - do { statement; } while (::testing::internal::AlwaysFalse()) + GTEST_EXECUTE_STATEMENT_(statement, regex) # define ASSERT_DEBUG_DEATH(statement, regex) \ - do { statement; } while (::testing::internal::AlwaysFalse()) + GTEST_EXECUTE_STATEMENT_(statement, regex) # else diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-message.h b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-message.h similarity index 77% rename from resources/3rdparty/gtest-1.6.0/include/gtest/gtest-message.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/gtest-message.h index 9b7142f32..fe879bca7 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-message.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-message.h @@ -48,8 +48,11 @@ #include <limits> -#include "gtest/internal/gtest-string.h" -#include "gtest/internal/gtest-internal.h" +#include "gtest/internal/gtest-port.h" + +// Ensures that there is at least one operator<< in the global namespace. +// See Message& operator<<(...) below for why. +void operator<<(const testing::internal::Secret&, int); namespace testing { @@ -87,15 +90,7 @@ class GTEST_API_ Message { public: // Constructs an empty Message. - // We allocate the stringstream separately because otherwise each use of - // ASSERT/EXPECT in a procedure adds over 200 bytes to the procedure's - // stack frame leading to huge stack frames in some cases; gcc does not reuse - // the stack space. - Message() : ss_(new ::std::stringstream) { - // By default, we want there to be enough precision when printing - // a double to a Message. - *ss_ << std::setprecision(std::numeric_limits<double>::digits10 + 2); - } + Message(); // Copy constructor. Message(const Message& msg) : ss_(new ::std::stringstream) { // NOLINT @@ -118,7 +113,22 @@ class GTEST_API_ Message { // Streams a non-pointer value to this object. template <typename T> inline Message& operator <<(const T& val) { - ::GTestStreamToHelper(ss_.get(), val); + // Some libraries overload << for STL containers. These + // overloads are defined in the global namespace instead of ::std. + // + // C++'s symbol lookup rule (i.e. Koenig lookup) says that these + // overloads are visible in either the std namespace or the global + // namespace, but not other namespaces, including the testing + // namespace which Google Test's Message class is in. + // + // To allow STL containers (and other types that has a << operator + // defined in the global namespace) to be used in Google Test + // assertions, testing::Message must access the custom << operator + // from the global namespace. With this using declaration, + // overloads of << defined in the global namespace and those + // visible via Koenig lookup are both exposed in this function. + using ::operator <<; + *ss_ << val; return *this; } @@ -140,7 +150,7 @@ class GTEST_API_ Message { if (pointer == NULL) { *ss_ << "(null)"; } else { - ::GTestStreamToHelper(ss_.get(), pointer); + *ss_ << pointer; } return *this; } @@ -164,12 +174,8 @@ class GTEST_API_ Message { // These two overloads allow streaming a wide C string to a Message // using the UTF-8 encoding. - Message& operator <<(const wchar_t* wide_c_str) { - return *this << internal::String::ShowWideCString(wide_c_str); - } - Message& operator <<(wchar_t* wide_c_str) { - return *this << internal::String::ShowWideCString(wide_c_str); - } + Message& operator <<(const wchar_t* wide_c_str); + Message& operator <<(wchar_t* wide_c_str); #if GTEST_HAS_STD_WSTRING // Converts the given wide string to a narrow string using the UTF-8 @@ -183,13 +189,11 @@ class GTEST_API_ Message { Message& operator <<(const ::wstring& wstr); #endif // GTEST_HAS_GLOBAL_WSTRING - // Gets the text streamed to this object so far as a String. + // Gets the text streamed to this object so far as an std::string. // Each '\0' character in the buffer is replaced with "\\0". // // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - internal::String GetString() const { - return internal::StringStreamToString(ss_.get()); - } + std::string GetString() const; private: @@ -199,16 +203,20 @@ class GTEST_API_ Message { // decide between class template specializations for T and T*, so a // tr1::type_traits-like is_pointer works, and we can overload on that. template <typename T> - inline void StreamHelper(internal::true_type /*dummy*/, T* pointer) { + inline void StreamHelper(internal::true_type /*is_pointer*/, T* pointer) { if (pointer == NULL) { *ss_ << "(null)"; } else { - ::GTestStreamToHelper(ss_.get(), pointer); + *ss_ << pointer; } } template <typename T> - inline void StreamHelper(internal::false_type /*dummy*/, const T& value) { - ::GTestStreamToHelper(ss_.get(), value); + inline void StreamHelper(internal::false_type /*is_pointer*/, + const T& value) { + // See the comments in Message& operator <<(const T&) above for why + // we need this using statement. + using ::operator <<; + *ss_ << value; } #endif // GTEST_OS_SYMBIAN @@ -225,6 +233,18 @@ inline std::ostream& operator <<(std::ostream& os, const Message& sb) { return os << sb.GetString(); } +namespace internal { + +// Converts a streamable value to an std::string. A NULL pointer is +// converted to "(null)". When the input value is a ::string, +// ::std::string, ::wstring, or ::std::wstring object, each NUL +// character in it is replaced with "\\0". +template <typename T> +std::string StreamableToString(const T& streamable) { + return (Message() << streamable).GetString(); +} + +} // namespace internal } // namespace testing #endif // GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-param-test.h b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-param-test.h similarity index 99% rename from resources/3rdparty/gtest-1.6.0/include/gtest/gtest-param-test.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/gtest-param-test.h index 6407cfd68..d6702c8f1 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-param-test.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-param-test.h @@ -1257,7 +1257,7 @@ inline internal::ParamGenerator<bool> Bool() { // Boolean flags: // // class FlagDependentTest -// : public testing::TestWithParam<tuple(bool, bool)> > { +// : public testing::TestWithParam<tuple<bool, bool> > { // virtual void SetUp() { // // Assigns external_flag_1 and external_flag_2 values from the tuple. // tie(external_flag_1, external_flag_2) = GetParam(); diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-param-test.h.pump b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-param-test.h.pump similarity index 99% rename from resources/3rdparty/gtest-1.6.0/include/gtest/gtest-param-test.h.pump rename to resources/3rdparty/gtest-1.7.0/include/gtest/gtest-param-test.h.pump index 401cb513a..2dc9303b5 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-param-test.h.pump +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-param-test.h.pump @@ -414,7 +414,7 @@ inline internal::ParamGenerator<bool> Bool() { // Boolean flags: // // class FlagDependentTest -// : public testing::TestWithParam<tuple(bool, bool)> > { +// : public testing::TestWithParam<tuple<bool, bool> > { // virtual void SetUp() { // // Assigns external_flag_1 and external_flag_2 values from the tuple. // tie(external_flag_1, external_flag_2) = GetParam(); diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-printers.h b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-printers.h similarity index 93% rename from resources/3rdparty/gtest-1.6.0/include/gtest/gtest-printers.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/gtest-printers.h index 9cbab3ff4..0639d9f58 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-printers.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-printers.h @@ -630,9 +630,12 @@ void UniversalPrintArray(const T* begin, size_t len, ::std::ostream* os) { } } // This overload prints a (const) char array compactly. -GTEST_API_ void UniversalPrintArray(const char* begin, - size_t len, - ::std::ostream* os); +GTEST_API_ void UniversalPrintArray( + const char* begin, size_t len, ::std::ostream* os); + +// This overload prints a (const) wchar_t array compactly. +GTEST_API_ void UniversalPrintArray( + const wchar_t* begin, size_t len, ::std::ostream* os); // Implements printing an array type T[N]. template <typename T, size_t N> @@ -673,19 +676,72 @@ class UniversalPrinter<T&> { // Prints a value tersely: for a reference type, the referenced value // (but not the address) is printed; for a (const) char pointer, the // NUL-terminated string (but not the pointer) is printed. + template <typename T> -void UniversalTersePrint(const T& value, ::std::ostream* os) { - UniversalPrint(value, os); -} -inline void UniversalTersePrint(const char* str, ::std::ostream* os) { - if (str == NULL) { - *os << "NULL"; - } else { - UniversalPrint(string(str), os); +class UniversalTersePrinter { + public: + static void Print(const T& value, ::std::ostream* os) { + UniversalPrint(value, os); } -} -inline void UniversalTersePrint(char* str, ::std::ostream* os) { - UniversalTersePrint(static_cast<const char*>(str), os); +}; +template <typename T> +class UniversalTersePrinter<T&> { + public: + static void Print(const T& value, ::std::ostream* os) { + UniversalPrint(value, os); + } +}; +template <typename T, size_t N> +class UniversalTersePrinter<T[N]> { + public: + static void Print(const T (&value)[N], ::std::ostream* os) { + UniversalPrinter<T[N]>::Print(value, os); + } +}; +template <> +class UniversalTersePrinter<const char*> { + public: + static void Print(const char* str, ::std::ostream* os) { + if (str == NULL) { + *os << "NULL"; + } else { + UniversalPrint(string(str), os); + } + } +}; +template <> +class UniversalTersePrinter<char*> { + public: + static void Print(char* str, ::std::ostream* os) { + UniversalTersePrinter<const char*>::Print(str, os); + } +}; + +#if GTEST_HAS_STD_WSTRING +template <> +class UniversalTersePrinter<const wchar_t*> { + public: + static void Print(const wchar_t* str, ::std::ostream* os) { + if (str == NULL) { + *os << "NULL"; + } else { + UniversalPrint(::std::wstring(str), os); + } + } +}; +#endif + +template <> +class UniversalTersePrinter<wchar_t*> { + public: + static void Print(wchar_t* str, ::std::ostream* os) { + UniversalTersePrinter<const wchar_t*>::Print(str, os); + } +}; + +template <typename T> +void UniversalTersePrint(const T& value, ::std::ostream* os) { + UniversalTersePrinter<T>::Print(value, os); } // Prints a value using the type inferred by the compiler. The @@ -694,7 +750,10 @@ inline void UniversalTersePrint(char* str, ::std::ostream* os) { // NUL-terminated string. template <typename T> void UniversalPrint(const T& value, ::std::ostream* os) { - UniversalPrinter<T>::Print(value, os); + // A workarond for the bug in VC++ 7.1 that prevents us from instantiating + // UniversalPrinter with T directly. + typedef T T1; + UniversalPrinter<T1>::Print(value, os); } #if GTEST_HAS_TR1_TUPLE @@ -787,7 +846,7 @@ Strings UniversalTersePrintTupleFieldsToStrings(const Tuple& value) { template <typename T> ::std::string PrintToString(const T& value) { ::std::stringstream ss; - internal::UniversalTersePrint(value, &ss); + internal::UniversalTersePrinter<T>::Print(value, &ss); return ss.str(); } diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-spi.h b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-spi.h similarity index 99% rename from resources/3rdparty/gtest-1.6.0/include/gtest/gtest-spi.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/gtest-spi.h index b226e5504..f63fa9a1b 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-spi.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-spi.h @@ -223,7 +223,7 @@ class GTEST_API_ SingleFailureChecker { (substr));\ {\ ::testing::ScopedFakeTestPartResultReporter gtest_reporter(\ - ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS,\ + ::testing::ScopedFakeTestPartResultReporter::INTERCEPT_ALL_THREADS, \ >est_failures);\ if (::testing::internal::AlwaysTrue()) { statement; }\ }\ diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-test-part.h b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-test-part.h similarity index 94% rename from resources/3rdparty/gtest-1.6.0/include/gtest/gtest-test-part.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/gtest-test-part.h index 8aeea1498..77eb84483 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-test-part.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-test-part.h @@ -62,7 +62,7 @@ class GTEST_API_ TestPartResult { int a_line_number, const char* a_message) : type_(a_type), - file_name_(a_file_name), + file_name_(a_file_name == NULL ? "" : a_file_name), line_number_(a_line_number), summary_(ExtractSummary(a_message)), message_(a_message) { @@ -73,7 +73,9 @@ class GTEST_API_ TestPartResult { // Gets the name of the source file where the test part took place, or // NULL if it's unknown. - const char* file_name() const { return file_name_.c_str(); } + const char* file_name() const { + return file_name_.empty() ? NULL : file_name_.c_str(); + } // Gets the line in the source file where the test part took place, // or -1 if it's unknown. @@ -96,21 +98,22 @@ class GTEST_API_ TestPartResult { // Returns true iff the test part fatally failed. bool fatally_failed() const { return type_ == kFatalFailure; } + private: Type type_; // Gets the summary of the failure message by omitting the stack // trace in it. - static internal::String ExtractSummary(const char* message); + static std::string ExtractSummary(const char* message); // The name of the source file where the test part took place, or - // NULL if the source file is unknown. - internal::String file_name_; + // "" if the source file is unknown. + std::string file_name_; // The line in the source file where the test part took place, or -1 // if the line number is unknown. int line_number_; - internal::String summary_; // The test failure summary. - internal::String message_; // The test failure message. + std::string summary_; // The test failure summary. + std::string message_; // The test failure message. }; // Prints a TestPartResult object. diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest-typed-test.h b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest-typed-test.h similarity index 100% rename from resources/3rdparty/gtest-1.6.0/include/gtest/gtest-typed-test.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/gtest-typed-test.h diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest.h b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest.h similarity index 88% rename from resources/3rdparty/gtest-1.6.0/include/gtest/gtest.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/gtest.h index cd01c7ba7..6fa0a3925 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest.h @@ -52,6 +52,7 @@ #define GTEST_INCLUDE_GTEST_GTEST_H_ #include <limits> +#include <ostream> #include <vector> #include "gtest/internal/gtest-internal.h" @@ -153,25 +154,15 @@ class ExecDeathTest; class NoExecDeathTest; class FinalSuccessChecker; class GTestFlagSaver; +class StreamingListenerTest; class TestResultAccessor; class TestEventListenersAccessor; class TestEventRepeater; +class UnitTestRecordPropertyTestHelper; class WindowsDeathTest; class UnitTestImpl* GetUnitTestImpl(); void ReportFailureInUnknownLocation(TestPartResult::Type result_type, - const String& message); - -// Converts a streamable value to a String. A NULL pointer is -// converted to "(null)". When the input value is a ::string, -// ::std::string, ::wstring, or ::std::wstring object, each NUL -// character in it is replaced with "\\0". -// Declared in gtest-internal.h but defined here, so that it has access -// to the definition of the Message class, required by the ARM -// compiler. -template <typename T> -String StreamableToString(const T& streamable) { - return (Message() << streamable).GetString(); -} + const std::string& message); } // namespace internal @@ -391,20 +382,21 @@ class GTEST_API_ Test { // non-fatal) failure. static bool HasFailure() { return HasFatalFailure() || HasNonfatalFailure(); } - // Logs a property for the current test. Only the last value for a given - // key is remembered. - // These are public static so they can be called from utility functions - // that are not members of the test fixture. - // The arguments are const char* instead strings, as Google Test is used - // on platforms where string doesn't compile. - // - // Note that a driving consideration for these RecordProperty methods - // was to produce xml output suited to the Greenspan charting utility, - // which at present will only chart values that fit in a 32-bit int. It - // is the user's responsibility to restrict their values to 32-bit ints - // if they intend them to be used with Greenspan. - static void RecordProperty(const char* key, const char* value); - static void RecordProperty(const char* key, int value); + // Logs a property for the current test, test case, or for the entire + // invocation of the test program when used outside of the context of a + // test case. Only the last value for a given key is remembered. These + // are public static so they can be called from utility functions that are + // not members of the test fixture. Calls to RecordProperty made during + // lifespan of the test (from the moment its constructor starts to the + // moment its destructor finishes) will be output in XML as attributes of + // the <testcase> element. Properties recorded from fixture's + // SetUpTestCase or TearDownTestCase are logged as attributes of the + // corresponding <testsuite> element. Calls to RecordProperty made in the + // global context (before or after invocation of RUN_ALL_TESTS and from + // SetUp/TearDown method of Environment objects registered with Google + // Test) will be output as attributes of the <testsuites> element. + static void RecordProperty(const std::string& key, const std::string& value); + static void RecordProperty(const std::string& key, int value); protected: // Creates a Test object. @@ -473,7 +465,7 @@ class TestProperty { // C'tor. TestProperty does NOT have a default constructor. // Always use this constructor (with parameters) to create a // TestProperty object. - TestProperty(const char* a_key, const char* a_value) : + TestProperty(const std::string& a_key, const std::string& a_value) : key_(a_key), value_(a_value) { } @@ -488,15 +480,15 @@ class TestProperty { } // Sets a new value, overriding the one supplied in the constructor. - void SetValue(const char* new_value) { + void SetValue(const std::string& new_value) { value_ = new_value; } private: // The key supplied by the user. - internal::String key_; + std::string key_; // The value supplied by the user. - internal::String value_; + std::string value_; }; // The result of a single Test. This includes a list of @@ -547,6 +539,7 @@ class GTEST_API_ TestResult { private: friend class TestInfo; + friend class TestCase; friend class UnitTest; friend class internal::DefaultGlobalTestPartResultReporter; friend class internal::ExecDeathTest; @@ -571,13 +564,16 @@ class GTEST_API_ TestResult { // a non-fatal failure if invalid (e.g., if it conflicts with reserved // key names). If a property is already recorded for the same key, the // value will be updated, rather than storing multiple values for the same - // key. - void RecordProperty(const TestProperty& test_property); + // key. xml_element specifies the element for which the property is being + // recorded and is used for validation. + void RecordProperty(const std::string& xml_element, + const TestProperty& test_property); // Adds a failure if the key is a reserved attribute of Google Test // testcase tags. Returns true if the property is valid. // TODO(russr): Validate attribute names are legal and human readable. - static bool ValidateTestProperty(const TestProperty& test_property); + static bool ValidateTestProperty(const std::string& xml_element, + const TestProperty& test_property); // Adds a test part result to the list. void AddTestPartResult(const TestPartResult& test_part_result); @@ -650,9 +646,9 @@ class GTEST_API_ TestInfo { return NULL; } - // Returns true if this test should run, that is if the test is not disabled - // (or it is disabled but the also_run_disabled_tests flag has been specified) - // and its full name matches the user-specified filter. + // Returns true if this test should run, that is if the test is not + // disabled (or it is disabled but the also_run_disabled_tests flag has + // been specified) and its full name matches the user-specified filter. // // Google Test allows the user to filter the tests by their full names. // The full name of a test Bar in test case Foo is defined as @@ -668,19 +664,28 @@ class GTEST_API_ TestInfo { // contains the character 'A' or starts with "Foo.". bool should_run() const { return should_run_; } + // Returns true iff this test will appear in the XML report. + bool is_reportable() const { + // For now, the XML report includes all tests matching the filter. + // In the future, we may trim tests that are excluded because of + // sharding. + return matches_filter_; + } + // Returns the result of the test. const TestResult* result() const { return &result_; } private: - #if GTEST_HAS_DEATH_TEST friend class internal::DefaultDeathTestFactory; #endif // GTEST_HAS_DEATH_TEST friend class Test; friend class TestCase; friend class internal::UnitTestImpl; + friend class internal::StreamingListenerTest; friend TestInfo* internal::MakeAndRegisterTestInfo( - const char* test_case_name, const char* name, + const char* test_case_name, + const char* name, const char* type_param, const char* value_param, internal::TypeId fixture_class_id, @@ -690,9 +695,10 @@ class GTEST_API_ TestInfo { // Constructs a TestInfo object. The newly constructed instance assumes // ownership of the factory object. - TestInfo(const char* test_case_name, const char* name, - const char* a_type_param, - const char* a_value_param, + TestInfo(const std::string& test_case_name, + const std::string& name, + const char* a_type_param, // NULL if not a type-parameterized test + const char* a_value_param, // NULL if not a value-parameterized test internal::TypeId fixture_class_id, internal::TestFactoryBase* factory); @@ -778,9 +784,15 @@ class GTEST_API_ TestCase { // Gets the number of failed tests in this test case. int failed_test_count() const; + // Gets the number of disabled tests that will be reported in the XML report. + int reportable_disabled_test_count() const; + // Gets the number of disabled tests in this test case. int disabled_test_count() const; + // Gets the number of tests to be printed in the XML report. + int reportable_test_count() const; + // Get the number of tests in this test case that should run. int test_to_run_count() const; @@ -800,6 +812,10 @@ class GTEST_API_ TestCase { // total_test_count() - 1. If i is not in that range, returns NULL. const TestInfo* GetTestInfo(int i) const; + // Returns the TestResult that holds test properties recorded during + // execution of SetUpTestCase and TearDownTestCase. + const TestResult& ad_hoc_test_result() const { return ad_hoc_test_result_; } + private: friend class Test; friend class internal::UnitTestImpl; @@ -852,11 +868,22 @@ class GTEST_API_ TestCase { return test_info->should_run() && test_info->result()->Failed(); } + // Returns true iff the test is disabled and will be reported in the XML + // report. + static bool TestReportableDisabled(const TestInfo* test_info) { + return test_info->is_reportable() && test_info->is_disabled_; + } + // Returns true iff test is disabled. static bool TestDisabled(const TestInfo* test_info) { return test_info->is_disabled_; } + // Returns true iff this test will appear in the XML report. + static bool TestReportable(const TestInfo* test_info) { + return test_info->is_reportable(); + } + // Returns true if the given test should run. static bool ShouldRunTest(const TestInfo* test_info) { return test_info->should_run(); @@ -869,7 +896,7 @@ class GTEST_API_ TestCase { void UnshuffleTests(); // Name of the test case. - internal::String name_; + std::string name_; // Name of the parameter type, or NULL if this is not a typed or a // type-parameterized test. const internal::scoped_ptr<const ::std::string> type_param_; @@ -888,6 +915,9 @@ class GTEST_API_ TestCase { bool should_run_; // Elapsed time, in milliseconds. TimeInMillis elapsed_time_; + // Holds test properties recorded during execution of SetUpTestCase and + // TearDownTestCase. + TestResult ad_hoc_test_result_; // We disallow copying TestCases. GTEST_DISALLOW_COPY_AND_ASSIGN_(TestCase); @@ -1107,11 +1137,13 @@ class GTEST_API_ UnitTest { // Returns the TestCase object for the test that's currently running, // or NULL if no test is running. - const TestCase* current_test_case() const; + const TestCase* current_test_case() const + GTEST_LOCK_EXCLUDED_(mutex_); // Returns the TestInfo object for the test that's currently running, // or NULL if no test is running. - const TestInfo* current_test_info() const; + const TestInfo* current_test_info() const + GTEST_LOCK_EXCLUDED_(mutex_); // Returns the random seed used at the start of the current test run. int random_seed() const; @@ -1121,7 +1153,8 @@ class GTEST_API_ UnitTest { // value-parameterized tests and instantiate and register them. // // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. - internal::ParameterizedTestCaseRegistry& parameterized_test_registry(); + internal::ParameterizedTestCaseRegistry& parameterized_test_registry() + GTEST_LOCK_EXCLUDED_(mutex_); #endif // GTEST_HAS_PARAM_TEST // Gets the number of successful test cases. @@ -1143,15 +1176,25 @@ class GTEST_API_ UnitTest { // Gets the number of failed tests. int failed_test_count() const; + // Gets the number of disabled tests that will be reported in the XML report. + int reportable_disabled_test_count() const; + // Gets the number of disabled tests. int disabled_test_count() const; + // Gets the number of tests to be printed in the XML report. + int reportable_test_count() const; + // Gets the number of all tests. int total_test_count() const; // Gets the number of tests that should run. int test_to_run_count() const; + // Gets the time of the test program start, in ms from the start of the + // UNIX epoch. + TimeInMillis start_timestamp() const; + // Gets the elapsed time, in milliseconds. TimeInMillis elapsed_time() const; @@ -1166,6 +1209,10 @@ class GTEST_API_ UnitTest { // total_test_case_count() - 1. If i is not in that range, returns NULL. const TestCase* GetTestCase(int i) const; + // Returns the TestResult containing information on test failures and + // properties logged outside of individual test cases. + const TestResult& ad_hoc_test_result() const; + // Returns the list of event listeners that can be used to track events // inside Google Test. TestEventListeners& listeners(); @@ -1189,12 +1236,16 @@ class GTEST_API_ UnitTest { void AddTestPartResult(TestPartResult::Type result_type, const char* file_name, int line_number, - const internal::String& message, - const internal::String& os_stack_trace); + const std::string& message, + const std::string& os_stack_trace) + GTEST_LOCK_EXCLUDED_(mutex_); - // Adds a TestProperty to the current TestResult object. If the result already - // contains a property with the same key, the value will be updated. - void RecordPropertyForCurrentTest(const char* key, const char* value); + // Adds a TestProperty to the current TestResult object when invoked from + // inside a test, to current TestCase's ad_hoc_test_result_ when invoked + // from SetUpTestCase or TearDownTestCase, or to the global property set + // when invoked elsewhere. If the result already contains a property with + // the same key, the value will be updated. + void RecordProperty(const std::string& key, const std::string& value); // Gets the i-th test case among all the test cases. i can range from 0 to // total_test_case_count() - 1. If i is not in that range, returns NULL. @@ -1209,11 +1260,13 @@ class GTEST_API_ UnitTest { friend class Test; friend class internal::AssertHelper; friend class internal::ScopedTrace; + friend class internal::StreamingListenerTest; + friend class internal::UnitTestRecordPropertyTestHelper; friend Environment* AddGlobalTestEnvironment(Environment* env); friend internal::UnitTestImpl* internal::GetUnitTestImpl(); friend void internal::ReportFailureInUnknownLocation( TestPartResult::Type result_type, - const internal::String& message); + const std::string& message); // Creates an empty UnitTest. UnitTest(); @@ -1223,10 +1276,12 @@ class GTEST_API_ UnitTest { // Pushes a trace defined by SCOPED_TRACE() on to the per-thread // Google Test trace stack. - void PushGTestTrace(const internal::TraceInfo& trace); + void PushGTestTrace(const internal::TraceInfo& trace) + GTEST_LOCK_EXCLUDED_(mutex_); // Pops a trace from the per-thread Google Test trace stack. - void PopGTestTrace(); + void PopGTestTrace() + GTEST_LOCK_EXCLUDED_(mutex_); // Protects mutable state in *impl_. This is mutable as some const // methods need to lock it too. @@ -1281,24 +1336,101 @@ GTEST_API_ void InitGoogleTest(int* argc, wchar_t** argv); namespace internal { +// FormatForComparison<ToPrint, OtherOperand>::Format(value) formats a +// value of type ToPrint that is an operand of a comparison assertion +// (e.g. ASSERT_EQ). OtherOperand is the type of the other operand in +// the comparison, and is used to help determine the best way to +// format the value. In particular, when the value is a C string +// (char pointer) and the other operand is an STL string object, we +// want to format the C string as a string, since we know it is +// compared by value with the string object. If the value is a char +// pointer but the other operand is not an STL string object, we don't +// know whether the pointer is supposed to point to a NUL-terminated +// string, and thus want to print it as a pointer to be safe. +// +// INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. + +// The default case. +template <typename ToPrint, typename OtherOperand> +class FormatForComparison { + public: + static ::std::string Format(const ToPrint& value) { + return ::testing::PrintToString(value); + } +}; + +// Array. +template <typename ToPrint, size_t N, typename OtherOperand> +class FormatForComparison<ToPrint[N], OtherOperand> { + public: + static ::std::string Format(const ToPrint* value) { + return FormatForComparison<const ToPrint*, OtherOperand>::Format(value); + } +}; + +// By default, print C string as pointers to be safe, as we don't know +// whether they actually point to a NUL-terminated string. + +#define GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(CharType) \ + template <typename OtherOperand> \ + class FormatForComparison<CharType*, OtherOperand> { \ + public: \ + static ::std::string Format(CharType* value) { \ + return ::testing::PrintToString(static_cast<const void*>(value)); \ + } \ + } + +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(char); +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const char); +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(wchar_t); +GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_(const wchar_t); + +#undef GTEST_IMPL_FORMAT_C_STRING_AS_POINTER_ + +// If a C string is compared with an STL string object, we know it's meant +// to point to a NUL-terminated string, and thus can print it as a string. + +#define GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(CharType, OtherStringType) \ + template <> \ + class FormatForComparison<CharType*, OtherStringType> { \ + public: \ + static ::std::string Format(CharType* value) { \ + return ::testing::PrintToString(value); \ + } \ + } + +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::std::string); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::std::string); + +#if GTEST_HAS_GLOBAL_STRING +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(char, ::string); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const char, ::string); +#endif + +#if GTEST_HAS_GLOBAL_WSTRING +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t, ::wstring); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const wchar_t, ::wstring); +#endif + +#if GTEST_HAS_STD_WSTRING +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(wchar_t, ::std::wstring); +GTEST_IMPL_FORMAT_C_STRING_AS_STRING_(const wchar_t, ::std::wstring); +#endif + +#undef GTEST_IMPL_FORMAT_C_STRING_AS_STRING_ + // Formats a comparison assertion (e.g. ASSERT_EQ, EXPECT_LT, and etc) // operand to be used in a failure message. The type (but not value) // of the other operand may affect the format. This allows us to // print a char* as a raw pointer when it is compared against another -// char*, and print it as a C string when it is compared against an -// std::string object, for example. -// -// The default implementation ignores the type of the other operand. -// Some specialized versions are used to handle formatting wide or -// narrow C strings. +// char* or void*, and print it as a C string when it is compared +// against an std::string object, for example. // // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. template <typename T1, typename T2> -String FormatForComparisonFailureMessage(const T1& value, - const T2& /* other_operand */) { - // C++Builder compiles this incorrectly if the namespace isn't explicitly - // given. - return ::testing::PrintToString(value); +std::string FormatForComparisonFailureMessage( + const T1& value, const T2& /* other_operand */) { + return FormatForComparison<T1, T2>::Format(value); } // The helper function for {ASSERT|EXPECT}_EQ. @@ -1310,7 +1442,7 @@ AssertionResult CmpHelperEQ(const char* expected_expression, #ifdef _MSC_VER # pragma warning(push) // Saves the current warning state. # pragma warning(disable:4389) // Temporarily disables warning on - // signed/unsigned mismatch. + // signed/unsigned mismatch. #endif if (expected == actual) { @@ -1446,11 +1578,11 @@ GTEST_IMPL_CMP_HELPER_(NE, !=); // Implements the helper function for {ASSERT|EXPECT}_LE GTEST_IMPL_CMP_HELPER_(LE, <=); // Implements the helper function for {ASSERT|EXPECT}_LT -GTEST_IMPL_CMP_HELPER_(LT, < ); +GTEST_IMPL_CMP_HELPER_(LT, <); // Implements the helper function for {ASSERT|EXPECT}_GE GTEST_IMPL_CMP_HELPER_(GE, >=); // Implements the helper function for {ASSERT|EXPECT}_GT -GTEST_IMPL_CMP_HELPER_(GT, > ); +GTEST_IMPL_CMP_HELPER_(GT, >); #undef GTEST_IMPL_CMP_HELPER_ @@ -1614,9 +1746,9 @@ class GTEST_API_ AssertHelper { : type(t), file(srcfile), line(line_num), message(msg) { } TestPartResult::Type const type; - const char* const file; - int const line; - String const message; + const char* const file; + int const line; + std::string const message; private: GTEST_DISALLOW_COPY_AND_ASSIGN_(AssertHelperData); @@ -1675,7 +1807,12 @@ class WithParamInterface { // references static data, to reduce the opportunity for incorrect uses // like writing 'WithParamInterface<bool>::GetParam()' for a test that // uses a fixture whose parameter type is int. - const ParamType& GetParam() const { return *parameter_; } + const ParamType& GetParam() const { + GTEST_CHECK_(parameter_ != NULL) + << "GetParam() can only be called inside a value-parameterized test " + << "-- did you intend to write TEST_P instead of TEST_F?"; + return *parameter_; + } private: // Sets parameter value. The caller is responsible for making sure the value @@ -1721,12 +1858,6 @@ class TestWithParam : public Test, public WithParamInterface<T> { // usually want the fail-fast behavior of FAIL and ASSERT_*, but those // writing data-driven tests often find themselves using ADD_FAILURE // and EXPECT_* more. -// -// Examples: -// -// EXPECT_TRUE(server.StatusIsOK()); -// ASSERT_FALSE(server.HasPendingRequest(port)) -// << "There are still pending requests " << "on port " << port; // Generates a nonfatal failure with a generic message. #define ADD_FAILURE() GTEST_NONFATAL_FAILURE_("Failed") @@ -1900,7 +2031,7 @@ class TestWithParam : public Test, public WithParamInterface<T> { # define ASSERT_GT(val1, val2) GTEST_ASSERT_GT(val1, val2) #endif -// C String Comparisons. All tests treat NULL and any non-NULL string +// C-string Comparisons. All tests treat NULL and any non-NULL string // as different. Two NULLs are equal. // // * {ASSERT|EXPECT}_STREQ(s1, s2): Tests that s1 == s2 @@ -2141,15 +2272,20 @@ bool StaticAssertTypeEq() { GTEST_TEST_(test_fixture, test_name, test_fixture, \ ::testing::internal::GetTypeId<test_fixture>()) -// Use this macro in main() to run all tests. It returns 0 if all +} // namespace testing + +// Use this function in main() to run all tests. It returns 0 if all // tests are successful, or 1 otherwise. // // RUN_ALL_TESTS() should be invoked after the command line has been // parsed by InitGoogleTest(). +// +// This function was formerly a macro; thus, it is in the global +// namespace and has an all-caps name. +int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_; -#define RUN_ALL_TESTS()\ - (::testing::UnitTest::GetInstance()->Run()) - -} // namespace testing +inline int RUN_ALL_TESTS() { + return ::testing::UnitTest::GetInstance()->Run(); +} #endif // GTEST_INCLUDE_GTEST_GTEST_H_ diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest_pred_impl.h b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest_pred_impl.h similarity index 98% rename from resources/3rdparty/gtest-1.6.0/include/gtest/gtest_pred_impl.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/gtest_pred_impl.h index 3805f85bd..30ae712f5 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest_pred_impl.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest_pred_impl.h @@ -27,7 +27,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// This file is AUTOMATICALLY GENERATED on 09/24/2010 by command +// This file is AUTOMATICALLY GENERATED on 10/31/2011 by command // 'gen_gtest_pred_impl.py 5'. DO NOT EDIT BY HAND! // // Implements a family of generic predicate assertion macros. @@ -98,7 +98,7 @@ AssertionResult AssertPred1Helper(const char* pred_text, // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT1. // Don't use this in your code. #define GTEST_PRED_FORMAT1_(pred_format, v1, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, v1),\ + GTEST_ASSERT_(pred_format(#v1, v1), \ on_failure) // Internal macro for implementing {EXPECT|ASSERT}_PRED1. Don't use @@ -144,7 +144,7 @@ AssertionResult AssertPred2Helper(const char* pred_text, // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT2. // Don't use this in your code. #define GTEST_PRED_FORMAT2_(pred_format, v1, v2, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2),\ + GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2), \ on_failure) // Internal macro for implementing {EXPECT|ASSERT}_PRED2. Don't use @@ -197,7 +197,7 @@ AssertionResult AssertPred3Helper(const char* pred_text, // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT3. // Don't use this in your code. #define GTEST_PRED_FORMAT3_(pred_format, v1, v2, v3, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3),\ + GTEST_ASSERT_(pred_format(#v1, #v2, #v3, v1, v2, v3), \ on_failure) // Internal macro for implementing {EXPECT|ASSERT}_PRED3. Don't use @@ -257,7 +257,7 @@ AssertionResult AssertPred4Helper(const char* pred_text, // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT4. // Don't use this in your code. #define GTEST_PRED_FORMAT4_(pred_format, v1, v2, v3, v4, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4),\ + GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, v1, v2, v3, v4), \ on_failure) // Internal macro for implementing {EXPECT|ASSERT}_PRED4. Don't use @@ -324,7 +324,7 @@ AssertionResult AssertPred5Helper(const char* pred_text, // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT5. // Don't use this in your code. #define GTEST_PRED_FORMAT5_(pred_format, v1, v2, v3, v4, v5, on_failure)\ - GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5),\ + GTEST_ASSERT_(pred_format(#v1, #v2, #v3, #v4, #v5, v1, v2, v3, v4, v5), \ on_failure) // Internal macro for implementing {EXPECT|ASSERT}_PRED5. Don't use diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/gtest_prod.h b/resources/3rdparty/gtest-1.7.0/include/gtest/gtest_prod.h similarity index 100% rename from resources/3rdparty/gtest-1.6.0/include/gtest/gtest_prod.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/gtest_prod.h diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-death-test-internal.h b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h similarity index 94% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-death-test-internal.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h index 1d9f83b65..2b3a78f5b 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-death-test-internal.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h @@ -127,11 +127,11 @@ class GTEST_API_ DeathTest { // the last death test. static const char* LastMessage(); - static void set_last_death_test_message(const String& message); + static void set_last_death_test_message(const std::string& message); private: // A string containing a description of the outcome of the last death test. - static String last_death_test_message_; + static std::string last_death_test_message_; GTEST_DISALLOW_COPY_AND_ASSIGN_(DeathTest); }; @@ -217,12 +217,23 @@ GTEST_API_ bool ExitedUnsuccessfully(int exit_status); // The symbol "fail" here expands to something into which a message // can be streamed. +// This macro is for implementing ASSERT/EXPECT_DEBUG_DEATH when compiled in +// NDEBUG mode. In this case we need the statements to be executed, the regex is +// ignored, and the macro must accept a streamed message even though the message +// is never printed. +# define GTEST_EXECUTE_STATEMENT_(statement, regex) \ + GTEST_AMBIGUOUS_ELSE_BLOCKER_ \ + if (::testing::internal::AlwaysTrue()) { \ + GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_(statement); \ + } else \ + ::testing::Message() + // A class representing the parsed contents of the // --gtest_internal_run_death_test flag, as it existed when // RUN_ALL_TESTS was called. class InternalRunDeathTestFlag { public: - InternalRunDeathTestFlag(const String& a_file, + InternalRunDeathTestFlag(const std::string& a_file, int a_line, int an_index, int a_write_fd) @@ -234,13 +245,13 @@ class InternalRunDeathTestFlag { posix::Close(write_fd_); } - String file() const { return file_; } + const std::string& file() const { return file_; } int line() const { return line_; } int index() const { return index_; } int write_fd() const { return write_fd_; } private: - String file_; + std::string file_; int line_; int index_; int write_fd_; diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-filepath.h b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-filepath.h similarity index 96% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-filepath.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-filepath.h index b36b3cf21..7a13b4b0d 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-filepath.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-filepath.h @@ -61,11 +61,7 @@ class GTEST_API_ FilePath { FilePath() : pathname_("") { } FilePath(const FilePath& rhs) : pathname_(rhs.pathname_) { } - explicit FilePath(const char* pathname) : pathname_(pathname) { - Normalize(); - } - - explicit FilePath(const String& pathname) : pathname_(pathname) { + explicit FilePath(const std::string& pathname) : pathname_(pathname) { Normalize(); } @@ -78,7 +74,7 @@ class GTEST_API_ FilePath { pathname_ = rhs.pathname_; } - String ToString() const { return pathname_; } + const std::string& string() const { return pathname_; } const char* c_str() const { return pathname_.c_str(); } // Returns the current working directory, or "" if unsuccessful. @@ -111,8 +107,8 @@ class GTEST_API_ FilePath { const FilePath& base_name, const char* extension); - // Returns true iff the path is NULL or "". - bool IsEmpty() const { return c_str() == NULL || *c_str() == '\0'; } + // Returns true iff the path is "". + bool IsEmpty() const { return pathname_.empty(); } // If input name has a trailing separator character, removes it and returns // the name, otherwise return the name string unmodified. @@ -201,7 +197,7 @@ class GTEST_API_ FilePath { // separators. Returns NULL if no path separator was found. const char* FindLastPathSeparator() const; - String pathname_; + std::string pathname_; }; // class FilePath } // namespace internal diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-internal.h b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-internal.h similarity index 88% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-internal.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-internal.h index 7aa1197f1..0dcc3a319 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-internal.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-internal.h @@ -46,12 +46,18 @@ # include <unistd.h> #endif // GTEST_OS_LINUX +#if GTEST_HAS_EXCEPTIONS +# include <stdexcept> +#endif + #include <ctype.h> +#include <float.h> #include <string.h> #include <iomanip> #include <limits> #include <set> +#include "gtest/gtest-message.h" #include "gtest/internal/gtest-string.h" #include "gtest/internal/gtest-filepath.h" #include "gtest/internal/gtest-type-util.h" @@ -67,36 +73,6 @@ #define GTEST_CONCAT_TOKEN_(foo, bar) GTEST_CONCAT_TOKEN_IMPL_(foo, bar) #define GTEST_CONCAT_TOKEN_IMPL_(foo, bar) foo ## bar -// Google Test defines the testing::Message class to allow construction of -// test messages via the << operator. The idea is that anything -// streamable to std::ostream can be streamed to a testing::Message. -// This allows a user to use his own types in Google Test assertions by -// overloading the << operator. -// -// util/gtl/stl_logging-inl.h overloads << for STL containers. These -// overloads cannot be defined in the std namespace, as that will be -// undefined behavior. Therefore, they are defined in the global -// namespace instead. -// -// C++'s symbol lookup rule (i.e. Koenig lookup) says that these -// overloads are visible in either the std namespace or the global -// namespace, but not other namespaces, including the testing -// namespace which Google Test's Message class is in. -// -// To allow STL containers (and other types that has a << operator -// defined in the global namespace) to be used in Google Test assertions, -// testing::Message must access the custom << operator from the global -// namespace. Hence this helper function. -// -// Note: Jeffrey Yasskin suggested an alternative fix by "using -// ::operator<<;" in the definition of Message's operator<<. That fix -// doesn't require a helper function, but unfortunately doesn't -// compile with MSVC. -template <typename T> -inline void GTestStreamToHelper(std::ostream* os, const T& val) { - *os << val; -} - class ProtocolMessage; namespace proto2 { class Message; } @@ -122,17 +98,12 @@ class TestInfoImpl; // Opaque implementation of TestInfo class UnitTestImpl; // Opaque implementation of UnitTest // How many times InitGoogleTest() has been called. -extern int g_init_gtest_count; +GTEST_API_ extern int g_init_gtest_count; // The text used in failure messages to indicate the start of the // stack trace. GTEST_API_ extern const char kStackTraceMarker[]; -// A secret type that Google Test users don't know about. It has no -// definition on purpose. Therefore it's impossible to create a -// Secret object, which is what we want. -class Secret; - // Two overloaded helpers for checking at compile time whether an // expression is a null pointer literal (i.e. NULL or any 0-valued // compile-time integral constant). Their return values have @@ -163,8 +134,23 @@ char (&IsNullLiteralHelper(...))[2]; // NOLINT #endif // GTEST_ELLIPSIS_NEEDS_POD_ // Appends the user-supplied message to the Google-Test-generated message. -GTEST_API_ String AppendUserMessage(const String& gtest_msg, - const Message& user_msg); +GTEST_API_ std::string AppendUserMessage( + const std::string& gtest_msg, const Message& user_msg); + +#if GTEST_HAS_EXCEPTIONS + +// This exception is thrown by (and only by) a failed Google Test +// assertion when GTEST_FLAG(throw_on_failure) is true (if exceptions +// are enabled). We derive it from std::runtime_error, which is for +// errors presumably detectable only at run time. Since +// std::runtime_error inherits from std::exception, many testing +// frameworks know how to extract and print the message inside it. +class GTEST_API_ GoogleTestFailureException : public ::std::runtime_error { + public: + explicit GoogleTestFailureException(const TestPartResult& failure); +}; + +#endif // GTEST_HAS_EXCEPTIONS // A helper class for creating scoped traces in user programs. class GTEST_API_ ScopedTrace { @@ -185,77 +171,6 @@ class GTEST_API_ ScopedTrace { // c'tor and d'tor. Therefore it doesn't // need to be used otherwise. -// Converts a streamable value to a String. A NULL pointer is -// converted to "(null)". When the input value is a ::string, -// ::std::string, ::wstring, or ::std::wstring object, each NUL -// character in it is replaced with "\\0". -// Declared here but defined in gtest.h, so that it has access -// to the definition of the Message class, required by the ARM -// compiler. -template <typename T> -String StreamableToString(const T& streamable); - -// The Symbian compiler has a bug that prevents it from selecting the -// correct overload of FormatForComparisonFailureMessage (see below) -// unless we pass the first argument by reference. If we do that, -// however, Visual Age C++ 10.1 generates a compiler error. Therefore -// we only apply the work-around for Symbian. -#if defined(__SYMBIAN32__) -# define GTEST_CREF_WORKAROUND_ const& -#else -# define GTEST_CREF_WORKAROUND_ -#endif - -// When this operand is a const char* or char*, if the other operand -// is a ::std::string or ::string, we print this operand as a C string -// rather than a pointer (we do the same for wide strings); otherwise -// we print it as a pointer to be safe. - -// This internal macro is used to avoid duplicated code. -#define GTEST_FORMAT_IMPL_(operand2_type, operand1_printer)\ -inline String FormatForComparisonFailureMessage(\ - operand2_type::value_type* GTEST_CREF_WORKAROUND_ str, \ - const operand2_type& /*operand2*/) {\ - return operand1_printer(str);\ -}\ -inline String FormatForComparisonFailureMessage(\ - const operand2_type::value_type* GTEST_CREF_WORKAROUND_ str, \ - const operand2_type& /*operand2*/) {\ - return operand1_printer(str);\ -} - -GTEST_FORMAT_IMPL_(::std::string, String::ShowCStringQuoted) -#if GTEST_HAS_STD_WSTRING -GTEST_FORMAT_IMPL_(::std::wstring, String::ShowWideCStringQuoted) -#endif // GTEST_HAS_STD_WSTRING - -#if GTEST_HAS_GLOBAL_STRING -GTEST_FORMAT_IMPL_(::string, String::ShowCStringQuoted) -#endif // GTEST_HAS_GLOBAL_STRING -#if GTEST_HAS_GLOBAL_WSTRING -GTEST_FORMAT_IMPL_(::wstring, String::ShowWideCStringQuoted) -#endif // GTEST_HAS_GLOBAL_WSTRING - -#undef GTEST_FORMAT_IMPL_ - -// The next four overloads handle the case where the operand being -// printed is a char/wchar_t pointer and the other operand is not a -// string/wstring object. In such cases, we just print the operand as -// a pointer to be safe. -#define GTEST_FORMAT_CHAR_PTR_IMPL_(CharType) \ - template <typename T> \ - String FormatForComparisonFailureMessage(CharType* GTEST_CREF_WORKAROUND_ p, \ - const T&) { \ - return PrintToString(static_cast<const void*>(p)); \ - } - -GTEST_FORMAT_CHAR_PTR_IMPL_(char) -GTEST_FORMAT_CHAR_PTR_IMPL_(const char) -GTEST_FORMAT_CHAR_PTR_IMPL_(wchar_t) -GTEST_FORMAT_CHAR_PTR_IMPL_(const wchar_t) - -#undef GTEST_FORMAT_CHAR_PTR_IMPL_ - // Constructs and returns the message for an equality assertion // (e.g. ASSERT_EQ, EXPECT_STREQ, etc) failure. // @@ -273,12 +188,12 @@ GTEST_FORMAT_CHAR_PTR_IMPL_(const wchar_t) // be inserted into the message. GTEST_API_ AssertionResult EqFailure(const char* expected_expression, const char* actual_expression, - const String& expected_value, - const String& actual_value, + const std::string& expected_value, + const std::string& actual_value, bool ignoring_case); // Constructs a failure message for Boolean assertions such as EXPECT_TRUE. -GTEST_API_ String GetBoolAssertionFailureMessage( +GTEST_API_ std::string GetBoolAssertionFailureMessage( const AssertionResult& assertion_result, const char* expression_text, const char* actual_predicate_value, @@ -353,7 +268,7 @@ class FloatingPoint { // bits. Therefore, 4 should be enough for ordinary use. // // See the following article for more details on ULP: - // http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm. + // http://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ static const size_t kMaxUlps = 4; // Constructs a FloatingPoint from a raw floating-point number. @@ -380,6 +295,9 @@ class FloatingPoint { return ReinterpretBits(kExponentBitMask); } + // Returns the maximum representable finite floating-point number. + static RawType Max(); + // Non-static methods // Returns the bits that represents this number. @@ -460,6 +378,13 @@ class FloatingPoint { FloatingPointUnion u_; }; +// We cannot use std::numeric_limits<T>::max() as it clashes with the max() +// macro defined by <windows.h>. +template <> +inline float FloatingPoint<float>::Max() { return FLT_MAX; } +template <> +inline double FloatingPoint<double>::Max() { return DBL_MAX; } + // Typedefs the instances of the FloatingPoint template class that we // care to use. typedef FloatingPoint<float> Float; @@ -554,7 +479,7 @@ typedef void (*TearDownTestCaseFunc)(); // test_case_name: name of the test case // name: name of the test // type_param the name of the test's type parameter, or NULL if -// this is not a typed or a type-parameterized test. +// this is not a typed or a type-parameterized test. // value_param text representation of the test's value parameter, // or NULL if this is not a type-parameterized test. // fixture_class_id: ID of the test fixture class @@ -564,7 +489,8 @@ typedef void (*TearDownTestCaseFunc)(); // The newly created TestInfo instance will assume // ownership of the factory object. GTEST_API_ TestInfo* MakeAndRegisterTestInfo( - const char* test_case_name, const char* name, + const char* test_case_name, + const char* name, const char* type_param, const char* value_param, TypeId fixture_class_id, @@ -624,9 +550,9 @@ inline const char* SkipComma(const char* str) { // Returns the prefix of 'str' before the first comma in it; returns // the entire string if it contains no comma. -inline String GetPrefixUntilComma(const char* str) { +inline std::string GetPrefixUntilComma(const char* str) { const char* comma = strchr(str, ','); - return comma == NULL ? String(str) : String(str, comma - str); + return comma == NULL ? str : std::string(str, comma); } // TypeParameterizedTest<Fixture, TestSel, Types>::Register() @@ -652,8 +578,8 @@ class TypeParameterizedTest { // First, registers the first type-parameterized test in the type // list. MakeAndRegisterTestInfo( - String::Format("%s%s%s/%d", prefix, prefix[0] == '\0' ? "" : "/", - case_name, index).c_str(), + (std::string(prefix) + (prefix[0] == '\0' ? "" : "/") + case_name + "/" + + StreamableToString(index)).c_str(), GetPrefixUntilComma(test_names).c_str(), GetTypeName<Type>().c_str(), NULL, // No value parameter. @@ -711,7 +637,7 @@ class TypeParameterizedTestCase<Fixture, Templates0, Types> { #endif // GTEST_HAS_TYPED_TEST || GTEST_HAS_TYPED_TEST_P -// Returns the current OS stack trace as a String. +// Returns the current OS stack trace as an std::string. // // The maximum number of stack frames to be included is specified by // the gtest_stack_trace_depth flag. The skip_count parameter @@ -721,8 +647,8 @@ class TypeParameterizedTestCase<Fixture, Templates0, Types> { // For example, if Foo() calls Bar(), which in turn calls // GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in // the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't. -GTEST_API_ String GetCurrentOsStackTraceExceptTop(UnitTest* unit_test, - int skip_count); +GTEST_API_ std::string GetCurrentOsStackTraceExceptTop( + UnitTest* unit_test, int skip_count); // Helpers for suppressing warnings on unreachable code or constant // condition. @@ -797,13 +723,19 @@ struct RemoveConst<const T> { typedef T type; }; // NOLINT // MSVC 8.0, Sun C++, and IBM XL C++ have a bug which causes the above // definition to fail to remove the const in 'const int[3]' and 'const // char[3][4]'. The following specialization works around the bug. -// However, it causes trouble with GCC and thus needs to be -// conditionally compiled. -#if defined(_MSC_VER) || defined(__SUNPRO_CC) || defined(__IBMCPP__) template <typename T, size_t N> struct RemoveConst<const T[N]> { typedef typename RemoveConst<T>::type type[N]; }; + +#if defined(_MSC_VER) && _MSC_VER < 1400 +// This is the only specialization that allows VC++ 7.1 to remove const in +// 'const int[3] and 'const int[3][4]'. However, it causes trouble with GCC +// and thus needs to be conditionally compiled. +template <typename T, size_t N> +struct RemoveConst<T[N]> { + typedef typename RemoveConst<T>::type type[N]; +}; #endif // A handy wrapper around RemoveConst that works when the argument diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-linked_ptr.h b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h similarity index 98% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-linked_ptr.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h index 57147b4e8..b1362cd00 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-linked_ptr.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h @@ -105,8 +105,8 @@ class linked_ptr_internal { // framework. // Join an existing circle. - // L < g_linked_ptr_mutex - void join(linked_ptr_internal const* ptr) { + void join(linked_ptr_internal const* ptr) + GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex) { MutexLock lock(&g_linked_ptr_mutex); linked_ptr_internal const* p = ptr; @@ -117,8 +117,8 @@ class linked_ptr_internal { // Leave whatever circle we're part of. Returns true if we were the // last member of the circle. Once this is done, you can join() another. - // L < g_linked_ptr_mutex - bool depart() { + bool depart() + GTEST_LOCK_EXCLUDED_(g_linked_ptr_mutex) { MutexLock lock(&g_linked_ptr_mutex); if (next_ == this) return true; diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-param-util-generated.h b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h similarity index 83% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-param-util-generated.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h index 258267500..e80548592 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-param-util-generated.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h @@ -95,7 +95,7 @@ class ValueArray2 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_)}; return ValuesIn(array); } @@ -114,7 +114,8 @@ class ValueArray3 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_)}; return ValuesIn(array); } @@ -135,7 +136,8 @@ class ValueArray4 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_)}; return ValuesIn(array); } @@ -157,7 +159,8 @@ class ValueArray5 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_)}; return ValuesIn(array); } @@ -181,7 +184,9 @@ class ValueArray6 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_)}; return ValuesIn(array); } @@ -206,7 +211,9 @@ class ValueArray7 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_)}; return ValuesIn(array); } @@ -233,7 +240,9 @@ class ValueArray8 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_)}; return ValuesIn(array); } @@ -261,7 +270,10 @@ class ValueArray9 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_)}; return ValuesIn(array); } @@ -290,7 +302,10 @@ class ValueArray10 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_)}; return ValuesIn(array); } @@ -321,7 +336,10 @@ class ValueArray11 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_)}; return ValuesIn(array); } @@ -353,8 +371,11 @@ class ValueArray12 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_)}; return ValuesIn(array); } @@ -388,8 +409,11 @@ class ValueArray13 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_)}; return ValuesIn(array); } @@ -424,8 +448,11 @@ class ValueArray14 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_)}; return ValuesIn(array); } @@ -461,8 +488,12 @@ class ValueArray15 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_)}; return ValuesIn(array); } @@ -501,8 +532,12 @@ class ValueArray16 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_)}; return ValuesIn(array); } @@ -542,8 +577,12 @@ class ValueArray17 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_)}; return ValuesIn(array); } @@ -584,8 +623,13 @@ class ValueArray18 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_)}; return ValuesIn(array); } @@ -627,8 +671,13 @@ class ValueArray19 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_)}; return ValuesIn(array); } @@ -672,8 +721,13 @@ class ValueArray20 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_)}; return ValuesIn(array); } @@ -719,8 +773,14 @@ class ValueArray21 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_)}; return ValuesIn(array); } @@ -767,8 +827,14 @@ class ValueArray22 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_)}; return ValuesIn(array); } @@ -817,9 +883,14 @@ class ValueArray23 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, - v23_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_)}; return ValuesIn(array); } @@ -869,9 +940,15 @@ class ValueArray24 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_)}; return ValuesIn(array); } @@ -922,9 +999,15 @@ class ValueArray25 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_)}; return ValuesIn(array); } @@ -977,9 +1060,15 @@ class ValueArray26 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_)}; return ValuesIn(array); } @@ -1034,9 +1123,16 @@ class ValueArray27 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_)}; return ValuesIn(array); } @@ -1092,9 +1188,16 @@ class ValueArray28 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_)}; return ValuesIn(array); } @@ -1151,9 +1254,16 @@ class ValueArray29 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_)}; return ValuesIn(array); } @@ -1212,9 +1322,17 @@ class ValueArray30 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_)}; return ValuesIn(array); } @@ -1275,9 +1393,17 @@ class ValueArray31 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_)}; return ValuesIn(array); } @@ -1339,9 +1465,17 @@ class ValueArray32 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_)}; return ValuesIn(array); } @@ -1405,9 +1539,18 @@ class ValueArray33 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_)}; return ValuesIn(array); } @@ -1472,9 +1615,18 @@ class ValueArray34 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_)}; return ValuesIn(array); } @@ -1540,10 +1692,18 @@ class ValueArray35 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, - v35_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_)}; return ValuesIn(array); } @@ -1611,10 +1771,19 @@ class ValueArray36 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_)}; return ValuesIn(array); } @@ -1684,10 +1853,19 @@ class ValueArray37 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_)}; return ValuesIn(array); } @@ -1758,10 +1936,19 @@ class ValueArray38 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_)}; return ValuesIn(array); } @@ -1833,10 +2020,20 @@ class ValueArray39 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_)}; return ValuesIn(array); } @@ -1910,10 +2107,20 @@ class ValueArray40 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_)}; return ValuesIn(array); } @@ -1989,10 +2196,20 @@ class ValueArray41 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_)}; return ValuesIn(array); } @@ -2069,10 +2286,21 @@ class ValueArray42 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_)}; return ValuesIn(array); } @@ -2150,10 +2378,21 @@ class ValueArray43 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_)}; return ValuesIn(array); } @@ -2233,10 +2472,21 @@ class ValueArray44 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_)}; return ValuesIn(array); } @@ -2317,10 +2567,22 @@ class ValueArray45 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_)}; return ValuesIn(array); } @@ -2403,10 +2665,22 @@ class ValueArray46 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_, v46_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_), static_cast<T>(v46_)}; return ValuesIn(array); } @@ -2491,11 +2765,22 @@ class ValueArray47 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_, v46_, - v47_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_)}; return ValuesIn(array); } @@ -2581,11 +2866,23 @@ class ValueArray48 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_, v46_, v47_, - v48_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), + static_cast<T>(v48_)}; return ValuesIn(array); } @@ -2672,11 +2969,23 @@ class ValueArray49 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_, v46_, v47_, - v48_, v49_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), + static_cast<T>(v48_), static_cast<T>(v49_)}; return ValuesIn(array); } @@ -2764,11 +3073,23 @@ class ValueArray50 { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_, - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_, - v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_, v35_, - v36_, v37_, v38_, v39_, v40_, v41_, v42_, v43_, v44_, v45_, v46_, v47_, - v48_, v49_, v50_}; + const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), + static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), + static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), + static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), + static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), + static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), + static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), + static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), + static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), + static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), + static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), + static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), + static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), + static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), + static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), + static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), + static_cast<T>(v48_), static_cast<T>(v49_), static_cast<T>(v50_)}; return ValuesIn(array); } diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-param-util-generated.h.pump b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump similarity index 99% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-param-util-generated.h.pump rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump index dbe938630..009206fd3 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-param-util-generated.h.pump +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump @@ -98,7 +98,7 @@ class ValueArray$i { template <typename T> operator ParamGenerator<T>() const { - const T array[] = {$for j, [[v$(j)_]]}; + const T array[] = {$for j, [[static_cast<T>(v$(j)_)]]}; return ValuesIn(array); } diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-param-util.h b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-param-util.h similarity index 99% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-param-util.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-param-util.h index 0ef9718cf..d5e1028b0 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-param-util.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-param-util.h @@ -494,10 +494,10 @@ class ParameterizedTestCaseInfo : public ParameterizedTestCaseInfoBase { const string& instantiation_name = gen_it->first; ParamGenerator<ParamType> generator((*gen_it->second)()); - Message test_case_name_stream; + string test_case_name; if ( !instantiation_name.empty() ) - test_case_name_stream << instantiation_name << "/"; - test_case_name_stream << test_info->test_case_base_name; + test_case_name = instantiation_name + "/"; + test_case_name += test_info->test_case_base_name; int i = 0; for (typename ParamGenerator<ParamType>::iterator param_it = @@ -506,7 +506,7 @@ class ParameterizedTestCaseInfo : public ParameterizedTestCaseInfoBase { Message test_name_stream; test_name_stream << test_info->test_base_name << "/" << i; MakeAndRegisterTestInfo( - test_case_name_stream.GetString().c_str(), + test_case_name.c_str(), test_name_stream.GetString().c_str(), NULL, // No type parameter. PrintToString(*param_it).c_str(), diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-port.h b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-port.h similarity index 87% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-port.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-port.h index 4beed3856..dc4fe0cb6 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-port.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-port.h @@ -32,6 +32,10 @@ // Low-level types and utilities for porting Google Test to various // platforms. They are subject to change without notice. DO NOT USE // THEM IN USER CODE. +// +// This file is fundamental to Google Test. All other Google Test source +// files are expected to #include this. Therefore, it cannot #include +// any other Google Test header. #ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_H_ @@ -72,6 +76,8 @@ // Test's own tr1 tuple implementation should be // used. Unused when the user sets // GTEST_HAS_TR1_TUPLE to 0. +// GTEST_LANG_CXX11 - Define it to 1/0 to indicate that Google Test +// is building in C++11/C++98 mode. // GTEST_LINKED_AS_SHARED_LIBRARY // - Define to 1 when compiling tests that use // Google Test as a shared library (known as @@ -90,7 +96,11 @@ // GTEST_OS_LINUX - Linux // GTEST_OS_LINUX_ANDROID - Google Android // GTEST_OS_MAC - Mac OS X +// GTEST_OS_IOS - iOS +// GTEST_OS_IOS_SIMULATOR - iOS simulator // GTEST_OS_NACL - Google Native Client (NaCl) +// GTEST_OS_OPENBSD - OpenBSD +// GTEST_OS_QNX - QNX // GTEST_OS_SOLARIS - Sun Solaris // GTEST_OS_SYMBIAN - Symbian // GTEST_OS_WINDOWS - Windows (Desktop, MinGW, or Mobile) @@ -175,7 +185,7 @@ // GTEST_FLAG() - references a flag. // GTEST_DECLARE_*() - declares a flag. // GTEST_DEFINE_*() - defines a flag. -// GetArgvs() - returns the command line as a vector of strings. +// GetInjectableArgvs() - returns the command line as a vector of strings. // // Environment variable utilities: // GetEnv() - gets the value of an environment variable. @@ -193,6 +203,11 @@ # include <sys/stat.h> #endif // !_WIN32_WCE +#if defined __APPLE__ +# include <AvailabilityMacros.h> +# include <TargetConditionals.h> +#endif + #include <iostream> // NOLINT #include <sstream> // NOLINT #include <string> // NOLINT @@ -227,11 +242,17 @@ # endif // _WIN32_WCE #elif defined __APPLE__ # define GTEST_OS_MAC 1 +# if TARGET_OS_IPHONE +# define GTEST_OS_IOS 1 +# if TARGET_IPHONE_SIMULATOR +# define GTEST_OS_IOS_SIMULATOR 1 +# endif +# endif #elif defined __linux__ # define GTEST_OS_LINUX 1 -# ifdef ANDROID +# if defined __ANDROID__ # define GTEST_OS_LINUX_ANDROID 1 -# endif // ANDROID +# endif #elif defined __MVS__ # define GTEST_OS_ZOS 1 #elif defined(__sun) && defined(__SVR4) @@ -242,8 +263,25 @@ # define GTEST_OS_HPUX 1 #elif defined __native_client__ # define GTEST_OS_NACL 1 +#elif defined __OpenBSD__ +# define GTEST_OS_OPENBSD 1 +#elif defined __QNX__ +# define GTEST_OS_QNX 1 #endif // __CYGWIN__ +#ifndef GTEST_LANG_CXX11 +// gcc and clang define __GXX_EXPERIMENTAL_CXX0X__ when +// -std={c,gnu}++{0x,11} is passed. The C++11 standard specifies a +// value for __cplusplus, and recent versions of clang, gcc, and +// probably other compilers set that too in C++11 mode. +# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L +// Compiling in at least C++11 mode. +# define GTEST_LANG_CXX11 1 +# else +# define GTEST_LANG_CXX11 0 +# endif +#endif + // Brings in definitions for functions used in the testing::internal::posix // namespace (read, write, close, chdir, isatty, stat). We do not currently // use them on Windows Mobile. @@ -252,20 +290,25 @@ // is not the case, we need to include headers that provide the functions // mentioned above. # include <unistd.h> -# if !GTEST_OS_NACL -// TODO(vladl@google.com): Remove this condition when Native Client SDK adds -// strings.h (tracked in -// http://code.google.com/p/nativeclient/issues/detail?id=1175). -# include <strings.h> // Native Client doesn't provide strings.h. -# endif +# include <strings.h> #elif !GTEST_OS_WINDOWS_MOBILE # include <direct.h> # include <io.h> #endif +#if GTEST_OS_LINUX_ANDROID +// Used to define __ANDROID_API__ matching the target NDK API level. +# include <android/api-level.h> // NOLINT +#endif + // Defines this to true iff Google Test can use POSIX regular expressions. #ifndef GTEST_HAS_POSIX_RE -# define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS) +# if GTEST_OS_LINUX_ANDROID +// On Android, <regex.h> is only available starting with Gingerbread. +# define GTEST_HAS_POSIX_RE (__ANDROID_API__ >= 9) +# else +# define GTEST_HAS_POSIX_RE (!GTEST_OS_WINDOWS) +# endif #endif #if GTEST_HAS_POSIX_RE @@ -380,11 +423,27 @@ # elif defined(__GNUC__) && (GTEST_GCC_VER_ >= 40302) # ifdef __GXX_RTTI -# define GTEST_HAS_RTTI 1 +// When building against STLport with the Android NDK and with +// -frtti -fno-exceptions, the build fails at link time with undefined +// references to __cxa_bad_typeid. Note sure if STL or toolchain bug, +// so disable RTTI when detected. +# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) && \ + !defined(__EXCEPTIONS) +# define GTEST_HAS_RTTI 0 +# else +# define GTEST_HAS_RTTI 1 +# endif // GTEST_OS_LINUX_ANDROID && __STLPORT_MAJOR && !__EXCEPTIONS # else # define GTEST_HAS_RTTI 0 # endif // __GXX_RTTI +// Clang defines __GXX_RTTI starting with version 3.0, but its manual recommends +// using has_feature instead. has_feature(cxx_rtti) is supported since 2.7, the +// first version with C++ support. +# elif defined(__clang__) + +# define GTEST_HAS_RTTI __has_feature(cxx_rtti) + // Starting with version 9.0 IBM Visual Age defines __RTTI_ALL__ to 1 if // both the typeid and dynamic_cast features are present. # elif defined(__IBMCPP__) && (__IBMCPP__ >= 900) @@ -417,7 +476,8 @@ // // To disable threading support in Google Test, add -DGTEST_HAS_PTHREAD=0 // to your compiler flags. -# define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX) +# define GTEST_HAS_PTHREAD (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_HPUX \ + || GTEST_OS_QNX) #endif // GTEST_HAS_PTHREAD #if GTEST_HAS_PTHREAD @@ -433,27 +493,43 @@ // this macro to 0 to prevent Google Test from using tuple (any // feature depending on tuple with be disabled in this mode). #ifndef GTEST_HAS_TR1_TUPLE +# if GTEST_OS_LINUX_ANDROID && defined(_STLPORT_MAJOR) +// STLport, provided with the Android NDK, has neither <tr1/tuple> or <tuple>. +# define GTEST_HAS_TR1_TUPLE 0 +# else // The user didn't tell us not to do it, so we assume it's OK. -# define GTEST_HAS_TR1_TUPLE 1 +# define GTEST_HAS_TR1_TUPLE 1 +# endif #endif // GTEST_HAS_TR1_TUPLE -#ifdef __clang__ - #define GTEST_USE_OWN_TR1_TUPLE 1 -#endif // Determines whether Google Test's own tr1 tuple implementation // should be used. #ifndef GTEST_USE_OWN_TR1_TUPLE // The user didn't tell us, so we need to figure it out. // We use our own TR1 tuple if we aren't sure the user has an -// implementation of it already. At this time, GCC 4.0.0+ and MSVC -// 2010 are the only mainstream compilers that come with a TR1 tuple -// implementation. NVIDIA's CUDA NVCC compiler pretends to be GCC by -// defining __GNUC__ and friends, but cannot compile GCC's tuple -// implementation. MSVC 2008 (9.0) provides TR1 tuple in a 323 MB -// Feature Pack download, which we cannot assume the user has. -# if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000)) \ - || _MSC_VER >= 1600 +// implementation of it already. At this time, libstdc++ 4.0.0+ and +// MSVC 2010 are the only mainstream standard libraries that come +// with a TR1 tuple implementation. NVIDIA's CUDA NVCC compiler +// pretends to be GCC by defining __GNUC__ and friends, but cannot +// compile GCC's tuple implementation. MSVC 2008 (9.0) provides TR1 +// tuple in a 323 MB Feature Pack download, which we cannot assume the +// user has. QNX's QCC compiler is a modified GCC but it doesn't +// support TR1 tuple. libc++ only provides std::tuple, in C++11 mode, +// and it can be used with some compilers that define __GNUC__. +# if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000) \ + && !GTEST_OS_QNX && !defined(_LIBCPP_VERSION)) || _MSC_VER >= 1600 +# define GTEST_ENV_HAS_TR1_TUPLE_ 1 +# endif + +// C++11 specifies that <tuple> provides std::tuple. Use that if gtest is used +// in C++11 mode and libstdc++ isn't very old (binaries targeting OS X 10.6 +// can build with clang but need to use gcc4.2's libstdc++). +# if GTEST_LANG_CXX11 && (!defined(__GLIBCXX__) || __GLIBCXX__ > 20110325) +# define GTEST_ENV_HAS_STD_TUPLE_ 1 +# endif + +# if GTEST_ENV_HAS_TR1_TUPLE_ || GTEST_ENV_HAS_STD_TUPLE_ # define GTEST_USE_OWN_TR1_TUPLE 0 # else # define GTEST_USE_OWN_TR1_TUPLE 1 @@ -468,6 +544,22 @@ # if GTEST_USE_OWN_TR1_TUPLE # include "gtest/internal/gtest-tuple.h" +# elif GTEST_ENV_HAS_STD_TUPLE_ +# include <tuple> +// C++11 puts its tuple into the ::std namespace rather than +// ::std::tr1. gtest expects tuple to live in ::std::tr1, so put it there. +// This causes undefined behavior, but supported compilers react in +// the way we intend. +namespace std { +namespace tr1 { +using ::std::get; +using ::std::make_tuple; +using ::std::tuple; +using ::std::tuple_element; +using ::std::tuple_size; +} +} + # elif GTEST_OS_SYMBIAN // On Symbian, BOOST_HAS_TR1_TUPLE causes Boost's TR1 tuple library to @@ -518,7 +610,16 @@ // The user didn't tell us, so we need to figure it out. # if GTEST_OS_LINUX && !defined(__ia64__) -# define GTEST_HAS_CLONE 1 +# if GTEST_OS_LINUX_ANDROID +// On Android, clone() is only available on ARM starting with Gingerbread. +# if defined(__arm__) && __ANDROID_API__ >= 9 +# define GTEST_HAS_CLONE 1 +# else +# define GTEST_HAS_CLONE 0 +# endif +# else +# define GTEST_HAS_CLONE 1 +# endif # else # define GTEST_HAS_CLONE 0 # endif // GTEST_OS_LINUX && !defined(__ia64__) @@ -541,9 +642,11 @@ // Google Test does not support death tests for VC 7.1 and earlier as // abort() in a VC 7.1 application compiled as GUI in debug config // pops up a dialog window that cannot be suppressed programmatically. -#if (GTEST_OS_LINUX || GTEST_OS_MAC || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ +#if (GTEST_OS_LINUX || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \ + (GTEST_OS_MAC && !GTEST_OS_IOS) || GTEST_OS_IOS_SIMULATOR || \ (GTEST_OS_WINDOWS_DESKTOP && _MSC_VER >= 1400) || \ - GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX) + GTEST_OS_WINDOWS_MINGW || GTEST_OS_AIX || GTEST_OS_HPUX || \ + GTEST_OS_OPENBSD || GTEST_OS_QNX) # define GTEST_HAS_DEATH_TEST 1 # include <vector> // NOLINT #endif @@ -672,13 +775,23 @@ # define GTEST_NO_INLINE_ #endif +// _LIBCPP_VERSION is defined by the libc++ library from the LLVM project. +#if defined(__GLIBCXX__) || defined(_LIBCPP_VERSION) +# define GTEST_HAS_CXXABI_H_ 1 +#else +# define GTEST_HAS_CXXABI_H_ 0 +#endif + namespace testing { class Message; namespace internal { -class String; +// A secret type that Google Test users don't know about. It has no +// definition on purpose. Therefore it's impossible to create a +// Secret object, which is what we want. +class Secret; // The GTEST_COMPILE_ASSERT_ macro can be used to verify that a compile time // expression is true. For example, you could use it to verify the @@ -700,8 +813,8 @@ struct CompileAssert { }; #define GTEST_COMPILE_ASSERT_(expr, msg) \ - typedef ::testing::internal::CompileAssert<(bool(expr))> \ - msg[bool(expr) ? 1 : -1] + typedef ::testing::internal::CompileAssert<(static_cast<bool>(expr))> \ + msg[static_cast<bool>(expr) ? 1 : -1] GTEST_ATTRIBUTE_UNUSED_ // Implementation details of GTEST_COMPILE_ASSERT_: // @@ -799,6 +912,7 @@ class scoped_ptr { ptr_ = p; } } + private: T* ptr_; @@ -861,10 +975,9 @@ class GTEST_API_ RE { private: void Init(const char* regex); - // We use a const char* instead of a string, as Google Test may be used - // where string is not available. We also do not use Google Test's own - // String type here, in order to simplify dependencies between the - // files. + // We use a const char* instead of an std::string, as Google Test used to be + // used where std::string is not available. TODO(wan@google.com): change to + // std::string. const char* pattern_; bool is_valid_; @@ -1047,20 +1160,21 @@ Derived* CheckedDowncastToActualType(Base* base) { // GetCapturedStderr - stops capturing stderr and returns the captured string. // GTEST_API_ void CaptureStdout(); -GTEST_API_ String GetCapturedStdout(); +GTEST_API_ std::string GetCapturedStdout(); GTEST_API_ void CaptureStderr(); -GTEST_API_ String GetCapturedStderr(); +GTEST_API_ std::string GetCapturedStderr(); #endif // GTEST_HAS_STREAM_REDIRECTION #if GTEST_HAS_DEATH_TEST -// A copy of all command line arguments. Set by InitGoogleTest(). -extern ::std::vector<String> g_argvs; +const ::std::vector<testing::internal::string>& GetInjectableArgvs(); +void SetInjectableArgvs(const ::std::vector<testing::internal::string>* + new_argvs); -// GTEST_HAS_DEATH_TEST implies we have ::std::string. -const ::std::vector<String>& GetArgvs(); +// A copy of all command line arguments. Set by InitGoogleTest(). +extern ::std::vector<testing::internal::string> g_argvs; #endif // GTEST_HAS_DEATH_TEST @@ -1087,22 +1201,37 @@ inline void SleepMilliseconds(int n) { // use it in user tests, either directly or indirectly. class Notification { public: - Notification() : notified_(false) {} + Notification() : notified_(false) { + GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, NULL)); + } + ~Notification() { + pthread_mutex_destroy(&mutex_); + } // Notifies all threads created with this notification to start. Must // be called from the controller thread. - void Notify() { notified_ = true; } + void Notify() { + pthread_mutex_lock(&mutex_); + notified_ = true; + pthread_mutex_unlock(&mutex_); + } // Blocks until the controller thread notifies. Must be called from a test // thread. void WaitForNotification() { - while(!notified_) { + for (;;) { + pthread_mutex_lock(&mutex_); + const bool notified = notified_; + pthread_mutex_unlock(&mutex_); + if (notified) + break; SleepMilliseconds(10); } } private: - volatile bool notified_; + pthread_mutex_t mutex_; + bool notified_; GTEST_DISALLOW_COPY_AND_ASSIGN_(Notification); }; @@ -1210,21 +1339,23 @@ class MutexBase { void Lock() { GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_lock(&mutex_)); owner_ = pthread_self(); + has_owner_ = true; } // Releases this mutex. void Unlock() { - // We don't protect writing to owner_ here, as it's the caller's - // responsibility to ensure that the current thread holds the + // Since the lock is being released the owner_ field should no longer be + // considered valid. We don't protect writing to has_owner_ here, as it's + // the caller's responsibility to ensure that the current thread holds the // mutex when this is called. - owner_ = 0; + has_owner_ = false; GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_unlock(&mutex_)); } // Does nothing if the current thread holds the mutex. Otherwise, crashes // with high probability. void AssertHeld() const { - GTEST_CHECK_(owner_ == pthread_self()) + GTEST_CHECK_(has_owner_ && pthread_equal(owner_, pthread_self())) << "The current thread is not holding the mutex @" << this; } @@ -1235,7 +1366,14 @@ class MutexBase { // have to be public. public: pthread_mutex_t mutex_; // The underlying pthread mutex. - pthread_t owner_; // The thread holding the mutex; 0 means no one holds it. + // has_owner_ indicates whether the owner_ field below contains a valid thread + // ID and is therefore safe to inspect (e.g., to use in pthread_equal()). All + // accesses to the owner_ field should be protected by a check of this field. + // An alternative might be to memset() owner_ to all zeros, but there's no + // guarantee that a zero'd pthread_t is necessarily invalid or even different + // from pthread_self(). + bool has_owner_; + pthread_t owner_; // The thread holding the mutex. }; // Forward-declares a static mutex. @@ -1243,8 +1381,13 @@ class MutexBase { extern ::testing::internal::MutexBase mutex // Defines and statically (i.e. at link time) initializes a static mutex. +// The initialization list here does not explicitly initialize each field, +// instead relying on default initialization for the unspecified fields. In +// particular, the owner_ field (a pthread_t) is not explicitly initialized. +// This allows initialization to work whether pthread_t is a scalar or struct. +// The flag -Wmissing-field-initializers must not be specified for this to work. # define GTEST_DEFINE_STATIC_MUTEX_(mutex) \ - ::testing::internal::MutexBase mutex = { PTHREAD_MUTEX_INITIALIZER, 0 } + ::testing::internal::MutexBase mutex = { PTHREAD_MUTEX_INITIALIZER, false } // The Mutex class can only be used for mutexes created at runtime. It // shares its API with MutexBase otherwise. @@ -1252,7 +1395,7 @@ class Mutex : public MutexBase { public: Mutex() { GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_init(&mutex_, NULL)); - owner_ = 0; + has_owner_ = false; } ~Mutex() { GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&mutex_)); @@ -1402,6 +1545,8 @@ class ThreadLocal { class Mutex { public: Mutex() {} + void Lock() {} + void Unlock() {} void AssertHeld() const {} }; @@ -1532,6 +1677,10 @@ inline bool IsUpper(char ch) { inline bool IsXDigit(char ch) { return isxdigit(static_cast<unsigned char>(ch)) != 0; } +inline bool IsXDigit(wchar_t ch) { + const unsigned char low_byte = static_cast<unsigned char>(ch); + return ch == low_byte && isxdigit(low_byte) != 0; +} inline char ToLower(char ch) { return static_cast<char>(tolower(static_cast<unsigned char>(ch))); @@ -1669,6 +1818,23 @@ inline void Abort() { abort(); } } // namespace posix +// MSVC "deprecates" snprintf and issues warnings wherever it is used. In +// order to avoid these warnings, we need to use _snprintf or _snprintf_s on +// MSVC-based platforms. We map the GTEST_SNPRINTF_ macro to the appropriate +// function in order to achieve that. We use macro definition here because +// snprintf is a variadic function. +#if _MSC_VER >= 1400 && !GTEST_OS_WINDOWS_MOBILE +// MSVC 2005 and above support variadic macros. +# define GTEST_SNPRINTF_(buffer, size, format, ...) \ + _snprintf_s(buffer, size, size, format, __VA_ARGS__) +#elif defined(_MSC_VER) +// Windows CE does not define _snprintf_s and MSVC prior to 2005 doesn't +// complain about _snprintf. +# define GTEST_SNPRINTF_ _snprintf +#else +# define GTEST_SNPRINTF_ snprintf +#endif + // The maximum number a BiggestInt can represent. This definition // works no matter BiggestInt is represented in one's complement or // two's complement. @@ -1721,7 +1887,6 @@ class TypeWithSize<4> { template <> class TypeWithSize<8> { public: - #if GTEST_OS_WINDOWS typedef __int64 Int; typedef unsigned __int64 UInt; @@ -1748,7 +1913,7 @@ typedef TypeWithSize<8>::Int TimeInMillis; // Represents time in milliseconds. #define GTEST_DECLARE_int32_(name) \ GTEST_API_ extern ::testing::internal::Int32 GTEST_FLAG(name) #define GTEST_DECLARE_string_(name) \ - GTEST_API_ extern ::testing::internal::String GTEST_FLAG(name) + GTEST_API_ extern ::std::string GTEST_FLAG(name) // Macros for defining flags. #define GTEST_DEFINE_bool_(name, default_val, doc) \ @@ -1756,7 +1921,11 @@ typedef TypeWithSize<8>::Int TimeInMillis; // Represents time in milliseconds. #define GTEST_DEFINE_int32_(name, default_val, doc) \ GTEST_API_ ::testing::internal::Int32 GTEST_FLAG(name) = (default_val) #define GTEST_DEFINE_string_(name, default_val, doc) \ - GTEST_API_ ::testing::internal::String GTEST_FLAG(name) = (default_val) + GTEST_API_ ::std::string GTEST_FLAG(name) = (default_val) + +// Thread annotations +#define GTEST_EXCLUSIVE_LOCK_REQUIRED_(locks) +#define GTEST_LOCK_EXCLUDED_(locks) // Parses 'str' for a 32-bit signed integer. If successful, writes the result // to *value and returns true; otherwise leaves *value unchanged and returns diff --git a/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-string.h b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-string.h new file mode 100644 index 000000000..97f1a7fdd --- /dev/null +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-string.h @@ -0,0 +1,167 @@ +// Copyright 2005, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Authors: wan@google.com (Zhanyong Wan), eefacm@gmail.com (Sean Mcafee) +// +// The Google C++ Testing Framework (Google Test) +// +// This header file declares the String class and functions used internally by +// Google Test. They are subject to change without notice. They should not used +// by code external to Google Test. +// +// This header file is #included by <gtest/internal/gtest-internal.h>. +// It should not be #included by other files. + +#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ +#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ + +#ifdef __BORLANDC__ +// string.h is not guaranteed to provide strcpy on C++ Builder. +# include <mem.h> +#endif + +#include <string.h> +#include <string> + +#include "gtest/internal/gtest-port.h" + +namespace testing { +namespace internal { + +// String - an abstract class holding static string utilities. +class GTEST_API_ String { + public: + // Static utility methods + + // Clones a 0-terminated C string, allocating memory using new. The + // caller is responsible for deleting the return value using + // delete[]. Returns the cloned string, or NULL if the input is + // NULL. + // + // This is different from strdup() in string.h, which allocates + // memory using malloc(). + static const char* CloneCString(const char* c_str); + +#if GTEST_OS_WINDOWS_MOBILE + // Windows CE does not have the 'ANSI' versions of Win32 APIs. To be + // able to pass strings to Win32 APIs on CE we need to convert them + // to 'Unicode', UTF-16. + + // Creates a UTF-16 wide string from the given ANSI string, allocating + // memory using new. The caller is responsible for deleting the return + // value using delete[]. Returns the wide string, or NULL if the + // input is NULL. + // + // The wide string is created using the ANSI codepage (CP_ACP) to + // match the behaviour of the ANSI versions of Win32 calls and the + // C runtime. + static LPCWSTR AnsiToUtf16(const char* c_str); + + // Creates an ANSI string from the given wide string, allocating + // memory using new. The caller is responsible for deleting the return + // value using delete[]. Returns the ANSI string, or NULL if the + // input is NULL. + // + // The returned string is created using the ANSI codepage (CP_ACP) to + // match the behaviour of the ANSI versions of Win32 calls and the + // C runtime. + static const char* Utf16ToAnsi(LPCWSTR utf16_str); +#endif + + // Compares two C strings. Returns true iff they have the same content. + // + // Unlike strcmp(), this function can handle NULL argument(s). A + // NULL C string is considered different to any non-NULL C string, + // including the empty string. + static bool CStringEquals(const char* lhs, const char* rhs); + + // Converts a wide C string to a String using the UTF-8 encoding. + // NULL will be converted to "(null)". If an error occurred during + // the conversion, "(failed to convert from wide string)" is + // returned. + static std::string ShowWideCString(const wchar_t* wide_c_str); + + // Compares two wide C strings. Returns true iff they have the same + // content. + // + // Unlike wcscmp(), this function can handle NULL argument(s). A + // NULL C string is considered different to any non-NULL C string, + // including the empty string. + static bool WideCStringEquals(const wchar_t* lhs, const wchar_t* rhs); + + // Compares two C strings, ignoring case. Returns true iff they + // have the same content. + // + // Unlike strcasecmp(), this function can handle NULL argument(s). + // A NULL C string is considered different to any non-NULL C string, + // including the empty string. + static bool CaseInsensitiveCStringEquals(const char* lhs, + const char* rhs); + + // Compares two wide C strings, ignoring case. Returns true iff they + // have the same content. + // + // Unlike wcscasecmp(), this function can handle NULL argument(s). + // A NULL C string is considered different to any non-NULL wide C string, + // including the empty string. + // NB: The implementations on different platforms slightly differ. + // On windows, this method uses _wcsicmp which compares according to LC_CTYPE + // environment variable. On GNU platform this method uses wcscasecmp + // which compares according to LC_CTYPE category of the current locale. + // On MacOS X, it uses towlower, which also uses LC_CTYPE category of the + // current locale. + static bool CaseInsensitiveWideCStringEquals(const wchar_t* lhs, + const wchar_t* rhs); + + // Returns true iff the given string ends with the given suffix, ignoring + // case. Any string is considered to end with an empty suffix. + static bool EndsWithCaseInsensitive( + const std::string& str, const std::string& suffix); + + // Formats an int value as "%02d". + static std::string FormatIntWidth2(int value); // "%02d" for width == 2 + + // Formats an int value as "%X". + static std::string FormatHexInt(int value); + + // Formats a byte as "%02X". + static std::string FormatByte(unsigned char value); + + private: + String(); // Not meant to be instantiated. +}; // class String + +// Gets the content of the stringstream's buffer as an std::string. Each '\0' +// character in the buffer is replaced with "\\0". +GTEST_API_ std::string StringStreamToString(::std::stringstream* stream); + +} // namespace internal +} // namespace testing + +#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_ diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-tuple.h b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-tuple.h similarity index 93% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-tuple.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-tuple.h index d1af50e18..7b3dfc312 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-tuple.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-tuple.h @@ -1,4 +1,6 @@ -// This file was GENERATED by a script. DO NOT EDIT BY HAND!!! +// This file was GENERATED by command: +// pump.py gtest-tuple.h.pump +// DO NOT EDIT BY HAND!!! // Copyright 2009 Google Inc. // All Rights Reserved. @@ -140,34 +142,54 @@ template <bool kIndexValid, int kIndex, class Tuple> struct TupleElement; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 0, GTEST_10_TUPLE_(T)> { typedef T0 type; }; +struct TupleElement<true, 0, GTEST_10_TUPLE_(T) > { + typedef T0 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 1, GTEST_10_TUPLE_(T)> { typedef T1 type; }; +struct TupleElement<true, 1, GTEST_10_TUPLE_(T) > { + typedef T1 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 2, GTEST_10_TUPLE_(T)> { typedef T2 type; }; +struct TupleElement<true, 2, GTEST_10_TUPLE_(T) > { + typedef T2 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 3, GTEST_10_TUPLE_(T)> { typedef T3 type; }; +struct TupleElement<true, 3, GTEST_10_TUPLE_(T) > { + typedef T3 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 4, GTEST_10_TUPLE_(T)> { typedef T4 type; }; +struct TupleElement<true, 4, GTEST_10_TUPLE_(T) > { + typedef T4 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 5, GTEST_10_TUPLE_(T)> { typedef T5 type; }; +struct TupleElement<true, 5, GTEST_10_TUPLE_(T) > { + typedef T5 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 6, GTEST_10_TUPLE_(T)> { typedef T6 type; }; +struct TupleElement<true, 6, GTEST_10_TUPLE_(T) > { + typedef T6 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 7, GTEST_10_TUPLE_(T)> { typedef T7 type; }; +struct TupleElement<true, 7, GTEST_10_TUPLE_(T) > { + typedef T7 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 8, GTEST_10_TUPLE_(T)> { typedef T8 type; }; +struct TupleElement<true, 8, GTEST_10_TUPLE_(T) > { + typedef T8 type; +}; template <GTEST_10_TYPENAMES_(T)> -struct TupleElement<true, 9, GTEST_10_TUPLE_(T)> { typedef T9 type; }; +struct TupleElement<true, 9, GTEST_10_TUPLE_(T) > { + typedef T9 type; +}; } // namespace gtest_internal @@ -708,37 +730,59 @@ inline GTEST_10_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, template <typename Tuple> struct tuple_size; template <GTEST_0_TYPENAMES_(T)> -struct tuple_size<GTEST_0_TUPLE_(T)> { static const int value = 0; }; +struct tuple_size<GTEST_0_TUPLE_(T) > { + static const int value = 0; +}; template <GTEST_1_TYPENAMES_(T)> -struct tuple_size<GTEST_1_TUPLE_(T)> { static const int value = 1; }; +struct tuple_size<GTEST_1_TUPLE_(T) > { + static const int value = 1; +}; template <GTEST_2_TYPENAMES_(T)> -struct tuple_size<GTEST_2_TUPLE_(T)> { static const int value = 2; }; +struct tuple_size<GTEST_2_TUPLE_(T) > { + static const int value = 2; +}; template <GTEST_3_TYPENAMES_(T)> -struct tuple_size<GTEST_3_TUPLE_(T)> { static const int value = 3; }; +struct tuple_size<GTEST_3_TUPLE_(T) > { + static const int value = 3; +}; template <GTEST_4_TYPENAMES_(T)> -struct tuple_size<GTEST_4_TUPLE_(T)> { static const int value = 4; }; +struct tuple_size<GTEST_4_TUPLE_(T) > { + static const int value = 4; +}; template <GTEST_5_TYPENAMES_(T)> -struct tuple_size<GTEST_5_TUPLE_(T)> { static const int value = 5; }; +struct tuple_size<GTEST_5_TUPLE_(T) > { + static const int value = 5; +}; template <GTEST_6_TYPENAMES_(T)> -struct tuple_size<GTEST_6_TUPLE_(T)> { static const int value = 6; }; +struct tuple_size<GTEST_6_TUPLE_(T) > { + static const int value = 6; +}; template <GTEST_7_TYPENAMES_(T)> -struct tuple_size<GTEST_7_TUPLE_(T)> { static const int value = 7; }; +struct tuple_size<GTEST_7_TUPLE_(T) > { + static const int value = 7; +}; template <GTEST_8_TYPENAMES_(T)> -struct tuple_size<GTEST_8_TUPLE_(T)> { static const int value = 8; }; +struct tuple_size<GTEST_8_TUPLE_(T) > { + static const int value = 8; +}; template <GTEST_9_TYPENAMES_(T)> -struct tuple_size<GTEST_9_TUPLE_(T)> { static const int value = 9; }; +struct tuple_size<GTEST_9_TUPLE_(T) > { + static const int value = 9; +}; template <GTEST_10_TYPENAMES_(T)> -struct tuple_size<GTEST_10_TUPLE_(T)> { static const int value = 10; }; +struct tuple_size<GTEST_10_TUPLE_(T) > { + static const int value = 10; +}; template <int k, class Tuple> struct tuple_element { @@ -922,8 +966,8 @@ template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)> inline bool operator==(const GTEST_10_TUPLE_(T)& t, const GTEST_10_TUPLE_(U)& u) { return gtest_internal::SameSizeTuplePrefixComparator< - tuple_size<GTEST_10_TUPLE_(T)>::value, - tuple_size<GTEST_10_TUPLE_(U)>::value>::Eq(t, u); + tuple_size<GTEST_10_TUPLE_(T) >::value, + tuple_size<GTEST_10_TUPLE_(U) >::value>::Eq(t, u); } template <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)> diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-tuple.h.pump b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump similarity index 97% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-tuple.h.pump rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump index ef519094a..c7d9e039b 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-tuple.h.pump +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump @@ -118,8 +118,9 @@ struct TupleElement; $for i [[ template <GTEST_$(n)_TYPENAMES_(T)> -struct TupleElement<true, $i, GTEST_$(n)_TUPLE_(T)> [[]] -{ typedef T$i type; }; +struct TupleElement<true, $i, GTEST_$(n)_TUPLE_(T) > { + typedef T$i type; +}; ]] @@ -220,7 +221,9 @@ template <typename Tuple> struct tuple_size; $for j [[ template <GTEST_$(j)_TYPENAMES_(T)> -struct tuple_size<GTEST_$(j)_TUPLE_(T)> { static const int value = $j; }; +struct tuple_size<GTEST_$(j)_TUPLE_(T) > { + static const int value = $j; +}; ]] @@ -302,8 +305,8 @@ template <GTEST_$(n)_TYPENAMES_(T), GTEST_$(n)_TYPENAMES_(U)> inline bool operator==(const GTEST_$(n)_TUPLE_(T)& t, const GTEST_$(n)_TUPLE_(U)& u) { return gtest_internal::SameSizeTuplePrefixComparator< - tuple_size<GTEST_$(n)_TUPLE_(T)>::value, - tuple_size<GTEST_$(n)_TUPLE_(U)>::value>::Eq(t, u); + tuple_size<GTEST_$(n)_TUPLE_(T) >::value, + tuple_size<GTEST_$(n)_TUPLE_(U) >::value>::Eq(t, u); } template <GTEST_$(n)_TYPENAMES_(T), GTEST_$(n)_TYPENAMES_(U)> diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-type-util.h b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-type-util.h similarity index 99% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-type-util.h rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-type-util.h index b7b01b094..e46f7cfcb 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-type-util.h +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-type-util.h @@ -45,15 +45,14 @@ #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ #include "gtest/internal/gtest-port.h" -#include "gtest/internal/gtest-string.h" // #ifdef __GNUC__ is too general here. It is possible to use gcc without using // libstdc++ (which is where cxxabi.h comes from). -# ifdef __GLIBCXX__ +# if GTEST_HAS_CXXABI_H_ # include <cxxabi.h> # elif defined(__HP_aCC) # include <acxx_demangle.h> -# endif // __GLIBCXX__ +# endif // GTEST_HASH_CXXABI_H_ namespace testing { namespace internal { @@ -62,24 +61,24 @@ namespace internal { // NB: This function is also used in Google Mock, so don't move it inside of // the typed-test-only section below. template <typename T> -String GetTypeName() { +std::string GetTypeName() { # if GTEST_HAS_RTTI const char* const name = typeid(T).name(); -# if defined(__GLIBCXX__) || defined(__HP_aCC) +# if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) int status = 0; // gcc's implementation of typeid(T).name() mangles the type name, // so we have to demangle it. -# ifdef __GLIBCXX__ +# if GTEST_HAS_CXXABI_H_ using abi::__cxa_demangle; -# endif // __GLIBCXX__ +# endif // GTEST_HAS_CXXABI_H_ char* const readable_name = __cxa_demangle(name, 0, 0, &status); - const String name_str(status == 0 ? readable_name : name); + const std::string name_str(status == 0 ? readable_name : name); free(readable_name); return name_str; # else return name; -# endif // __GLIBCXX__ || __HP_aCC +# endif // GTEST_HAS_CXXABI_H_ || __HP_aCC # else @@ -3300,7 +3299,9 @@ struct Templates<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, // INSTANTIATE_TYPED_TEST_CASE_P(). template <typename T> -struct TypeList { typedef Types1<T> type; }; +struct TypeList { + typedef Types1<T> type; +}; template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, diff --git a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-type-util.h.pump b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump similarity index 96% rename from resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-type-util.h.pump rename to resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump index 27f331dea..251fdf025 100644 --- a/resources/3rdparty/gtest-1.6.0/include/gtest/internal/gtest-type-util.h.pump +++ b/resources/3rdparty/gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump @@ -43,15 +43,14 @@ $var n = 50 $$ Maximum length of type lists we want to support. #define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_ #include "gtest/internal/gtest-port.h" -#include "gtest/internal/gtest-string.h" // #ifdef __GNUC__ is too general here. It is possible to use gcc without using // libstdc++ (which is where cxxabi.h comes from). -# ifdef __GLIBCXX__ +# if GTEST_HAS_CXXABI_H_ # include <cxxabi.h> # elif defined(__HP_aCC) # include <acxx_demangle.h> -# endif // __GLIBCXX__ +# endif // GTEST_HASH_CXXABI_H_ namespace testing { namespace internal { @@ -60,24 +59,24 @@ namespace internal { // NB: This function is also used in Google Mock, so don't move it inside of // the typed-test-only section below. template <typename T> -String GetTypeName() { +std::string GetTypeName() { # if GTEST_HAS_RTTI const char* const name = typeid(T).name(); -# if defined(__GLIBCXX__) || defined(__HP_aCC) +# if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC) int status = 0; // gcc's implementation of typeid(T).name() mangles the type name, // so we have to demangle it. -# ifdef __GLIBCXX__ +# if GTEST_HAS_CXXABI_H_ using abi::__cxa_demangle; -# endif // __GLIBCXX__ +# endif // GTEST_HAS_CXXABI_H_ char* const readable_name = __cxa_demangle(name, 0, 0, &status); - const String name_str(status == 0 ? readable_name : name); + const std::string name_str(status == 0 ? readable_name : name); free(readable_name); return name_str; # else return name; -# endif // __GLIBCXX__ || __HP_aCC +# endif // GTEST_HAS_CXXABI_H_ || __HP_aCC # else @@ -279,7 +278,9 @@ struct Templates<$for j, [[T$j]]$for k[[, NoneT]]> { // INSTANTIATE_TYPED_TEST_CASE_P(). template <typename T> -struct TypeList { typedef Types1<T> type; }; +struct TypeList { + typedef Types1<T> type; +}; $range i 1..n diff --git a/resources/3rdparty/gtest-1.6.0/m4/acx_pthread.m4 b/resources/3rdparty/gtest-1.7.0/m4/acx_pthread.m4 similarity index 100% rename from resources/3rdparty/gtest-1.6.0/m4/acx_pthread.m4 rename to resources/3rdparty/gtest-1.7.0/m4/acx_pthread.m4 diff --git a/resources/3rdparty/gtest-1.6.0/m4/gtest.m4 b/resources/3rdparty/gtest-1.7.0/m4/gtest.m4 similarity index 100% rename from resources/3rdparty/gtest-1.6.0/m4/gtest.m4 rename to resources/3rdparty/gtest-1.7.0/m4/gtest.m4 diff --git a/resources/3rdparty/gtest-1.6.0/m4/libtool.m4 b/resources/3rdparty/gtest-1.7.0/m4/libtool.m4 similarity index 79% rename from resources/3rdparty/gtest-1.6.0/m4/libtool.m4 rename to resources/3rdparty/gtest-1.7.0/m4/libtool.m4 index a3fee5360..828104cfd 100644 --- a/resources/3rdparty/gtest-1.6.0/m4/libtool.m4 +++ b/resources/3rdparty/gtest-1.7.0/m4/libtool.m4 @@ -1,7 +1,8 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -10,7 +11,8 @@ m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, -# 2006, 2007, 2008 Free Software Foundation, Inc. +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. @@ -37,7 +39,7 @@ m4_define([_LT_COPYING], [dnl # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) -# serial 56 LT_INIT +# serial 57 LT_INIT # LT_PREREQ(VERSION) @@ -66,6 +68,7 @@ esac # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl @@ -82,6 +85,8 @@ AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) @@ -118,7 +123,7 @@ m4_defun([_LT_CC_BASENAME], *) break;; esac done -cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) @@ -138,6 +143,11 @@ m4_defun([_LT_FILEUTILS_DEFAULTS], m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl @@ -160,10 +170,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our @@ -179,7 +192,6 @@ fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl -_LT_PROG_ECHO_BACKSLASH case $host_os in aix3*) @@ -193,23 +205,6 @@ aix3*) ;; esac -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([["`\\]]\)/\\\1/g' - -# Sed substitution to delay expansion of an escaped shell variable in a -# double_quote_subst'ed string. -delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - -# Sed substitution to delay expansion of an escaped single quote. -delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' - -# Sed substitution to avoid accidental globbing in evaled expressions -no_glob_subst='s/\*/\\\*/g' - # Global variables: ofile=libtool can_build_shared=yes @@ -250,6 +245,28 @@ _LT_CONFIG_COMMANDS ])# _LT_SETUP +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' @@ -408,7 +425,7 @@ m4_define([_lt_decl_all_varnames], # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], -[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS @@ -418,7 +435,7 @@ m4_define([_LT_CONFIG_STATUS_DECLARE], # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # -# <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`' +# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) @@ -517,12 +534,20 @@ LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -533,9 +558,9 @@ done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do - case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) - eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" @@ -543,16 +568,38 @@ for var in lt_decl_all_varnames([[ \ esac done -# Fix-up fallback echo if it was mangled by the above quoting rules. -case \$lt_ECHO in -*'\\\[$]0 --fallback-echo"')dnl " - lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` - ;; -esac - _LT_OUTPUT_LIBTOOL_INIT ]) +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- @@ -562,20 +609,11 @@ _LT_OUTPUT_LIBTOOL_INIT AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) -cat >"$CONFIG_LT" <<_LTEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate a libtool stub with the current configuration. - -lt_cl_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_LTEOF +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF -AS_SHELL_SANITIZE -_AS_PREPARE - -exec AS_MESSAGE_FD>&1 +lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo @@ -601,7 +639,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. -Copyright (C) 2008 Free Software Foundation, Inc. +Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." @@ -646,15 +684,13 @@ chmod +x "$CONFIG_LT" # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. -if test "$no_create" != yes; then - lt_cl_success=: - test "$silent" = yes && - lt_config_lt_args="$lt_config_lt_args --quiet" - exec AS_MESSAGE_LOG_FD>/dev/null - $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false - exec AS_MESSAGE_LOG_FD>>config.log - $lt_cl_success || AS_EXIT(1) -fi +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT @@ -717,15 +753,12 @@ _LT_EOF # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) - - _LT_PROG_XSI_SHELLFNS + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) - sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ - || (rm -f "$cfgfile"; exit 1) + _LT_PROG_REPLACE_SHELLFNS - mv -f "$cfgfile" "$ofile" || + mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], @@ -770,6 +803,7 @@ AC_DEFUN([LT_LANG], m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], @@ -791,6 +825,31 @@ m4_defun([_LT_LANG], ])# _LT_LANG +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], @@ -821,6 +880,10 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ], m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) @@ -831,11 +894,13 @@ AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER @@ -921,7 +986,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? - if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD @@ -929,6 +1000,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ rm -rf libconftest.dylib* rm -f conftest.* fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no @@ -940,6 +1012,34 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; @@ -967,7 +1067,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi - if test "$DSYMUTIL" != ":"; then + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= @@ -977,8 +1077,8 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ ]) -# _LT_DARWIN_LINKER_FEATURES -# -------------------------- +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ @@ -987,7 +1087,13 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported - _LT_TAGVAR(whole_archive_flag_spec, $1)='' + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in @@ -995,7 +1101,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" @@ -1011,203 +1117,142 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], fi ]) -# _LT_SYS_MODULE_PATH_AIX -# ----------------------- +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl -AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# Check for a 64-bit object if we didn't find anything. -if test -z "$aix_libpath"; then - aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -fi],[]) -if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], -[ifdef([AC_DIVERSION_NOTICE], - [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], - [AC_DIVERT_PUSH(NOTICE)]) -$1 -AC_DIVERT_POP -])# _LT_SHELL_INIT +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + # _LT_PROG_ECHO_BACKSLASH # ----------------------- -# Add some code to the start of the generated configure script which -# will find an echo command which doesn't interpret backslashes. +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], -[_LT_SHELL_INIT([ -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} - -case X$lt_ECHO in -X*--fallback-echo) - # Remove one level of quotation (which was required for Make). - ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` - ;; -esac - -ECHO=${lt_ECHO-echo} -if test "X[$]1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X[$]1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then - # Yippee, $ECHO works! - : +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' else - # Restart under the correct shell. - exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} -fi - -if test "X[$]1" = X--fallback-echo; then - # used as fallback echo - shift - cat <<_LT_EOF -[$]* -_LT_EOF - exit 0 + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' fi -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -if test -z "$lt_ECHO"; then - if test "X${echo_test_string+set}" != Xset; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if { echo_test_string=`eval $cmd`; } 2>/dev/null && - { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null - then - break - fi - done - fi - - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - : - else - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for dir in $PATH /usr/ucb; do - IFS="$lt_save_ifs" - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$dir/echo" - break - fi - done - IFS="$lt_save_ifs" - - if test "X$ECHO" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - ECHO='print -r' - elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && - test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running configure again with it. - ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} - else - # Try using printf. - ECHO='printf %s\n' - if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && - echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - # Cool, printf works - : - elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - ECHO="$CONFIG_SHELL [$]0 --fallback-echo" - elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && - test "X$echo_testing_string" = 'X\t' && - echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && - test "X$echo_testing_string" = "X$echo_test_string"; then - ECHO="$CONFIG_SHELL [$]0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do - if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null - then - break - fi - prev="$cmd" - done +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} - if test "$prev" != 'sed 50q "[$]0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} - else - # Oops. We lost completely, so just stick with echo. - ECHO=echo - fi - fi - fi - fi - fi -fi +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac -# Copy echo and quote the copy suitably for passing to libtool from -# the Makefile, instead of quoting the original, which is used later. -lt_ECHO=$ECHO -if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then - lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" -fi +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) -AC_SUBST(lt_ECHO) -]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) -_LT_DECL([], [ECHO], [1], - [An echo program that does not interpret backslashes]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], @@ -1236,7 +1281,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in @@ -1329,14 +1374,27 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) CFLAGS="$SAVE_CFLAGS" fi ;; -sparc*-*solaris*) +*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" @@ -1354,14 +1412,47 @@ need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], -[AC_CHECK_TOOL(AR, ar, false) -test -z "$AR" && AR=ar -test -z "$AR_FLAGS" && AR_FLAGS=cru -_LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1]) +[_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: @@ -1380,18 +1471,27 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE @@ -1416,15 +1516,15 @@ AC_CACHE_CHECK([$1], [$2], -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes @@ -1464,7 +1564,7 @@ AC_CACHE_CHECK([$1], [$2], if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD - $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes @@ -1527,6 +1627,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=8192; ;; + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. @@ -1552,6 +1657,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=196608 ;; + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not @@ -1591,8 +1701,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. - while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ - = "XX$teststring$teststring"; } >/dev/null 2>&1 && + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` @@ -1643,7 +1753,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -[#line __oline__ "configure" +[#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -1684,7 +1794,13 @@ else # endif #endif -void fnord() { int i=42;} +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); @@ -1693,7 +1809,11 @@ int main () if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; - else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } /* dlclose (self); */ } else @@ -1869,16 +1989,16 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD - echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings - $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes @@ -2037,6 +2157,7 @@ m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ @@ -2045,16 +2166,23 @@ if test "$GCC" = yes; then darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= @@ -2067,7 +2195,7 @@ if test "$GCC" = yes; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done - lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; @@ -2087,7 +2215,13 @@ BEGIN {RS=" "; FS="/|\n";} { if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` - sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) @@ -2113,7 +2247,7 @@ need_version=unknown case $host_os in aix3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH @@ -2122,7 +2256,7 @@ aix3*) ;; aix[[4-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes @@ -2175,7 +2309,7 @@ amigaos*) m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; @@ -2187,7 +2321,7 @@ beos*) ;; bsdi[[45]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' @@ -2206,8 +2340,9 @@ cygwin* | mingw* | pw32* | cegcc*) need_version=no need_lib_prefix=no - case $GCC,$host_os in - yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + case $GCC,$cc_basename in + yes,*) + # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ @@ -2228,36 +2363,83 @@ cygwin* | mingw* | pw32* | cegcc*) cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' - sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then - # It is most probably a Windows format PATH printed by - # mingw gcc, but we are running on Cygwin. Gcc prints its search - # path with ; separators, and with drive letters. We can handle the - # drive letters (cygwin fileutils understands them), so leave them, - # especially as we might pass files found there to a mingw objdump, - # which wouldn't understand a cygwinified path. Ahh. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` - else - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' ;; *) + # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' ;; esac - dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; @@ -2278,7 +2460,7 @@ m4_if([$1], [],[ ;; dgux*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' @@ -2286,10 +2468,6 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd1*) - dynamic_linker=no - ;; - freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. @@ -2297,7 +2475,7 @@ freebsd* | dragonfly*) objformat=`/usr/bin/objformat` else case $host_os in - freebsd[[123]]*) objformat=aout ;; + freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi @@ -2315,7 +2493,7 @@ freebsd* | dragonfly*) esac shlibpath_var=LD_LIBRARY_PATH case $host_os in - freebsd2*) + freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) @@ -2335,12 +2513,26 @@ freebsd* | dragonfly*) ;; gnu*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; @@ -2386,12 +2578,14 @@ hpux9* | hpux10* | hpux11*) soname_spec='${libname}${release}${shared_ext}$major' ;; esac - # HP-UX runs *really* slowly unless shared libraries are mode 555. + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 ;; interix[[3-9]]*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' @@ -2407,7 +2601,7 @@ irix5* | irix6* | nonstopux*) nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; @@ -2444,9 +2638,9 @@ linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2454,16 +2648,21 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH - save_LDFLAGS=$LDFLAGS - save_libdir=$libdir - eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ - LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" - AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], - [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], - [shlibpath_overrides_runpath=yes])]) - LDFLAGS=$save_LDFLAGS - libdir=$save_libdir + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install @@ -2472,7 +2671,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu) # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi @@ -2516,7 +2715,7 @@ netbsd*) ;; newsos6) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes @@ -2585,7 +2784,7 @@ rdos*) ;; solaris*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2610,7 +2809,7 @@ sunos4*) ;; sysv4 | sysv4.3*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -2634,7 +2833,7 @@ sysv4 | sysv4.3*) sysv4*MP*) if test -d /usr/nec ;then - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH @@ -2665,7 +2864,7 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' @@ -2675,7 +2874,7 @@ tpf*) ;; uts4*) - version_type=linux + version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH @@ -2717,6 +2916,8 @@ _LT_DECL([], [library_names_spec], [1], The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], @@ -2829,6 +3030,7 @@ AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], @@ -2950,6 +3152,11 @@ case $reload_flag in esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' @@ -2958,8 +3165,8 @@ case $host_os in fi ;; esac -_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl -_LT_DECL([], [reload_cmds], [2])dnl +_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_TAGDECL([], [reload_cmds], [2])dnl ])# _LT_CMD_RELOAD @@ -3011,16 +3218,18 @@ mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; -cegcc) +cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' @@ -3050,6 +3259,10 @@ gnu*) lt_cv_deplibs_check_method=pass_all ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in @@ -3058,11 +3271,11 @@ hpux10.20* | hpux11*) lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) - [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) - lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac @@ -3083,7 +3296,7 @@ irix5* | irix6* | nonstopux*) lt_cv_deplibs_check_method=pass_all ;; -# This must be Linux ELF. +# This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; @@ -3162,6 +3375,21 @@ tpf*) ;; esac ]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown @@ -3169,7 +3397,11 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], - [Command to use when deplibs_check_method == "file_magic"]) + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD @@ -3226,8 +3458,20 @@ if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. - AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) - AC_SUBST([DUMPBIN]) + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi @@ -3239,13 +3483,13 @@ _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD - (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -3260,6 +3504,67 @@ dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + # LT_LIB_M # -------- @@ -3268,7 +3573,7 @@ AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -3296,7 +3601,12 @@ m4_defun([_LT_COMPILER_NO_RTTI], _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then - _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, @@ -3313,6 +3623,7 @@ _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl @@ -3380,8 +3691,8 @@ esac lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= @@ -3405,6 +3716,7 @@ for ac_symprfx in "" "_"; do # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ @@ -3417,6 +3729,7 @@ for ac_symprfx in "" "_"; do else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -3438,7 +3751,7 @@ _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm - if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -3450,6 +3763,18 @@ _LT_EOF if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + #ifdef __cplusplus extern "C" { #endif @@ -3461,7 +3786,7 @@ _LT_EOF cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ -const struct { +LT@&t@_DLSYM_CONST struct { const char *name; void *address; } @@ -3487,15 +3812,15 @@ static const void *lt_preloaded_setup() { _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext - lt_save_LIBS="$LIBS" - lt_save_CFLAGS="$CFLAGS" + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi - LIBS="$lt_save_LIBS" - CFLAGS="$lt_save_CFLAGS" + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi @@ -3528,6 +3853,13 @@ else AC_MSG_RESULT(ok) fi +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], @@ -3538,6 +3870,8 @@ _LT_DECL([global_symbol_to_c_name_address], _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS @@ -3549,7 +3883,6 @@ _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= -AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then @@ -3600,6 +3933,11 @@ m4_if([$1], [CXX], [ # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. @@ -3649,6 +3987,12 @@ m4_if([$1], [CXX], [ ;; esac ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; dgux*) case $cc_basename in ec++*) @@ -3738,8 +4082,8 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - xlc* | xlC*) - # IBM XL 8.0 on PPC + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' @@ -3801,7 +4145,7 @@ m4_if([$1], [CXX], [ ;; solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' @@ -3905,6 +4249,12 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag @@ -3947,6 +4297,15 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in @@ -4010,7 +4369,13 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; - pgcc* | pgf77* | pgf90* | pgf95*) + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' @@ -4022,25 +4387,40 @@ m4_if([$1], [CXX], [ # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - xl*) - # IBM XL C 8.0/Fortran 10.1 on PPC + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; @@ -4072,7 +4452,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in - f77* | f90* | f95*) + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; @@ -4129,9 +4509,11 @@ case $host_os in _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac -AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) -_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], - [How to pass a linker flag through the compiler]) + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. @@ -4150,6 +4532,8 @@ fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # @@ -4170,6 +4554,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl @@ -4178,30 +4563,40 @@ m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" - ;; + ;; cygwin* | mingw* | cegcc*) - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' - ;; - linux* | k*bsd*-gnu) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no - ;; + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; + ;; esac - _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= @@ -4216,7 +4611,6 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -4261,13 +4655,39 @@ dnl Note also adjust exclude_expsyms for C++ above. openbsd*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu) + linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' @@ -4301,11 +4721,12 @@ dnl Note also adjust exclude_expsyms for C++ above. _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 -*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you -*** really care for shared libraries, you may want to modify your PATH -*** so that a non-GNU linker is found, and then restart. +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. _LT_EOF fi @@ -4341,10 +4762,12 @@ _LT_EOF # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' @@ -4362,6 +4785,11 @@ _LT_EOF fi ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -4387,15 +4815,16 @@ _LT_EOF if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then - tmp_addflag= + tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; @@ -4406,13 +4835,17 @@ _LT_EOF lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; - xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 @@ -4428,17 +4861,16 @@ _LT_EOF fi case $cc_basename in - xlf*) + xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' - _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ - $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac @@ -4452,8 +4884,8 @@ _LT_EOF _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; @@ -4471,8 +4903,8 @@ _LT_EOF _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -4518,8 +4950,8 @@ _LT_EOF *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -4559,8 +4991,10 @@ _LT_EOF else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then - _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi @@ -4648,9 +5082,9 @@ _LT_EOF _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' @@ -4659,14 +5093,19 @@ _LT_EOF else # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' @@ -4698,20 +5137,64 @@ _LT_EOF # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # Tell ltmain to make .dll files, not .so files. - shrext_cmds=".dll" - # FIXME: Setting linknames here is a bad hack. - _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' - # FIXME: Should let the user specify the lib program. - _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' - _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac ;; darwin* | rhapsody*) @@ -4724,10 +5207,6 @@ _LT_EOF _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; - freebsd1*) - _LT_TAGVAR(ld_shlibs, $1)=no - ;; - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little @@ -4740,7 +5219,7 @@ _LT_EOF ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) + freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes @@ -4749,7 +5228,7 @@ _LT_EOF # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no @@ -4757,7 +5236,7 @@ _LT_EOF hpux9*) if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi @@ -4772,14 +5251,13 @@ _LT_EOF ;; hpux10*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes @@ -4791,16 +5269,16 @@ _LT_EOF ;; hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then + if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else @@ -4812,7 +5290,14 @@ _LT_EOF _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi @@ -4840,19 +5325,34 @@ _LT_EOF irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" - AC_LINK_IFELSE(int foo(void) {}, - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' - ) - LDFLAGS="$save_LDFLAGS" + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' @@ -4914,17 +5414,17 @@ _LT_EOF _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' @@ -4934,13 +5434,13 @@ _LT_EOF osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ - $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' @@ -4953,9 +5453,9 @@ _LT_EOF _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) @@ -5131,36 +5631,38 @@ x|xyes) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. - AC_MSG_CHECKING([whether -lc should be explicitly linked in]) - $RM conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if AC_TRY_EVAL(ac_compile) 2>conftest.err; then - soname=conftest - lib=conftest - libobjs=conftest.$ac_objext - deplibs= - wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) - pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) - compiler_flags=-v - linker_flags=-v - verstring= - output_objdir=. - libname=conftest - lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) - _LT_TAGVAR(allow_undefined_flag, $1)= - if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) - then - _LT_TAGVAR(archive_cmds_need_lc, $1)=no - else - _LT_TAGVAR(archive_cmds_need_lc, $1)=yes - fi - _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag - else - cat conftest.err 1>&5 - fi - $RM conftest* - AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi @@ -5197,9 +5699,6 @@ _LT_TAGDECL([], [no_undefined_flag], [1], _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) -_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], - [[If ld is used when linking, flag to hardcode $libdir into a binary - during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], @@ -5225,8 +5724,6 @@ _LT_TAGDECL([], [inherit_rpath], [0], to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) -_LT_TAGDECL([], [fix_srcfile_path], [1], - [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], @@ -5237,6 +5734,8 @@ _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented @@ -5330,37 +5829,22 @@ CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG -# _LT_PROG_CXX -# ------------ -# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ -# compiler, we have our own version here. -m4_defun([_LT_PROG_CXX], -[ -pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) -AC_PROG_CXX -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -else - _lt_caught_CXX_error=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_CXX - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_CXX], []) - - # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], -[AC_REQUIRE([_LT_PROG_CXX])dnl -m4_require([_LT_FILEUTILS_DEFAULTS])dnl +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no @@ -5372,7 +5856,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported @@ -5382,6 +5865,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -5413,6 +5898,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Allow CC to be a program name with arguments. lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX @@ -5430,6 +5916,7 @@ if test "$_lt_caught_CXX_error" != yes; then fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -5451,8 +5938,8 @@ if test "$_lt_caught_CXX_error" != yes; then # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5484,7 +5971,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no @@ -5593,10 +6080,10 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" - _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' @@ -5605,14 +6092,19 @@ if test "$_lt_caught_CXX_error" != yes; then else # Determine the default libpath from the value encoded in an # empty executable. - _LT_SYS_MODULE_PATH_AIX + _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' - # Exported symbols can be pulled into shared objects from archives - _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. @@ -5642,28 +6134,75 @@ if test "$_lt_caught_CXX_error" != yes; then ;; cygwin* | mingw* | pw32* | cegcc*) - # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, - # as there is no search path for DLLs. - _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' - _LT_TAGVAR(allow_undefined_flag, $1)=unsupported - _LT_TAGVAR(always_export_symbols, $1)=no - _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - - if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - # If the export-symbols file already is a .def file (1st line - # is EXPORTS), use it as is; otherwise, prepend... - _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then - cp $export_symbols $output_objdir/$soname.def; - else - echo EXPORTS > $output_objdir/$soname.def; - cat $export_symbols >> $output_objdir/$soname.def; - fi~ - $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_TAGVAR(ld_shlibs, $1)=no - fi - ;; + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; @@ -5686,7 +6225,7 @@ if test "$_lt_caught_CXX_error" != yes; then esac ;; - freebsd[[12]]*) + freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no @@ -5705,6 +6244,11 @@ if test "$_lt_caught_CXX_error" != yes; then gnu*) ;; + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: @@ -5729,11 +6273,11 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then - _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no @@ -5794,7 +6338,7 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then @@ -5804,10 +6348,10 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi @@ -5837,7 +6381,7 @@ if test "$_lt_caught_CXX_error" != yes; then case $cc_basename in CC*) # SGI C++ - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is @@ -5848,9 +6392,9 @@ if test "$_lt_caught_CXX_error" != yes; then *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes @@ -5879,7 +6423,7 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5916,26 +6460,26 @@ if test "$_lt_caught_CXX_error" != yes; then pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in - *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ - compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ - $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ - $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; - *) # Version 6 will use weak symbols + *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; @@ -5943,7 +6487,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ @@ -5962,9 +6506,9 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; - xl*) + xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' @@ -5984,13 +6528,13 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -6059,7 +6603,7 @@ if test "$_lt_caught_CXX_error" != yes; then _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi - output_verbose_link_cmd=echo + output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi @@ -6094,15 +6638,15 @@ if test "$_lt_caught_CXX_error" != yes; then case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' - _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ - $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; @@ -6118,17 +6662,17 @@ if test "$_lt_caught_CXX_error" != yes; then # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. - output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac @@ -6138,7 +6682,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support @@ -6174,7 +6718,7 @@ if test "$_lt_caught_CXX_error" != yes; then solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' @@ -6195,7 +6739,7 @@ if test "$_lt_caught_CXX_error" != yes; then esac _LT_TAGVAR(link_all_deplibs, $1)=yes - output_verbose_link_cmd='echo' + output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is @@ -6215,14 +6759,14 @@ if test "$_lt_caught_CXX_error" != yes; then if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then - _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ - $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. @@ -6233,7 +6777,7 @@ if test "$_lt_caught_CXX_error" != yes; then # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. - output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' @@ -6287,6 +6831,10 @@ if test "$_lt_caught_CXX_error" != yes; then CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' @@ -6342,6 +6890,7 @@ if test "$_lt_caught_CXX_error" != yes; then fi # test -n "$compiler" CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC @@ -6356,6 +6905,29 @@ AC_LANG_POP ])# _LT_LANG_CXX_CONFIG +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose @@ -6364,6 +6936,7 @@ AC_LANG_POP # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= @@ -6413,7 +6986,20 @@ public class foo { } }; _LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF ]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then @@ -6425,7 +7011,7 @@ if AC_TRY_EVAL(ac_compile); then pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do - case $p in + case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. @@ -6434,13 +7020,22 @@ if AC_TRY_EVAL(ac_compile); then test $p = "-R"; then prev=$p continue - else - prev= fi + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac if test "$pre_test_object_deps_done" = no; then - case $p in - -L* | -R*) + case ${prev} in + -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. @@ -6460,8 +7055,10 @@ if AC_TRY_EVAL(ac_compile); then _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi + prev= ;; + *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. @@ -6497,6 +7094,7 @@ else fi $RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], @@ -6533,7 +7131,7 @@ linux*) solaris*) case $cc_basename in - CC*) + CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as @@ -6577,32 +7175,16 @@ _LT_TAGDECL([], [compiler_lib_search_path], [1], ])# _LT_SYS_HIDDEN_LIBDEPS -# _LT_PROG_F77 -# ------------ -# Since AC_PROG_F77 is broken, in that it returns the empty string -# if there is no fortran compiler, we have our own version here. -m4_defun([_LT_PROG_F77], -[ -pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) -AC_PROG_F77 -if test -z "$F77" || test "X$F77" = "Xno"; then - _lt_disable_F77=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_F77 - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_F77], []) - - # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], -[AC_REQUIRE([_LT_PROG_F77])dnl -AC_LANG_PUSH(Fortran 77) +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= @@ -6612,7 +7194,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -6621,6 +7202,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -6660,7 +7243,9 @@ if test "$_lt_disable_F77" != yes; then # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} + CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -6714,38 +7299,24 @@ if test "$_lt_disable_F77" != yes; then GCC=$lt_save_GCC CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG -# _LT_PROG_FC -# ----------- -# Since AC_PROG_FC is broken, in that it returns the empty string -# if there is no fortran compiler, we have our own version here. -m4_defun([_LT_PROG_FC], -[ -pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) -AC_PROG_FC -if test -z "$FC" || test "X$FC" = "Xno"; then - _lt_disable_FC=yes -fi -popdef([AC_MSG_ERROR]) -])# _LT_PROG_FC - -dnl aclocal-1.4 backwards compatibility: -dnl AC_DEFUN([_LT_PROG_FC], []) - - # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], -[AC_REQUIRE([_LT_PROG_FC])dnl -AC_LANG_PUSH(Fortran) +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= @@ -6755,7 +7326,6 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= -_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no @@ -6764,6 +7334,8 @@ _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no @@ -6803,7 +7375,9 @@ if test "$_lt_disable_FC" != yes; then # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} + CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu @@ -6859,7 +7433,8 @@ if test "$_lt_disable_FC" != yes; then fi # test -n "$compiler" GCC=$lt_save_GCC - CC="$lt_save_CC" + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP @@ -6896,10 +7471,12 @@ _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. -lt_save_CC="$CC" +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" @@ -6909,6 +7486,8 @@ _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change @@ -6928,10 +7507,82 @@ fi AC_LANG_RESTORE GCC=$lt_save_GCC -CC="$lt_save_CC" +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler @@ -6963,9 +7614,11 @@ _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} +CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) @@ -6978,7 +7631,8 @@ fi GCC=$lt_save_GCC AC_LANG_RESTORE -CC="$lt_save_CC" +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG @@ -6998,6 +7652,13 @@ dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], @@ -7037,6 +7698,15 @@ _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) # _LT_DECL_SED # ------------ @@ -7130,8 +7800,8 @@ m4_defun([_LT_CHECK_SHELL_FEATURES], # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" - test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ - = c,a/b,, \ + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes @@ -7170,208 +7840,162 @@ _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES -# _LT_PROG_XSI_SHELLFNS -# --------------------- -# Bourne and XSI compatible variants of some useful shell functions. -m4_defun([_LT_PROG_XSI_SHELLFNS], -[case $xsi_shell in - yes) - cat << \_LT_EOF >> "$cfgfile" - -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac -} - -# func_basename file -func_basename () -{ - func_basename_result="${1##*/}" -} - -# func_dirname_and_basename file append nondir_replacement -# perform func_basename and func_dirname in a single function -# call: -# dirname: Compute the dirname of FILE. If nonempty, -# add APPEND to the result, otherwise set result -# to NONDIR_REPLACEMENT. -# value returned in "$func_dirname_result" -# basename: Compute filename of FILE. -# value retuned in "$func_basename_result" -# Implementation must be kept synchronized with func_dirname -# and func_basename. For efficiency, we do not delegate to -# those functions but instead duplicate the functionality here. -func_dirname_and_basename () -{ - case ${1} in - */*) func_dirname_result="${1%/*}${2}" ;; - * ) func_dirname_result="${3}" ;; - esac - func_basename_result="${1##*/}" -} - -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -func_stripname () -{ - # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are - # positional parameters, so assign one to ordinary parameter first. - func_stripname_result=${3} - func_stripname_result=${func_stripname_result#"${1}"} - func_stripname_result=${func_stripname_result%"${2}"} -} - -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=${1%%=*} - func_opt_split_arg=${1#*=} -} - -# func_lo2o object -func_lo2o () -{ - case ${1} in - *.lo) func_lo2o_result=${1%.lo}.${objext} ;; - *) func_lo2o_result=${1} ;; - esac -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=${1%.*}.lo -} +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=$(( $[*] )) -} -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=${#1} -} +# _LT_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) -_LT_EOF - ;; - *) # Bourne compatible functions. - cat << \_LT_EOF >> "$cfgfile" + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) -# func_dirname file append nondir_replacement -# Compute the dirname of FILE. If nonempty, add APPEND to the result, -# otherwise set result to NONDIR_REPLACEMENT. -func_dirname () -{ - # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` - if test "X$func_dirname_result" = "X${1}"; then - func_dirname_result="${3}" - else - func_dirname_result="$func_dirname_result${2}" - fi -} + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) -# func_basename file -func_basename () -{ - func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` -} + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) -dnl func_dirname_and_basename -dnl A portable version of this function is already defined in general.m4sh -dnl so there is no need for it here. + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) -# func_stripname prefix suffix name -# strip PREFIX and SUFFIX off of NAME. -# PREFIX and SUFFIX must not contain globbing or regex special -# characters, hashes, percent signs, but SUFFIX may contain a leading -# dot (in which case that matches only a dot). -# func_strip_suffix prefix name -func_stripname () -{ - case ${2} in - .*) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; - *) func_stripname_result=`$ECHO "X${3}" \ - | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; - esac -} + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) -# sed scripts: -my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' -my_sed_long_arg='1s/^-[[^=]]*=//' + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) -# func_opt_split -func_opt_split () -{ - func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` - func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` -} - -# func_lo2o object -func_lo2o () -{ - func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` -} - -# func_xform libobj-or-source -func_xform () -{ - func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` -} + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi -# func_arith arithmetic-term... -func_arith () -{ - func_arith_result=`expr "$[@]"` -} +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) -# func_len string -# STRING may not start with a hyphen. -func_len () -{ - func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` -} + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) -_LT_EOF -esac + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi -case $lt_shell_append in - yes) - cat << \_LT_EOF >> "$cfgfile" +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$[1]+=\$[2]" -} -_LT_EOF +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac ;; - *) - cat << \_LT_EOF >> "$cfgfile" - -# func_append var value -# Append VALUE to the end of shell variable VAR. -func_append () -{ - eval "$[1]=\$$[1]\$[2]" -} - -_LT_EOF + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac ;; - esac + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac ]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/resources/3rdparty/gtest-1.6.0/m4/ltoptions.m4 b/resources/3rdparty/gtest-1.7.0/m4/ltoptions.m4 similarity index 93% rename from resources/3rdparty/gtest-1.6.0/m4/ltoptions.m4 rename to resources/3rdparty/gtest-1.7.0/m4/ltoptions.m4 index 34151a3ba..5d9acd8e2 100644 --- a/resources/3rdparty/gtest-1.6.0/m4/ltoptions.m4 +++ b/resources/3rdparty/gtest-1.7.0/m4/ltoptions.m4 @@ -1,13 +1,14 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 6 ltoptions.m4 +# serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) @@ -125,7 +126,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) @@ -133,13 +134,13 @@ case $host in esac test -z "$AS" && AS=as -_LT_DECL([], [AS], [0], [Assembler program])dnl +_LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], @@ -325,9 +326,24 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], - [AS_HELP_STRING([--with-pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], - [pic_mode="$withval"], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) diff --git a/resources/3rdparty/gtest-1.6.0/m4/ltsugar.m4 b/resources/3rdparty/gtest-1.7.0/m4/ltsugar.m4 similarity index 100% rename from resources/3rdparty/gtest-1.6.0/m4/ltsugar.m4 rename to resources/3rdparty/gtest-1.7.0/m4/ltsugar.m4 diff --git a/resources/3rdparty/gtest-1.6.0/m4/ltversion.m4 b/resources/3rdparty/gtest-1.7.0/m4/ltversion.m4 similarity index 72% rename from resources/3rdparty/gtest-1.6.0/m4/ltversion.m4 rename to resources/3rdparty/gtest-1.7.0/m4/ltversion.m4 index f3c530980..07a8602d4 100644 --- a/resources/3rdparty/gtest-1.6.0/m4/ltversion.m4 +++ b/resources/3rdparty/gtest-1.7.0/m4/ltversion.m4 @@ -7,17 +7,17 @@ # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# Generated from ltversion.in. +# @configure_input@ -# serial 3017 ltversion.m4 +# serial 3337 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.2.6b]) -m4_define([LT_PACKAGE_REVISION], [1.3017]) +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.2.6b' -macro_revision='1.3017' +[macro_version='2.4.2' +macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/resources/3rdparty/gtest-1.6.0/m4/lt~obsolete.m4 b/resources/3rdparty/gtest-1.7.0/m4/lt~obsolete.m4 similarity index 90% rename from resources/3rdparty/gtest-1.6.0/m4/lt~obsolete.m4 rename to resources/3rdparty/gtest-1.7.0/m4/lt~obsolete.m4 index 637bb2066..c573da90c 100644 --- a/resources/3rdparty/gtest-1.6.0/m4/lt~obsolete.m4 +++ b/resources/3rdparty/gtest-1.7.0/m4/lt~obsolete.m4 @@ -1,13 +1,13 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 4 lt~obsolete.m4 +# serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # @@ -77,7 +77,6 @@ m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) -m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) @@ -90,3 +89,10 @@ m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/resources/3rdparty/gtest-1.6.0/make/Makefile b/resources/3rdparty/gtest-1.7.0/make/Makefile similarity index 92% rename from resources/3rdparty/gtest-1.6.0/make/Makefile rename to resources/3rdparty/gtest-1.7.0/make/Makefile index 5b27b6a2c..9ac74493b 100644 --- a/resources/3rdparty/gtest-1.6.0/make/Makefile +++ b/resources/3rdparty/gtest-1.7.0/make/Makefile @@ -20,10 +20,12 @@ GTEST_DIR = .. USER_DIR = ../samples # Flags passed to the preprocessor. -CPPFLAGS += -I$(GTEST_DIR)/include +# Set Google Test's header directory as a system directory, such that +# the compiler doesn't generate warnings in Google Test headers. +CPPFLAGS += -isystem $(GTEST_DIR)/include # Flags passed to the C++ compiler. -CXXFLAGS += -g -Wall -Wextra +CXXFLAGS += -g -Wall -Wextra -pthread # All tests produced by this Makefile. Remember to add new tests you # created to the list. diff --git a/resources/3rdparty/gtest-1.6.0/msvc/gtest-md.sln b/resources/3rdparty/gtest-1.7.0/msvc/gtest-md.sln similarity index 100% rename from resources/3rdparty/gtest-1.6.0/msvc/gtest-md.sln rename to resources/3rdparty/gtest-1.7.0/msvc/gtest-md.sln diff --git a/resources/3rdparty/gtest-1.6.0/msvc/gtest-md.vcproj b/resources/3rdparty/gtest-1.7.0/msvc/gtest-md.vcproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/msvc/gtest-md.vcproj rename to resources/3rdparty/gtest-1.7.0/msvc/gtest-md.vcproj diff --git a/resources/3rdparty/gtest-1.7.0/msvc/gtest.sln b/resources/3rdparty/gtest-1.7.0/msvc/gtest.sln new file mode 100644 index 000000000..c1b292964 --- /dev/null +++ b/resources/3rdparty/gtest-1.7.0/msvc/gtest.sln @@ -0,0 +1,45 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest", "gtest.vcproj", "{C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest_main", "gtest_main.vcproj", "{3AF54C8A-10BF-4332-9147-F68ED9862032}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest_unittest", "gtest_unittest.vcproj", "{4D9FDFB5-986A-4139-823C-F4EE0ED481A1}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest_prod_test", "gtest_prod_test.vcproj", "{24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Debug.ActiveCfg = Debug|Win32 + {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Debug.Build.0 = Debug|Win32 + {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Release.ActiveCfg = Release|Win32 + {C8F6C172-56F2-4E76-B5FA-C3B423B31BE7}.Release.Build.0 = Release|Win32 + {3AF54C8A-10BF-4332-9147-F68ED9862032}.Debug.ActiveCfg = Debug|Win32 + {3AF54C8A-10BF-4332-9147-F68ED9862032}.Debug.Build.0 = Debug|Win32 + {3AF54C8A-10BF-4332-9147-F68ED9862032}.Release.ActiveCfg = Release|Win32 + {3AF54C8A-10BF-4332-9147-F68ED9862032}.Release.Build.0 = Release|Win32 + {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Debug.ActiveCfg = Debug|Win32 + {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Debug.Build.0 = Debug|Win32 + {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Release.ActiveCfg = Release|Win32 + {4D9FDFB5-986A-4139-823C-F4EE0ED481A1}.Release.Build.0 = Release|Win32 + {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Debug.ActiveCfg = Debug|Win32 + {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Debug.Build.0 = Debug|Win32 + {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Release.ActiveCfg = Release|Win32 + {24848551-EF4F-47E8-9A9D-EA4D49BC3ECA}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/resources/3rdparty/gtest-1.6.0/msvc/gtest.vcproj b/resources/3rdparty/gtest-1.7.0/msvc/gtest.vcproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/msvc/gtest.vcproj rename to resources/3rdparty/gtest-1.7.0/msvc/gtest.vcproj diff --git a/resources/3rdparty/gtest-1.6.0/msvc/gtest_main-md.vcproj b/resources/3rdparty/gtest-1.7.0/msvc/gtest_main-md.vcproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/msvc/gtest_main-md.vcproj rename to resources/3rdparty/gtest-1.7.0/msvc/gtest_main-md.vcproj diff --git a/resources/3rdparty/gtest-1.6.0/msvc/gtest_main.vcproj b/resources/3rdparty/gtest-1.7.0/msvc/gtest_main.vcproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/msvc/gtest_main.vcproj rename to resources/3rdparty/gtest-1.7.0/msvc/gtest_main.vcproj diff --git a/resources/3rdparty/gtest-1.6.0/msvc/gtest_prod_test-md.vcproj b/resources/3rdparty/gtest-1.7.0/msvc/gtest_prod_test-md.vcproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/msvc/gtest_prod_test-md.vcproj rename to resources/3rdparty/gtest-1.7.0/msvc/gtest_prod_test-md.vcproj diff --git a/resources/3rdparty/gtest-1.6.0/msvc/gtest_prod_test.vcproj b/resources/3rdparty/gtest-1.7.0/msvc/gtest_prod_test.vcproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/msvc/gtest_prod_test.vcproj rename to resources/3rdparty/gtest-1.7.0/msvc/gtest_prod_test.vcproj diff --git a/resources/3rdparty/gtest-1.6.0/msvc/gtest_unittest-md.vcproj b/resources/3rdparty/gtest-1.7.0/msvc/gtest_unittest-md.vcproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/msvc/gtest_unittest-md.vcproj rename to resources/3rdparty/gtest-1.7.0/msvc/gtest_unittest-md.vcproj diff --git a/resources/3rdparty/gtest-1.6.0/msvc/gtest_unittest.vcproj b/resources/3rdparty/gtest-1.7.0/msvc/gtest_unittest.vcproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/msvc/gtest_unittest.vcproj rename to resources/3rdparty/gtest-1.7.0/msvc/gtest_unittest.vcproj diff --git a/resources/3rdparty/gtest-1.6.0/samples/prime_tables.h b/resources/3rdparty/gtest-1.7.0/samples/prime_tables.h similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/prime_tables.h rename to resources/3rdparty/gtest-1.7.0/samples/prime_tables.h diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample1.cc b/resources/3rdparty/gtest-1.7.0/samples/sample1.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/sample1.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample1.cc diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample1.h b/resources/3rdparty/gtest-1.7.0/samples/sample1.h similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/sample1.h rename to resources/3rdparty/gtest-1.7.0/samples/sample1.h diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample10_unittest.cc b/resources/3rdparty/gtest-1.7.0/samples/sample10_unittest.cc similarity index 98% rename from resources/3rdparty/gtest-1.6.0/samples/sample10_unittest.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample10_unittest.cc index 2813d0402..0051cd5dc 100644 --- a/resources/3rdparty/gtest-1.6.0/samples/sample10_unittest.cc +++ b/resources/3rdparty/gtest-1.7.0/samples/sample10_unittest.cc @@ -89,8 +89,7 @@ class LeakChecker : public EmptyTestEventListener { // You can generate a failure in any event handler except // OnTestPartResult. Just use an appropriate Google Test assertion to do // it. - EXPECT_TRUE(difference <= 0) - << "Leaked " << difference << " unit(s) of Water!"; + EXPECT_LE(difference, 0) << "Leaked " << difference << " unit(s) of Water!"; } int initially_allocated_; diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample1_unittest.cc b/resources/3rdparty/gtest-1.7.0/samples/sample1_unittest.cc similarity index 99% rename from resources/3rdparty/gtest-1.6.0/samples/sample1_unittest.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample1_unittest.cc index a8a7c793a..aefc4f1d8 100644 --- a/resources/3rdparty/gtest-1.6.0/samples/sample1_unittest.cc +++ b/resources/3rdparty/gtest-1.7.0/samples/sample1_unittest.cc @@ -81,7 +81,7 @@ TEST(FactorialTest, Negative) { // test case. EXPECT_EQ(1, Factorial(-5)); EXPECT_EQ(1, Factorial(-1)); - EXPECT_TRUE(Factorial(-10) > 0); + EXPECT_GT(Factorial(-10), 0); // <TechnicalDetails> // diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample2.cc b/resources/3rdparty/gtest-1.7.0/samples/sample2.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/sample2.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample2.cc diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample2.h b/resources/3rdparty/gtest-1.7.0/samples/sample2.h similarity index 99% rename from resources/3rdparty/gtest-1.6.0/samples/sample2.h rename to resources/3rdparty/gtest-1.7.0/samples/sample2.h index 5b57e6082..cb485c70f 100644 --- a/resources/3rdparty/gtest-1.6.0/samples/sample2.h +++ b/resources/3rdparty/gtest-1.7.0/samples/sample2.h @@ -44,7 +44,6 @@ class MyString { const MyString& operator=(const MyString& rhs); public: - // Clones a 0-terminated C string, allocating memory using new. static const char* CloneCString(const char* a_c_string); diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample2_unittest.cc b/resources/3rdparty/gtest-1.7.0/samples/sample2_unittest.cc similarity index 94% rename from resources/3rdparty/gtest-1.6.0/samples/sample2_unittest.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample2_unittest.cc index 3792fa509..4fa19b71c 100644 --- a/resources/3rdparty/gtest-1.6.0/samples/sample2_unittest.cc +++ b/resources/3rdparty/gtest-1.7.0/samples/sample2_unittest.cc @@ -79,7 +79,7 @@ const char kHelloString[] = "Hello, world!"; // Tests the c'tor that accepts a C string. TEST(MyString, ConstructorFromCString) { const MyString s(kHelloString); - EXPECT_TRUE(strcmp(s.c_string(), kHelloString) == 0); + EXPECT_EQ(0, strcmp(s.c_string(), kHelloString)); EXPECT_EQ(sizeof(kHelloString)/sizeof(kHelloString[0]) - 1, s.Length()); } @@ -88,7 +88,7 @@ TEST(MyString, ConstructorFromCString) { TEST(MyString, CopyConstructor) { const MyString s1(kHelloString); const MyString s2 = s1; - EXPECT_TRUE(strcmp(s2.c_string(), kHelloString) == 0); + EXPECT_EQ(0, strcmp(s2.c_string(), kHelloString)); } // Tests the Set method. @@ -96,12 +96,12 @@ TEST(MyString, Set) { MyString s; s.Set(kHelloString); - EXPECT_TRUE(strcmp(s.c_string(), kHelloString) == 0); + EXPECT_EQ(0, strcmp(s.c_string(), kHelloString)); // Set should work when the input pointer is the same as the one // already in the MyString object. s.Set(s.c_string()); - EXPECT_TRUE(strcmp(s.c_string(), kHelloString) == 0); + EXPECT_EQ(0, strcmp(s.c_string(), kHelloString)); // Can we set the MyString to NULL? s.Set(NULL); diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample3-inl.h b/resources/3rdparty/gtest-1.7.0/samples/sample3-inl.h similarity index 98% rename from resources/3rdparty/gtest-1.6.0/samples/sample3-inl.h rename to resources/3rdparty/gtest-1.7.0/samples/sample3-inl.h index 46369a076..7e3084d63 100644 --- a/resources/3rdparty/gtest-1.6.0/samples/sample3-inl.h +++ b/resources/3rdparty/gtest-1.7.0/samples/sample3-inl.h @@ -60,7 +60,7 @@ class QueueNode { private: // Creates a node with a given element value. The next pointer is // set to NULL. - QueueNode(const E& an_element) : element_(an_element), next_(NULL) {} + explicit QueueNode(const E& an_element) : element_(an_element), next_(NULL) {} // We disable the default assignment operator and copy c'tor. const QueueNode& operator = (const QueueNode&); @@ -72,8 +72,7 @@ class QueueNode { template <typename E> // E is the element type. class Queue { -public: - + public: // Creates an empty queue. Queue() : head_(NULL), last_(NULL), size_(0) {} @@ -168,6 +167,6 @@ public: // We disallow copying a queue. Queue(const Queue&); const Queue& operator = (const Queue&); - }; +}; #endif // GTEST_SAMPLES_SAMPLE3_INL_H_ diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample3_unittest.cc b/resources/3rdparty/gtest-1.7.0/samples/sample3_unittest.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/sample3_unittest.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample3_unittest.cc diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample4.cc b/resources/3rdparty/gtest-1.7.0/samples/sample4.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/sample4.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample4.cc diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample4.h b/resources/3rdparty/gtest-1.7.0/samples/sample4.h similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/sample4.h rename to resources/3rdparty/gtest-1.7.0/samples/sample4.h diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample4_unittest.cc b/resources/3rdparty/gtest-1.7.0/samples/sample4_unittest.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/sample4_unittest.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample4_unittest.cc diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample5_unittest.cc b/resources/3rdparty/gtest-1.7.0/samples/sample5_unittest.cc similarity index 96% rename from resources/3rdparty/gtest-1.6.0/samples/sample5_unittest.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample5_unittest.cc index e7cab014c..43d8e5777 100644 --- a/resources/3rdparty/gtest-1.6.0/samples/sample5_unittest.cc +++ b/resources/3rdparty/gtest-1.7.0/samples/sample5_unittest.cc @@ -101,7 +101,7 @@ TEST_F(IntegerFunctionTest, Factorial) { // Tests factorial of negative numbers. EXPECT_EQ(1, Factorial(-5)); EXPECT_EQ(1, Factorial(-1)); - EXPECT_TRUE(Factorial(-10) > 0); + EXPECT_GT(Factorial(-10), 0); // Tests factorial of 0. EXPECT_EQ(1, Factorial(0)); @@ -117,20 +117,20 @@ TEST_F(IntegerFunctionTest, Factorial) { // Tests IsPrime() TEST_F(IntegerFunctionTest, IsPrime) { // Tests negative input. - EXPECT_TRUE(!IsPrime(-1)); - EXPECT_TRUE(!IsPrime(-2)); - EXPECT_TRUE(!IsPrime(INT_MIN)); + EXPECT_FALSE(IsPrime(-1)); + EXPECT_FALSE(IsPrime(-2)); + EXPECT_FALSE(IsPrime(INT_MIN)); // Tests some trivial cases. - EXPECT_TRUE(!IsPrime(0)); - EXPECT_TRUE(!IsPrime(1)); + EXPECT_FALSE(IsPrime(0)); + EXPECT_FALSE(IsPrime(1)); EXPECT_TRUE(IsPrime(2)); EXPECT_TRUE(IsPrime(3)); // Tests positive input. - EXPECT_TRUE(!IsPrime(4)); + EXPECT_FALSE(IsPrime(4)); EXPECT_TRUE(IsPrime(5)); - EXPECT_TRUE(!IsPrime(6)); + EXPECT_FALSE(IsPrime(6)); EXPECT_TRUE(IsPrime(23)); } diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample6_unittest.cc b/resources/3rdparty/gtest-1.7.0/samples/sample6_unittest.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/sample6_unittest.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample6_unittest.cc diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample7_unittest.cc b/resources/3rdparty/gtest-1.7.0/samples/sample7_unittest.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/sample7_unittest.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample7_unittest.cc diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample8_unittest.cc b/resources/3rdparty/gtest-1.7.0/samples/sample8_unittest.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/sample8_unittest.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample8_unittest.cc diff --git a/resources/3rdparty/gtest-1.6.0/samples/sample9_unittest.cc b/resources/3rdparty/gtest-1.7.0/samples/sample9_unittest.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/samples/sample9_unittest.cc rename to resources/3rdparty/gtest-1.7.0/samples/sample9_unittest.cc diff --git a/resources/3rdparty/gtest-1.6.0/scripts/fuse_gtest_files.py b/resources/3rdparty/gtest-1.7.0/scripts/fuse_gtest_files.py old mode 100755 new mode 100644 similarity index 100% rename from resources/3rdparty/gtest-1.6.0/scripts/fuse_gtest_files.py rename to resources/3rdparty/gtest-1.7.0/scripts/fuse_gtest_files.py diff --git a/resources/3rdparty/gtest-1.6.0/scripts/gen_gtest_pred_impl.py b/resources/3rdparty/gtest-1.7.0/scripts/gen_gtest_pred_impl.py similarity index 99% rename from resources/3rdparty/gtest-1.6.0/scripts/gen_gtest_pred_impl.py rename to resources/3rdparty/gtest-1.7.0/scripts/gen_gtest_pred_impl.py index d35b4f00f..3e7ab042e 100644 --- a/resources/3rdparty/gtest-1.6.0/scripts/gen_gtest_pred_impl.py +++ b/resources/3rdparty/gtest-1.7.0/scripts/gen_gtest_pred_impl.py @@ -117,7 +117,7 @@ def HeaderPreamble(n): // Makes sure this header is not included before gtest.h. #ifndef GTEST_INCLUDE_GTEST_GTEST_H_ -#error Do not include gtest_pred_impl.h directly. Include gtest.h instead. +# error Do not include gtest_pred_impl.h directly. Include gtest.h instead. #endif // GTEST_INCLUDE_GTEST_GTEST_H_ // This header implements a family of generic predicate assertion @@ -256,7 +256,7 @@ AssertionResult AssertPred%(n)sHelper(const char* pred_text""" % DEFS // Internal macro for implementing {EXPECT|ASSERT}_PRED_FORMAT%(n)s. // Don't use this in your code. #define GTEST_PRED_FORMAT%(n)s_(pred_format, %(vs)s, on_failure)\\ - GTEST_ASSERT_(pred_format(%(vts)s, %(vs)s),\\ + GTEST_ASSERT_(pred_format(%(vts)s, %(vs)s), \\ on_failure) // Internal macro for implementing {EXPECT|ASSERT}_PRED%(n)s. Don't use diff --git a/resources/3rdparty/gtest-1.6.0/scripts/gtest-config.in b/resources/3rdparty/gtest-1.7.0/scripts/gtest-config.in similarity index 99% rename from resources/3rdparty/gtest-1.6.0/scripts/gtest-config.in rename to resources/3rdparty/gtest-1.7.0/scripts/gtest-config.in index 9c7263854..780f8432e 100644 --- a/resources/3rdparty/gtest-1.6.0/scripts/gtest-config.in +++ b/resources/3rdparty/gtest-1.7.0/scripts/gtest-config.in @@ -209,7 +209,7 @@ if test "${this_bindir}" = "${this_bindir%${bindir}}"; then # The path to the script doesn't end in the bindir sequence from Autoconf, # assume that we are in a build tree. build_dir=`dirname ${this_bindir}` - src_dir=`cd ${this_bindir}/@top_srcdir@; pwd -P` + src_dir=`cd ${this_bindir}; cd @top_srcdir@; pwd -P` # TODO(chandlerc@google.com): This is a dangerous dependency on libtool, we # should work to remove it, and/or remove libtool altogether, replacing it diff --git a/resources/3rdparty/gtest-1.6.0/scripts/pump.py b/resources/3rdparty/gtest-1.7.0/scripts/pump.py similarity index 96% rename from resources/3rdparty/gtest-1.6.0/scripts/pump.py rename to resources/3rdparty/gtest-1.7.0/scripts/pump.py index 8afe80811..5efb653c2 100644 --- a/resources/3rdparty/gtest-1.6.0/scripts/pump.py +++ b/resources/3rdparty/gtest-1.7.0/scripts/pump.py @@ -704,14 +704,14 @@ def RunCode(env, code_node, output): RunAtomicCode(env, atomic_code, output) -def IsComment(cur_line): +def IsSingleLineComment(cur_line): return '//' in cur_line -def IsInPreprocessorDirevative(prev_lines, cur_line): +def IsInPreprocessorDirective(prev_lines, cur_line): if cur_line.lstrip().startswith('#'): return True - return prev_lines != [] and prev_lines[-1].endswith('\\') + return prev_lines and prev_lines[-1].endswith('\\') def WrapComment(line, output): @@ -768,7 +768,7 @@ def WrapCode(line, line_concat, output): output.append(prefix + cur_line.strip()) -def WrapPreprocessorDirevative(line, output): +def WrapPreprocessorDirective(line, output): WrapCode(line, ' \\', output) @@ -776,29 +776,37 @@ def WrapPlainCode(line, output): WrapCode(line, '', output) -def IsHeaderGuardOrInclude(line): +def IsMultiLineIWYUPragma(line): + return re.search(r'/\* IWYU pragma: ', line) + + +def IsHeaderGuardIncludeOrOneLineIWYUPragma(line): return (re.match(r'^#(ifndef|define|endif\s*//)\s*[\w_]+\s*$', line) or - re.match(r'^#include\s', line)) + re.match(r'^#include\s', line) or + # Don't break IWYU pragmas, either; that causes iwyu.py problems. + re.search(r'// IWYU pragma: ', line)) def WrapLongLine(line, output): line = line.rstrip() if len(line) <= 80: output.append(line) - elif IsComment(line): - if IsHeaderGuardOrInclude(line): - # The style guide made an exception to allow long header guard lines - # and includes. + elif IsSingleLineComment(line): + if IsHeaderGuardIncludeOrOneLineIWYUPragma(line): + # The style guide made an exception to allow long header guard lines, + # includes and IWYU pragmas. output.append(line) else: WrapComment(line, output) - elif IsInPreprocessorDirevative(output, line): - if IsHeaderGuardOrInclude(line): - # The style guide made an exception to allow long header guard lines - # and includes. + elif IsInPreprocessorDirective(output, line): + if IsHeaderGuardIncludeOrOneLineIWYUPragma(line): + # The style guide made an exception to allow long header guard lines, + # includes and IWYU pragmas. output.append(line) else: - WrapPreprocessorDirevative(line, output) + WrapPreprocessorDirective(line, output) + elif IsMultiLineIWYUPragma(line): + output.append(line) else: WrapPlainCode(line, output) diff --git a/resources/3rdparty/gtest-1.6.0/scripts/test/Makefile b/resources/3rdparty/gtest-1.7.0/scripts/test/Makefile similarity index 100% rename from resources/3rdparty/gtest-1.6.0/scripts/test/Makefile rename to resources/3rdparty/gtest-1.7.0/scripts/test/Makefile diff --git a/resources/3rdparty/gtest-1.6.0/src/gtest-all.cc b/resources/3rdparty/gtest-1.7.0/src/gtest-all.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/src/gtest-all.cc rename to resources/3rdparty/gtest-1.7.0/src/gtest-all.cc diff --git a/resources/3rdparty/gtest-1.6.0/src/gtest-death-test.cc b/resources/3rdparty/gtest-1.7.0/src/gtest-death-test.cc similarity index 82% rename from resources/3rdparty/gtest-1.6.0/src/gtest-death-test.cc rename to resources/3rdparty/gtest-1.7.0/src/gtest-death-test.cc index 8b2e4131c..a6023fce4 100644 --- a/resources/3rdparty/gtest-1.6.0/src/gtest-death-test.cc +++ b/resources/3rdparty/gtest-1.7.0/src/gtest-death-test.cc @@ -43,6 +43,11 @@ # include <errno.h> # include <fcntl.h> # include <limits.h> + +# if GTEST_OS_LINUX +# include <signal.h> +# endif // GTEST_OS_LINUX + # include <stdarg.h> # if GTEST_OS_WINDOWS @@ -52,6 +57,10 @@ # include <sys/wait.h> # endif // GTEST_OS_WINDOWS +# if GTEST_OS_QNX +# include <spawn.h> +# endif // GTEST_OS_QNX + #endif // GTEST_HAS_DEATH_TEST #include "gtest/gtest-message.h" @@ -100,13 +109,42 @@ GTEST_DEFINE_string_( "Indicates the file, line number, temporal index of " "the single death test to run, and a file descriptor to " "which a success code may be sent, all separated by " - "colons. This flag is specified if and only if the current " + "the '|' characters. This flag is specified if and only if the current " "process is a sub-process launched for running a thread-safe " "death test. FOR INTERNAL USE ONLY."); } // namespace internal #if GTEST_HAS_DEATH_TEST +namespace internal { + +// Valid only for fast death tests. Indicates the code is running in the +// child process of a fast style death test. +static bool g_in_fast_death_test_child = false; + +// Returns a Boolean value indicating whether the caller is currently +// executing in the context of the death test child process. Tools such as +// Valgrind heap checkers may need this to modify their behavior in death +// tests. IMPORTANT: This is an internal utility. Using it may break the +// implementation of death tests. User code MUST NOT use it. +bool InDeathTestChild() { +# if GTEST_OS_WINDOWS + + // On Windows, death tests are thread-safe regardless of the value of the + // death_test_style flag. + return !GTEST_FLAG(internal_run_death_test).empty(); + +# else + + if (GTEST_FLAG(death_test_style) == "threadsafe") + return !GTEST_FLAG(internal_run_death_test).empty(); + else + return g_in_fast_death_test_child; +#endif +} + +} // namespace internal + // ExitedWithCode constructor. ExitedWithCode::ExitedWithCode(int exit_code) : exit_code_(exit_code) { } @@ -141,7 +179,7 @@ namespace internal { // Generates a textual description of a given exit code, in the format // specified by wait(2). -static String ExitSummary(int exit_code) { +static std::string ExitSummary(int exit_code) { Message m; # if GTEST_OS_WINDOWS @@ -176,7 +214,7 @@ bool ExitedUnsuccessfully(int exit_status) { // one thread running, or cannot determine the number of threads, prior // to executing the given statement. It is the responsibility of the // caller not to pass a thread_count of 1. -static String DeathTestThreadWarning(size_t thread_count) { +static std::string DeathTestThreadWarning(size_t thread_count) { Message msg; msg << "Death tests use fork(), which is unsafe particularly" << " in a threaded context. For this test, " << GTEST_NAME_ << " "; @@ -210,7 +248,7 @@ enum DeathTestOutcome { IN_PROGRESS, DIED, LIVED, RETURNED, THREW }; // message is propagated back to the parent process. Otherwise, the // message is simply printed to stderr. In either case, the program // then exits with status 1. -void DeathTestAbort(const String& message) { +void DeathTestAbort(const std::string& message) { // On a POSIX system, this function may be called from a threadsafe-style // death test child process, which operates on a very small stack. Use // the heap for any additional non-minuscule memory requirements. @@ -234,9 +272,10 @@ void DeathTestAbort(const String& message) { # define GTEST_DEATH_TEST_CHECK_(expression) \ do { \ if (!::testing::internal::IsTrue(expression)) { \ - DeathTestAbort(::testing::internal::String::Format( \ - "CHECK failed: File %s, line %d: %s", \ - __FILE__, __LINE__, #expression)); \ + DeathTestAbort( \ + ::std::string("CHECK failed: File ") + __FILE__ + ", line " \ + + ::testing::internal::StreamableToString(__LINE__) + ": " \ + + #expression); \ } \ } while (::testing::internal::AlwaysFalse()) @@ -254,15 +293,16 @@ void DeathTestAbort(const String& message) { gtest_retval = (expression); \ } while (gtest_retval == -1 && errno == EINTR); \ if (gtest_retval == -1) { \ - DeathTestAbort(::testing::internal::String::Format( \ - "CHECK failed: File %s, line %d: %s != -1", \ - __FILE__, __LINE__, #expression)); \ + DeathTestAbort( \ + ::std::string("CHECK failed: File ") + __FILE__ + ", line " \ + + ::testing::internal::StreamableToString(__LINE__) + ": " \ + + #expression + " != -1"); \ } \ } while (::testing::internal::AlwaysFalse()) // Returns the message describing the last system error in errno. -String GetLastErrnoDescription() { - return String(errno == 0 ? "" : posix::StrError(errno)); +std::string GetLastErrnoDescription() { + return errno == 0 ? "" : posix::StrError(errno); } // This is called from a death test parent process to read a failure @@ -312,11 +352,11 @@ const char* DeathTest::LastMessage() { return last_death_test_message_.c_str(); } -void DeathTest::set_last_death_test_message(const String& message) { +void DeathTest::set_last_death_test_message(const std::string& message) { last_death_test_message_ = message; } -String DeathTest::last_death_test_message_; +std::string DeathTest::last_death_test_message_; // Provides cross platform implementation for some death functionality. class DeathTestImpl : public DeathTest { @@ -491,7 +531,7 @@ bool DeathTestImpl::Passed(bool status_ok) { if (!spawned()) return false; - const String error_message = GetCapturedStderr(); + const std::string error_message = GetCapturedStderr(); bool success = false; Message buffer; @@ -673,22 +713,19 @@ DeathTest::TestRole WindowsDeathTest::AssumeRole() { FALSE, // The initial state is non-signalled. NULL)); // The even is unnamed. GTEST_DEATH_TEST_CHECK_(event_handle_.Get() != NULL); - const String filter_flag = String::Format("--%s%s=%s.%s", - GTEST_FLAG_PREFIX_, kFilterFlag, - info->test_case_name(), - info->name()); - const String internal_flag = String::Format( - "--%s%s=%s|%d|%d|%u|%Iu|%Iu", - GTEST_FLAG_PREFIX_, - kInternalRunDeathTestFlag, - file_, line_, - death_test_index, - static_cast<unsigned int>(::GetCurrentProcessId()), - // size_t has the same with as pointers on both 32-bit and 64-bit + const std::string filter_flag = + std::string("--") + GTEST_FLAG_PREFIX_ + kFilterFlag + "=" + + info->test_case_name() + "." + info->name(); + const std::string internal_flag = + std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag + + "=" + file_ + "|" + StreamableToString(line_) + "|" + + StreamableToString(death_test_index) + "|" + + StreamableToString(static_cast<unsigned int>(::GetCurrentProcessId())) + + // size_t has the same width as pointers on both 32-bit and 64-bit // Windows platforms. // See http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx. - reinterpret_cast<size_t>(write_handle), - reinterpret_cast<size_t>(event_handle_.Get())); + "|" + StreamableToString(reinterpret_cast<size_t>(write_handle)) + + "|" + StreamableToString(reinterpret_cast<size_t>(event_handle_.Get())); char executable_path[_MAX_PATH + 1]; // NOLINT GTEST_DEATH_TEST_CHECK_( @@ -696,10 +733,9 @@ DeathTest::TestRole WindowsDeathTest::AssumeRole() { executable_path, _MAX_PATH)); - String command_line = String::Format("%s %s \"%s\"", - ::GetCommandLineA(), - filter_flag.c_str(), - internal_flag.c_str()); + std::string command_line = + std::string(::GetCommandLineA()) + " " + filter_flag + " \"" + + internal_flag + "\""; DeathTest::set_last_death_test_message(""); @@ -816,6 +852,7 @@ DeathTest::TestRole NoExecDeathTest::AssumeRole() { // Event forwarding to the listeners of event listener API mush be shut // down in death test subprocesses. GetUnitTestImpl()->listeners()->SuppressEventForwarding(); + g_in_fast_death_test_child = true; return EXECUTE_TEST; } else { GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1])); @@ -835,6 +872,11 @@ class ExecDeathTest : public ForkingDeathTest { ForkingDeathTest(a_statement, a_regex), file_(file), line_(line) { } virtual TestRole AssumeRole(); private: + static ::std::vector<testing::internal::string> + GetArgvsForDeathTestChildProcess() { + ::std::vector<testing::internal::string> args = GetInjectableArgvs(); + return args; + } // The name of the file in which the death test is located. const char* const file_; // The line number on which the death test is located. @@ -869,6 +911,7 @@ class Arguments { char* const* Argv() { return &args_[0]; } + private: std::vector<char*> args_; }; @@ -894,6 +937,7 @@ extern "C" char** environ; inline char** GetEnviron() { return environ; } # endif // GTEST_OS_MAC +# if !GTEST_OS_QNX // The main function for a threadsafe-style death test child process. // This function is called in a clone()-ed process and thus must avoid // any potentially unsafe operations like malloc or libc functions. @@ -908,9 +952,8 @@ static int ExecDeathTestChildMain(void* child_arg) { UnitTest::GetInstance()->original_working_dir(); // We can safely call chdir() as it's a direct system call. if (chdir(original_dir) != 0) { - DeathTestAbort(String::Format("chdir(\"%s\") failed: %s", - original_dir, - GetLastErrnoDescription().c_str())); + DeathTestAbort(std::string("chdir(\"") + original_dir + "\") failed: " + + GetLastErrnoDescription()); return EXIT_FAILURE; } @@ -920,12 +963,12 @@ static int ExecDeathTestChildMain(void* child_arg) { // invoke the test program via a valid path that contains at least // one path separator. execve(args->argv[0], args->argv, GetEnviron()); - DeathTestAbort(String::Format("execve(%s, ...) in %s failed: %s", - args->argv[0], - original_dir, - GetLastErrnoDescription().c_str())); + DeathTestAbort(std::string("execve(") + args->argv[0] + ", ...) in " + + original_dir + " failed: " + + GetLastErrnoDescription()); return EXIT_FAILURE; } +# endif // !GTEST_OS_QNX // Two utility routines that together determine the direction the stack // grows. @@ -936,25 +979,75 @@ static int ExecDeathTestChildMain(void* child_arg) { // GTEST_NO_INLINE_ is required to prevent GCC 4.6 from inlining // StackLowerThanAddress into StackGrowsDown, which then doesn't give // correct answer. -bool StackLowerThanAddress(const void* ptr) GTEST_NO_INLINE_; -bool StackLowerThanAddress(const void* ptr) { +void StackLowerThanAddress(const void* ptr, bool* result) GTEST_NO_INLINE_; +void StackLowerThanAddress(const void* ptr, bool* result) { int dummy; - return &dummy < ptr; + *result = (&dummy < ptr); } bool StackGrowsDown() { int dummy; - return StackLowerThanAddress(&dummy); + bool result; + StackLowerThanAddress(&dummy, &result); + return result; } -// A threadsafe implementation of fork(2) for threadsafe-style death tests -// that uses clone(2). It dies with an error message if anything goes -// wrong. -static pid_t ExecDeathTestFork(char* const* argv, int close_fd) { +// Spawns a child process with the same executable as the current process in +// a thread-safe manner and instructs it to run the death test. The +// implementation uses fork(2) + exec. On systems where clone(2) is +// available, it is used instead, being slightly more thread-safe. On QNX, +// fork supports only single-threaded environments, so this function uses +// spawn(2) there instead. The function dies with an error message if +// anything goes wrong. +static pid_t ExecDeathTestSpawnChild(char* const* argv, int close_fd) { ExecDeathTestArgs args = { argv, close_fd }; pid_t child_pid = -1; -# if GTEST_HAS_CLONE +# if GTEST_OS_QNX + // Obtains the current directory and sets it to be closed in the child + // process. + const int cwd_fd = open(".", O_RDONLY); + GTEST_DEATH_TEST_CHECK_(cwd_fd != -1); + GTEST_DEATH_TEST_CHECK_SYSCALL_(fcntl(cwd_fd, F_SETFD, FD_CLOEXEC)); + // We need to execute the test program in the same environment where + // it was originally invoked. Therefore we change to the original + // working directory first. + const char* const original_dir = + UnitTest::GetInstance()->original_working_dir(); + // We can safely call chdir() as it's a direct system call. + if (chdir(original_dir) != 0) { + DeathTestAbort(std::string("chdir(\"") + original_dir + "\") failed: " + + GetLastErrnoDescription()); + return EXIT_FAILURE; + } + + int fd_flags; + // Set close_fd to be closed after spawn. + GTEST_DEATH_TEST_CHECK_SYSCALL_(fd_flags = fcntl(close_fd, F_GETFD)); + GTEST_DEATH_TEST_CHECK_SYSCALL_(fcntl(close_fd, F_SETFD, + fd_flags | FD_CLOEXEC)); + struct inheritance inherit = {0}; + // spawn is a system call. + child_pid = spawn(args.argv[0], 0, NULL, &inherit, args.argv, GetEnviron()); + // Restores the current working directory. + GTEST_DEATH_TEST_CHECK_(fchdir(cwd_fd) != -1); + GTEST_DEATH_TEST_CHECK_SYSCALL_(close(cwd_fd)); + +# else // GTEST_OS_QNX +# if GTEST_OS_LINUX + // When a SIGPROF signal is received while fork() or clone() are executing, + // the process may hang. To avoid this, we ignore SIGPROF here and re-enable + // it after the call to fork()/clone() is complete. + struct sigaction saved_sigprof_action; + struct sigaction ignore_sigprof_action; + memset(&ignore_sigprof_action, 0, sizeof(ignore_sigprof_action)); + sigemptyset(&ignore_sigprof_action.sa_mask); + ignore_sigprof_action.sa_handler = SIG_IGN; + GTEST_DEATH_TEST_CHECK_SYSCALL_(sigaction( + SIGPROF, &ignore_sigprof_action, &saved_sigprof_action)); +# endif // GTEST_OS_LINUX + +# if GTEST_HAS_CLONE const bool use_fork = GTEST_FLAG(death_test_use_fork); if (!use_fork) { @@ -964,21 +1057,37 @@ static pid_t ExecDeathTestFork(char* const* argv, int close_fd) { void* const stack = mmap(NULL, stack_size, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0); GTEST_DEATH_TEST_CHECK_(stack != MAP_FAILED); + + // Maximum stack alignment in bytes: For a downward-growing stack, this + // amount is subtracted from size of the stack space to get an address + // that is within the stack space and is aligned on all systems we care + // about. As far as I know there is no ABI with stack alignment greater + // than 64. We assume stack and stack_size already have alignment of + // kMaxStackAlignment. + const size_t kMaxStackAlignment = 64; void* const stack_top = - static_cast<char*>(stack) + (stack_grows_down ? stack_size : 0); + static_cast<char*>(stack) + + (stack_grows_down ? stack_size - kMaxStackAlignment : 0); + GTEST_DEATH_TEST_CHECK_(stack_size > kMaxStackAlignment && + reinterpret_cast<intptr_t>(stack_top) % kMaxStackAlignment == 0); child_pid = clone(&ExecDeathTestChildMain, stack_top, SIGCHLD, &args); GTEST_DEATH_TEST_CHECK_(munmap(stack, stack_size) != -1); } -# else +# else const bool use_fork = true; -# endif // GTEST_HAS_CLONE +# endif // GTEST_HAS_CLONE if (use_fork && (child_pid = fork()) == 0) { ExecDeathTestChildMain(&args); _exit(0); } +# endif // GTEST_OS_QNX +# if GTEST_OS_LINUX + GTEST_DEATH_TEST_CHECK_SYSCALL_( + sigaction(SIGPROF, &saved_sigprof_action, NULL)); +# endif // GTEST_OS_LINUX GTEST_DEATH_TEST_CHECK_(child_pid != -1); return child_pid; @@ -1006,16 +1115,16 @@ DeathTest::TestRole ExecDeathTest::AssumeRole() { // it be closed when the child process does an exec: GTEST_DEATH_TEST_CHECK_(fcntl(pipe_fd[1], F_SETFD, 0) != -1); - const String filter_flag = - String::Format("--%s%s=%s.%s", - GTEST_FLAG_PREFIX_, kFilterFlag, - info->test_case_name(), info->name()); - const String internal_flag = - String::Format("--%s%s=%s|%d|%d|%d", - GTEST_FLAG_PREFIX_, kInternalRunDeathTestFlag, - file_, line_, death_test_index, pipe_fd[1]); + const std::string filter_flag = + std::string("--") + GTEST_FLAG_PREFIX_ + kFilterFlag + "=" + + info->test_case_name() + "." + info->name(); + const std::string internal_flag = + std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag + "=" + + file_ + "|" + StreamableToString(line_) + "|" + + StreamableToString(death_test_index) + "|" + + StreamableToString(pipe_fd[1]); Arguments args; - args.AddArguments(GetArgvs()); + args.AddArguments(GetArgvsForDeathTestChildProcess()); args.AddArgument(filter_flag.c_str()); args.AddArgument(internal_flag.c_str()); @@ -1026,7 +1135,7 @@ DeathTest::TestRole ExecDeathTest::AssumeRole() { // is necessary. FlushInfoLog(); - const pid_t child_pid = ExecDeathTestFork(args.Argv(), pipe_fd[0]); + const pid_t child_pid = ExecDeathTestSpawnChild(args.Argv(), pipe_fd[0]); GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1])); set_child_pid(child_pid); set_read_fd(pipe_fd[0]); @@ -1052,9 +1161,10 @@ bool DefaultDeathTestFactory::Create(const char* statement, const RE* regex, if (flag != NULL) { if (death_test_index > flag->index()) { - DeathTest::set_last_death_test_message(String::Format( - "Death test count (%d) somehow exceeded expected maximum (%d)", - death_test_index, flag->index())); + DeathTest::set_last_death_test_message( + "Death test count (" + StreamableToString(death_test_index) + + ") somehow exceeded expected maximum (" + + StreamableToString(flag->index()) + ")"); return false; } @@ -1083,9 +1193,9 @@ bool DefaultDeathTestFactory::Create(const char* statement, const RE* regex, # endif // GTEST_OS_WINDOWS else { // NOLINT - this is more readable than unbalanced brackets inside #if. - DeathTest::set_last_death_test_message(String::Format( - "Unknown death test style \"%s\" encountered", - GTEST_FLAG(death_test_style).c_str())); + DeathTest::set_last_death_test_message( + "Unknown death test style \"" + GTEST_FLAG(death_test_style) + + "\" encountered"); return false; } @@ -1123,8 +1233,8 @@ int GetStatusFileDescriptor(unsigned int parent_process_id, FALSE, // Non-inheritable. parent_process_id)); if (parent_process_handle.Get() == INVALID_HANDLE_VALUE) { - DeathTestAbort(String::Format("Unable to open parent process %u", - parent_process_id)); + DeathTestAbort("Unable to open parent process " + + StreamableToString(parent_process_id)); } // TODO(vladl@google.com): Replace the following check with a @@ -1144,9 +1254,10 @@ int GetStatusFileDescriptor(unsigned int parent_process_id, // DUPLICATE_SAME_ACCESS is used. FALSE, // Request non-inheritable handler. DUPLICATE_SAME_ACCESS)) { - DeathTestAbort(String::Format( - "Unable to duplicate the pipe handle %Iu from the parent process %u", - write_handle_as_size_t, parent_process_id)); + DeathTestAbort("Unable to duplicate the pipe handle " + + StreamableToString(write_handle_as_size_t) + + " from the parent process " + + StreamableToString(parent_process_id)); } const HANDLE event_handle = reinterpret_cast<HANDLE>(event_handle_as_size_t); @@ -1157,17 +1268,18 @@ int GetStatusFileDescriptor(unsigned int parent_process_id, 0x0, FALSE, DUPLICATE_SAME_ACCESS)) { - DeathTestAbort(String::Format( - "Unable to duplicate the event handle %Iu from the parent process %u", - event_handle_as_size_t, parent_process_id)); + DeathTestAbort("Unable to duplicate the event handle " + + StreamableToString(event_handle_as_size_t) + + " from the parent process " + + StreamableToString(parent_process_id)); } const int write_fd = ::_open_osfhandle(reinterpret_cast<intptr_t>(dup_write_handle), O_APPEND); if (write_fd == -1) { - DeathTestAbort(String::Format( - "Unable to convert pipe handle %Iu to a file descriptor", - write_handle_as_size_t)); + DeathTestAbort("Unable to convert pipe handle " + + StreamableToString(write_handle_as_size_t) + + " to a file descriptor"); } // Signals the parent that the write end of the pipe has been acquired @@ -1204,9 +1316,8 @@ InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag() { || !ParseNaturalNumber(fields[3], &parent_process_id) || !ParseNaturalNumber(fields[4], &write_handle_as_size_t) || !ParseNaturalNumber(fields[5], &event_handle_as_size_t)) { - DeathTestAbort(String::Format( - "Bad --gtest_internal_run_death_test flag: %s", - GTEST_FLAG(internal_run_death_test).c_str())); + DeathTestAbort("Bad --gtest_internal_run_death_test flag: " + + GTEST_FLAG(internal_run_death_test)); } write_fd = GetStatusFileDescriptor(parent_process_id, write_handle_as_size_t, @@ -1217,9 +1328,8 @@ InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag() { || !ParseNaturalNumber(fields[1], &line) || !ParseNaturalNumber(fields[2], &index) || !ParseNaturalNumber(fields[3], &write_fd)) { - DeathTestAbort(String::Format( - "Bad --gtest_internal_run_death_test flag: %s", - GTEST_FLAG(internal_run_death_test).c_str())); + DeathTestAbort("Bad --gtest_internal_run_death_test flag: " + + GTEST_FLAG(internal_run_death_test)); } # endif // GTEST_OS_WINDOWS diff --git a/resources/3rdparty/gtest-1.6.0/src/gtest-filepath.cc b/resources/3rdparty/gtest-1.7.0/src/gtest-filepath.cc similarity index 94% rename from resources/3rdparty/gtest-1.6.0/src/gtest-filepath.cc rename to resources/3rdparty/gtest-1.7.0/src/gtest-filepath.cc index 91b257138..6be58b6fc 100644 --- a/resources/3rdparty/gtest-1.6.0/src/gtest-filepath.cc +++ b/resources/3rdparty/gtest-1.7.0/src/gtest-filepath.cc @@ -29,6 +29,7 @@ // // Authors: keith.ray@gmail.com (Keith Ray) +#include "gtest/gtest-message.h" #include "gtest/internal/gtest-filepath.h" #include "gtest/internal/gtest-port.h" @@ -39,8 +40,8 @@ #elif GTEST_OS_WINDOWS # include <direct.h> # include <io.h> -#elif GTEST_OS_SYMBIAN || GTEST_OS_NACL -// Symbian OpenC and NaCl have PATH_MAX in sys/syslimits.h +#elif GTEST_OS_SYMBIAN +// Symbian OpenC has PATH_MAX in sys/syslimits.h # include <sys/syslimits.h> #else # include <limits.h> @@ -116,9 +117,10 @@ FilePath FilePath::GetCurrentDir() { // FilePath("dir/file"). If a case-insensitive extension is not // found, returns a copy of the original FilePath. FilePath FilePath::RemoveExtension(const char* extension) const { - String dot_extension(String::Format(".%s", extension)); - if (pathname_.EndsWithCaseInsensitive(dot_extension.c_str())) { - return FilePath(String(pathname_.c_str(), pathname_.length() - 4)); + const std::string dot_extension = std::string(".") + extension; + if (String::EndsWithCaseInsensitive(pathname_, dot_extension)) { + return FilePath(pathname_.substr( + 0, pathname_.length() - dot_extension.length())); } return *this; } @@ -147,7 +149,7 @@ const char* FilePath::FindLastPathSeparator() const { // On Windows platform, '\' is the path separator, otherwise it is '/'. FilePath FilePath::RemoveDirectoryName() const { const char* const last_sep = FindLastPathSeparator(); - return last_sep ? FilePath(String(last_sep + 1)) : *this; + return last_sep ? FilePath(last_sep + 1) : *this; } // RemoveFileName returns the directory path with the filename removed. @@ -158,9 +160,9 @@ FilePath FilePath::RemoveDirectoryName() const { // On Windows platform, '\' is the path separator, otherwise it is '/'. FilePath FilePath::RemoveFileName() const { const char* const last_sep = FindLastPathSeparator(); - String dir; + std::string dir; if (last_sep) { - dir = String(c_str(), last_sep + 1 - c_str()); + dir = std::string(c_str(), last_sep + 1 - c_str()); } else { dir = kCurrentDirectoryString; } @@ -177,11 +179,12 @@ FilePath FilePath::MakeFileName(const FilePath& directory, const FilePath& base_name, int number, const char* extension) { - String file; + std::string file; if (number == 0) { - file = String::Format("%s.%s", base_name.c_str(), extension); + file = base_name.string() + "." + extension; } else { - file = String::Format("%s_%d.%s", base_name.c_str(), number, extension); + file = base_name.string() + "_" + StreamableToString(number) + + "." + extension; } return ConcatPaths(directory, FilePath(file)); } @@ -193,8 +196,7 @@ FilePath FilePath::ConcatPaths(const FilePath& directory, if (directory.IsEmpty()) return relative_path; const FilePath dir(directory.RemoveTrailingPathSeparator()); - return FilePath(String::Format("%s%c%s", dir.c_str(), kPathSeparator, - relative_path.c_str())); + return FilePath(dir.string() + kPathSeparator + relative_path.string()); } // Returns true if pathname describes something findable in the file-system, @@ -338,7 +340,7 @@ bool FilePath::CreateFolder() const { // On Windows platform, uses \ as the separator, other platforms use /. FilePath FilePath::RemoveTrailingPathSeparator() const { return IsDirectory() - ? FilePath(String(pathname_.c_str(), pathname_.length() - 1)) + ? FilePath(pathname_.substr(0, pathname_.length() - 1)) : *this; } diff --git a/resources/3rdparty/gtest-1.6.0/src/gtest-internal-inl.h b/resources/3rdparty/gtest-1.7.0/src/gtest-internal-inl.h similarity index 83% rename from resources/3rdparty/gtest-1.6.0/src/gtest-internal-inl.h rename to resources/3rdparty/gtest-1.7.0/src/gtest-internal-inl.h index 65a2101a4..35df303cc 100644 --- a/resources/3rdparty/gtest-1.6.0/src/gtest-internal-inl.h +++ b/resources/3rdparty/gtest-1.7.0/src/gtest-internal-inl.h @@ -58,6 +58,11 @@ #include "gtest/internal/gtest-port.h" +#if GTEST_CAN_STREAM_RESULTS_ +# include <arpa/inet.h> // NOLINT +# include <netdb.h> // NOLINT +#endif + #if GTEST_OS_WINDOWS # include <windows.h> // NOLINT #endif // GTEST_OS_WINDOWS @@ -112,6 +117,12 @@ GTEST_API_ bool ShouldUseColor(bool stdout_is_tty); // Formats the given time in milliseconds as seconds. GTEST_API_ std::string FormatTimeInMillisAsSeconds(TimeInMillis ms); +// Converts the given time in milliseconds to a date string in the ISO 8601 +// format, without the timezone information. N.B.: due to the use the +// non-reentrant localtime() function, this function is not thread safe. Do +// not use it in any code that can be called from multiple threads. +GTEST_API_ std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms); + // Parses a string for an Int32 flag, in the form of "--flag=value". // // On success, stores the value of the flag in *value, and returns @@ -190,37 +201,35 @@ class GTestFlagSaver { GTEST_FLAG(stream_result_to) = stream_result_to_; GTEST_FLAG(throw_on_failure) = throw_on_failure_; } + private: // Fields for saving the original values of flags. bool also_run_disabled_tests_; bool break_on_failure_; bool catch_exceptions_; - String color_; - String death_test_style_; + std::string color_; + std::string death_test_style_; bool death_test_use_fork_; - String filter_; - String internal_run_death_test_; + std::string filter_; + std::string internal_run_death_test_; bool list_tests_; - String output_; + std::string output_; bool print_time_; - bool pretty_; internal::Int32 random_seed_; internal::Int32 repeat_; bool shuffle_; internal::Int32 stack_trace_depth_; - String stream_result_to_; + std::string stream_result_to_; bool throw_on_failure_; } GTEST_ATTRIBUTE_UNUSED_; // Converts a Unicode code point to a narrow string in UTF-8 encoding. // code_point parameter is of type UInt32 because wchar_t may not be // wide enough to contain a code point. -// The output buffer str must containt at least 32 characters. -// The function returns the address of the output buffer. // If the code_point is not a valid Unicode code point -// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be output -// as '(Invalid Unicode 0xXXXXXXXX)'. -GTEST_API_ char* CodePointToUtf8(UInt32 code_point, char* str); +// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be converted +// to "(Invalid Unicode 0xXXXXXXXX)". +GTEST_API_ std::string CodePointToUtf8(UInt32 code_point); // Converts a wide string to a narrow string in UTF-8 encoding. // The wide string is assumed to have the following encoding: @@ -235,7 +244,7 @@ GTEST_API_ char* CodePointToUtf8(UInt32 code_point, char* str); // as '(Invalid Unicode 0xXXXXXXXX)'. If the string is in UTF16 encoding // and contains invalid UTF-16 surrogate pairs, values in those pairs // will be encoded as individual Unicode characters from Basic Normal Plane. -GTEST_API_ String WideStringToUtf8(const wchar_t* str, int num_chars); +GTEST_API_ std::string WideStringToUtf8(const wchar_t* str, int num_chars); // Reads the GTEST_SHARD_STATUS_FILE environment variable, and creates the file // if the variable is present. If a file already exists at this location, this @@ -339,16 +348,15 @@ class TestPropertyKeyIs { // Constructor. // // TestPropertyKeyIs has NO default constructor. - explicit TestPropertyKeyIs(const char* key) - : key_(key) {} + explicit TestPropertyKeyIs(const std::string& key) : key_(key) {} // Returns true iff the test name of test property matches on key_. bool operator()(const TestProperty& test_property) const { - return String(test_property.key()).Compare(key_) == 0; + return test_property.key() == key_; } private: - String key_; + std::string key_; }; // Class UnitTestOptions. @@ -366,12 +374,12 @@ class GTEST_API_ UnitTestOptions { // Functions for processing the gtest_output flag. // Returns the output format, or "" for normal printed output. - static String GetOutputFormat(); + static std::string GetOutputFormat(); // Returns the absolute path of the requested output file, or the // default (test_detail.xml in the original working directory) if // none was explicitly specified. - static String GetAbsolutePathToOutputFile(); + static std::string GetAbsolutePathToOutputFile(); // Functions for processing the gtest_filter flag. @@ -384,8 +392,8 @@ class GTEST_API_ UnitTestOptions { // Returns true iff the user-specified filter matches the test case // name and the test name. - static bool FilterMatchesTest(const String &test_case_name, - const String &test_name); + static bool FilterMatchesTest(const std::string &test_case_name, + const std::string &test_name); #if GTEST_OS_WINDOWS // Function for supporting the gtest_catch_exception flag. @@ -398,7 +406,7 @@ class GTEST_API_ UnitTestOptions { // Returns true if "name" matches the ':' separated list of glob-style // filters in "filter". - static bool MatchesFilter(const String& name, const char* filter); + static bool MatchesFilter(const std::string& name, const char* filter); }; // Returns the current application's name, removing directory path if that @@ -411,13 +419,13 @@ class OsStackTraceGetterInterface { OsStackTraceGetterInterface() {} virtual ~OsStackTraceGetterInterface() {} - // Returns the current OS stack trace as a String. Parameters: + // Returns the current OS stack trace as an std::string. Parameters: // // max_depth - the maximum number of stack frames to be included // in the trace. // skip_count - the number of top frames to be skipped; doesn't count // against max_depth. - virtual String CurrentStackTrace(int max_depth, int skip_count) = 0; + virtual string CurrentStackTrace(int max_depth, int skip_count) = 0; // UponLeavingGTest() should be called immediately before Google Test calls // user code. It saves some information about the current stack that @@ -432,8 +440,11 @@ class OsStackTraceGetterInterface { class OsStackTraceGetter : public OsStackTraceGetterInterface { public: OsStackTraceGetter() : caller_frame_(NULL) {} - virtual String CurrentStackTrace(int max_depth, int skip_count); - virtual void UponLeavingGTest(); + + virtual string CurrentStackTrace(int max_depth, int skip_count) + GTEST_LOCK_EXCLUDED_(mutex_); + + virtual void UponLeavingGTest() GTEST_LOCK_EXCLUDED_(mutex_); // This string is inserted in place of stack frames that are part of // Google Test's implementation. @@ -455,7 +466,7 @@ class OsStackTraceGetter : public OsStackTraceGetterInterface { struct TraceInfo { const char* file; int line; - String message; + std::string message; }; // This is the default global test part result reporter used in UnitTestImpl. @@ -539,15 +550,25 @@ class GTEST_API_ UnitTestImpl { // Gets the number of failed tests. int failed_test_count() const; + // Gets the number of disabled tests that will be reported in the XML report. + int reportable_disabled_test_count() const; + // Gets the number of disabled tests. int disabled_test_count() const; + // Gets the number of tests to be printed in the XML report. + int reportable_test_count() const; + // Gets the number of all tests. int total_test_count() const; // Gets the number of tests that should run. int test_to_run_count() const; + // Gets the time of the test program start, in ms from the start of the + // UNIX epoch. + TimeInMillis start_timestamp() const { return start_timestamp_; } + // Gets the elapsed time, in milliseconds. TimeInMillis elapsed_time() const { return elapsed_time_; } @@ -596,7 +617,7 @@ class GTEST_API_ UnitTestImpl { // getter, and returns it. OsStackTraceGetterInterface* os_stack_trace_getter(); - // Returns the current OS stack trace as a String. + // Returns the current OS stack trace as an std::string. // // The maximum number of stack frames to be included is specified by // the gtest_stack_trace_depth flag. The skip_count parameter @@ -606,7 +627,7 @@ class GTEST_API_ UnitTestImpl { // For example, if Foo() calls Bar(), which in turn calls // CurrentOsStackTraceExceptTop(1), Foo() will be included in the // trace but Bar() and CurrentOsStackTraceExceptTop() won't. - String CurrentOsStackTraceExceptTop(int skip_count); + std::string CurrentOsStackTraceExceptTop(int skip_count) GTEST_NO_INLINE_; // Finds and returns a TestCase with the given name. If one doesn't // exist, creates one and returns it. @@ -696,6 +717,12 @@ class GTEST_API_ UnitTestImpl { ad_hoc_test_result_.Clear(); } + // Adds a TestProperty to the current TestResult object when invoked in a + // context of a test or a test case, or to the global property set. If the + // result already contains a property with the same key, the value will be + // updated. + void RecordProperty(const TestProperty& test_property); + enum ReactionToSharding { HONOR_SHARDING_PROTOCOL, IGNORE_SHARDING_PROTOCOL @@ -880,6 +907,10 @@ class GTEST_API_ UnitTestImpl { // Our random number generator. internal::Random random_; + // The time of the test program start, in ms from the start of the + // UNIX epoch. + TimeInMillis start_timestamp_; + // How long the test took to run, in milliseconds. TimeInMillis elapsed_time_; @@ -935,7 +966,7 @@ GTEST_API_ void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv); // Returns the message describing the last system error, regardless of the // platform. -GTEST_API_ String GetLastErrnoDescription(); +GTEST_API_ std::string GetLastErrnoDescription(); # if GTEST_OS_WINDOWS // Provides leak-safe Windows kernel handle ownership. @@ -1018,8 +1049,9 @@ bool ParseNaturalNumber(const ::std::string& str, Integer* number) { class TestResultAccessor { public: static void RecordProperty(TestResult* test_result, + const std::string& xml_element, const TestProperty& property) { - test_result->RecordProperty(property); + test_result->RecordProperty(xml_element, property); } static void ClearTestPartResults(TestResult* test_result) { @@ -1032,6 +1064,154 @@ class TestResultAccessor { } }; +#if GTEST_CAN_STREAM_RESULTS_ + +// Streams test results to the given port on the given host machine. +class StreamingListener : public EmptyTestEventListener { + public: + // Abstract base class for writing strings to a socket. + class AbstractSocketWriter { + public: + virtual ~AbstractSocketWriter() {} + + // Sends a string to the socket. + virtual void Send(const string& message) = 0; + + // Closes the socket. + virtual void CloseConnection() {} + + // Sends a string and a newline to the socket. + void SendLn(const string& message) { + Send(message + "\n"); + } + }; + + // Concrete class for actually writing strings to a socket. + class SocketWriter : public AbstractSocketWriter { + public: + SocketWriter(const string& host, const string& port) + : sockfd_(-1), host_name_(host), port_num_(port) { + MakeConnection(); + } + + virtual ~SocketWriter() { + if (sockfd_ != -1) + CloseConnection(); + } + + // Sends a string to the socket. + virtual void Send(const string& message) { + GTEST_CHECK_(sockfd_ != -1) + << "Send() can be called only when there is a connection."; + + const int len = static_cast<int>(message.length()); + if (write(sockfd_, message.c_str(), len) != len) { + GTEST_LOG_(WARNING) + << "stream_result_to: failed to stream to " + << host_name_ << ":" << port_num_; + } + } + + private: + // Creates a client socket and connects to the server. + void MakeConnection(); + + // Closes the socket. + void CloseConnection() { + GTEST_CHECK_(sockfd_ != -1) + << "CloseConnection() can be called only when there is a connection."; + + close(sockfd_); + sockfd_ = -1; + } + + int sockfd_; // socket file descriptor + const string host_name_; + const string port_num_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(SocketWriter); + }; // class SocketWriter + + // Escapes '=', '&', '%', and '\n' characters in str as "%xx". + static string UrlEncode(const char* str); + + StreamingListener(const string& host, const string& port) + : socket_writer_(new SocketWriter(host, port)) { Start(); } + + explicit StreamingListener(AbstractSocketWriter* socket_writer) + : socket_writer_(socket_writer) { Start(); } + + void OnTestProgramStart(const UnitTest& /* unit_test */) { + SendLn("event=TestProgramStart"); + } + + void OnTestProgramEnd(const UnitTest& unit_test) { + // Note that Google Test current only report elapsed time for each + // test iteration, not for the entire test program. + SendLn("event=TestProgramEnd&passed=" + FormatBool(unit_test.Passed())); + + // Notify the streaming server to stop. + socket_writer_->CloseConnection(); + } + + void OnTestIterationStart(const UnitTest& /* unit_test */, int iteration) { + SendLn("event=TestIterationStart&iteration=" + + StreamableToString(iteration)); + } + + void OnTestIterationEnd(const UnitTest& unit_test, int /* iteration */) { + SendLn("event=TestIterationEnd&passed=" + + FormatBool(unit_test.Passed()) + "&elapsed_time=" + + StreamableToString(unit_test.elapsed_time()) + "ms"); + } + + void OnTestCaseStart(const TestCase& test_case) { + SendLn(std::string("event=TestCaseStart&name=") + test_case.name()); + } + + void OnTestCaseEnd(const TestCase& test_case) { + SendLn("event=TestCaseEnd&passed=" + FormatBool(test_case.Passed()) + + "&elapsed_time=" + StreamableToString(test_case.elapsed_time()) + + "ms"); + } + + void OnTestStart(const TestInfo& test_info) { + SendLn(std::string("event=TestStart&name=") + test_info.name()); + } + + void OnTestEnd(const TestInfo& test_info) { + SendLn("event=TestEnd&passed=" + + FormatBool((test_info.result())->Passed()) + + "&elapsed_time=" + + StreamableToString((test_info.result())->elapsed_time()) + "ms"); + } + + void OnTestPartResult(const TestPartResult& test_part_result) { + const char* file_name = test_part_result.file_name(); + if (file_name == NULL) + file_name = ""; + SendLn("event=TestPartResult&file=" + UrlEncode(file_name) + + "&line=" + StreamableToString(test_part_result.line_number()) + + "&message=" + UrlEncode(test_part_result.message())); + } + + private: + // Sends the given message and a newline to the socket. + void SendLn(const string& message) { socket_writer_->SendLn(message); } + + // Called at the start of streaming to notify the receiver what + // protocol we are using. + void Start() { SendLn("gtest_streaming_protocol_version=1.0"); } + + string FormatBool(bool value) { return value ? "1" : "0"; } + + const scoped_ptr<AbstractSocketWriter> socket_writer_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(StreamingListener); +}; // class StreamingListener + +#endif // GTEST_CAN_STREAM_RESULTS_ + } // namespace internal } // namespace testing diff --git a/resources/3rdparty/gtest-1.6.0/src/gtest-port.cc b/resources/3rdparty/gtest-1.7.0/src/gtest-port.cc similarity index 86% rename from resources/3rdparty/gtest-1.6.0/src/gtest-port.cc rename to resources/3rdparty/gtest-1.7.0/src/gtest-port.cc index b860d4812..0c4df5f29 100644 --- a/resources/3rdparty/gtest-1.6.0/src/gtest-port.cc +++ b/resources/3rdparty/gtest-1.7.0/src/gtest-port.cc @@ -51,6 +51,11 @@ # include <mach/vm_map.h> #endif // GTEST_OS_MAC +#if GTEST_OS_QNX +# include <devctl.h> +# include <sys/procfs.h> +#endif // GTEST_OS_QNX + #include "gtest/gtest-spi.h" #include "gtest/gtest-message.h" #include "gtest/internal/gtest-internal.h" @@ -98,6 +103,26 @@ size_t GetThreadCount() { } } +#elif GTEST_OS_QNX + +// Returns the number of threads running in the process, or 0 to indicate that +// we cannot detect it. +size_t GetThreadCount() { + const int fd = open("/proc/self/as", O_RDONLY); + if (fd < 0) { + return 0; + } + procfs_info process_info; + const int status = + devctl(fd, DCMD_PROC_INFO, &process_info, sizeof(process_info), NULL); + close(fd); + if (status == EOK) { + return static_cast<size_t>(process_info.num_threads); + } else { + return 0; + } +} + #else size_t GetThreadCount() { @@ -222,7 +247,7 @@ bool AtomMatchesChar(bool escaped, char pattern_char, char ch) { } // Helper function used by ValidateRegex() to format error messages. -String FormatRegexSyntaxError(const char* regex, int index) { +std::string FormatRegexSyntaxError(const char* regex, int index) { return (Message() << "Syntax error at index " << index << " in simple regular expression \"" << regex << "\": ").GetString(); } @@ -429,15 +454,15 @@ const char kUnknownFile[] = "unknown file"; // Formats a source file path and a line number as they would appear // in an error message from the compiler used to compile this code. GTEST_API_ ::std::string FormatFileLocation(const char* file, int line) { - const char* const file_name = file == NULL ? kUnknownFile : file; + const std::string file_name(file == NULL ? kUnknownFile : file); if (line < 0) { - return String::Format("%s:", file_name).c_str(); + return file_name + ":"; } #ifdef _MSC_VER - return String::Format("%s(%d):", file_name, line).c_str(); + return file_name + "(" + StreamableToString(line) + "):"; #else - return String::Format("%s:%d:", file_name, line).c_str(); + return file_name + ":" + StreamableToString(line) + ":"; #endif // _MSC_VER } @@ -448,12 +473,12 @@ GTEST_API_ ::std::string FormatFileLocation(const char* file, int line) { // to the file location it produces, unlike FormatFileLocation(). GTEST_API_ ::std::string FormatCompilerIndependentFileLocation( const char* file, int line) { - const char* const file_name = file == NULL ? kUnknownFile : file; + const std::string file_name(file == NULL ? kUnknownFile : file); if (line < 0) return file_name; else - return String::Format("%s:%d", file_name, line).c_str(); + return file_name + ":" + StreamableToString(line); } @@ -488,8 +513,7 @@ GTestLog::~GTestLog() { class CapturedStream { public: // The ctor redirects the stream to a temporary file. - CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) { - + explicit CapturedStream(int fd) : fd_(fd), uncaptured_fd_(dup(fd)) { # if GTEST_OS_WINDOWS char temp_dir_path[MAX_PATH + 1] = { '\0' }; // NOLINT char temp_file_path[MAX_PATH + 1] = { '\0' }; // NOLINT @@ -506,10 +530,29 @@ class CapturedStream { << temp_file_path; filename_ = temp_file_path; # else - // There's no guarantee that a test has write access to the - // current directory, so we create the temporary file in the /tmp - // directory instead. + // There's no guarantee that a test has write access to the current + // directory, so we create the temporary file in the /tmp directory + // instead. We use /tmp on most systems, and /sdcard on Android. + // That's because Android doesn't have /tmp. +# if GTEST_OS_LINUX_ANDROID + // Note: Android applications are expected to call the framework's + // Context.getExternalStorageDirectory() method through JNI to get + // the location of the world-writable SD Card directory. However, + // this requires a Context handle, which cannot be retrieved + // globally from native code. Doing so also precludes running the + // code as part of a regular standalone executable, which doesn't + // run in a Dalvik process (e.g. when running it through 'adb shell'). + // + // The location /sdcard is directly accessible from native code + // and is the only location (unofficially) supported by the Android + // team. It's generally a symlink to the real SD Card mount point + // which can be /mnt/sdcard, /mnt/sdcard0, /system/media/sdcard, or + // other OEM-customized locations. Never rely on these, and always + // use /sdcard. + char name_template[] = "/sdcard/gtest_captured_stream.XXXXXX"; +# else char name_template[] = "/tmp/captured_stream.XXXXXX"; +# endif // GTEST_OS_LINUX_ANDROID const int captured_fd = mkstemp(name_template); filename_ = name_template; # endif // GTEST_OS_WINDOWS @@ -522,7 +565,7 @@ class CapturedStream { remove(filename_.c_str()); } - String GetCapturedString() { + std::string GetCapturedString() { if (uncaptured_fd_ != -1) { // Restores the original stream. fflush(NULL); @@ -532,14 +575,14 @@ class CapturedStream { } FILE* const file = posix::FOpen(filename_.c_str(), "r"); - const String content = ReadEntireFile(file); + const std::string content = ReadEntireFile(file); posix::FClose(file); return content; } private: - // Reads the entire content of a file as a String. - static String ReadEntireFile(FILE* file); + // Reads the entire content of a file as an std::string. + static std::string ReadEntireFile(FILE* file); // Returns the size (in bytes) of a file. static size_t GetFileSize(FILE* file); @@ -559,7 +602,7 @@ size_t CapturedStream::GetFileSize(FILE* file) { } // Reads the entire content of a file as a string. -String CapturedStream::ReadEntireFile(FILE* file) { +std::string CapturedStream::ReadEntireFile(FILE* file) { const size_t file_size = GetFileSize(file); char* const buffer = new char[file_size]; @@ -575,7 +618,7 @@ String CapturedStream::ReadEntireFile(FILE* file) { bytes_read += bytes_last_read; } while (bytes_last_read > 0 && bytes_read < file_size); - const String content(buffer, bytes_read); + const std::string content(buffer, bytes_read); delete[] buffer; return content; @@ -598,8 +641,8 @@ void CaptureStream(int fd, const char* stream_name, CapturedStream** stream) { } // Stops capturing the output stream and returns the captured string. -String GetCapturedStream(CapturedStream** captured_stream) { - const String content = (*captured_stream)->GetCapturedString(); +std::string GetCapturedStream(CapturedStream** captured_stream) { + const std::string content = (*captured_stream)->GetCapturedString(); delete *captured_stream; *captured_stream = NULL; @@ -618,21 +661,37 @@ void CaptureStderr() { } // Stops capturing stdout and returns the captured string. -String GetCapturedStdout() { return GetCapturedStream(&g_captured_stdout); } +std::string GetCapturedStdout() { + return GetCapturedStream(&g_captured_stdout); +} // Stops capturing stderr and returns the captured string. -String GetCapturedStderr() { return GetCapturedStream(&g_captured_stderr); } +std::string GetCapturedStderr() { + return GetCapturedStream(&g_captured_stderr); +} #endif // GTEST_HAS_STREAM_REDIRECTION #if GTEST_HAS_DEATH_TEST // A copy of all command line arguments. Set by InitGoogleTest(). -::std::vector<String> g_argvs; +::std::vector<testing::internal::string> g_argvs; -// Returns the command line as a vector of strings. -const ::std::vector<String>& GetArgvs() { return g_argvs; } +static const ::std::vector<testing::internal::string>* g_injected_test_argvs = + NULL; // Owned. +void SetInjectableArgvs(const ::std::vector<testing::internal::string>* argvs) { + if (g_injected_test_argvs != argvs) + delete g_injected_test_argvs; + g_injected_test_argvs = argvs; +} + +const ::std::vector<testing::internal::string>& GetInjectableArgvs() { + if (g_injected_test_argvs != NULL) { + return *g_injected_test_argvs; + } + return g_argvs; +} #endif // GTEST_HAS_DEATH_TEST #if GTEST_OS_WINDOWS_MOBILE @@ -647,8 +706,8 @@ void Abort() { // Returns the name of the environment variable corresponding to the // given flag. For example, FlagToEnvVar("foo") will return // "GTEST_FOO" in the open-source version. -static String FlagToEnvVar(const char* flag) { - const String full_flag = +static std::string FlagToEnvVar(const char* flag) { + const std::string full_flag = (Message() << GTEST_FLAG_PREFIX_ << flag).GetString(); Message env_var; @@ -705,7 +764,7 @@ bool ParseInt32(const Message& src_text, const char* str, Int32* value) { // // The value is considered true iff it's not "0". bool BoolFromGTestEnv(const char* flag, bool default_value) { - const String env_var = FlagToEnvVar(flag); + const std::string env_var = FlagToEnvVar(flag); const char* const string_value = posix::GetEnv(env_var.c_str()); return string_value == NULL ? default_value : strcmp(string_value, "0") != 0; @@ -715,7 +774,7 @@ bool BoolFromGTestEnv(const char* flag, bool default_value) { // variable corresponding to the given flag; if it isn't set or // doesn't represent a valid 32-bit integer, returns default_value. Int32 Int32FromGTestEnv(const char* flag, Int32 default_value) { - const String env_var = FlagToEnvVar(flag); + const std::string env_var = FlagToEnvVar(flag); const char* const string_value = posix::GetEnv(env_var.c_str()); if (string_value == NULL) { // The environment variable is not set. @@ -737,7 +796,7 @@ Int32 Int32FromGTestEnv(const char* flag, Int32 default_value) { // Reads and returns the string environment variable corresponding to // the given flag; if it's not set, returns default_value. const char* StringFromGTestEnv(const char* flag, const char* default_value) { - const String env_var = FlagToEnvVar(flag); + const std::string env_var = FlagToEnvVar(flag); const char* const value = posix::GetEnv(env_var.c_str()); return value == NULL ? default_value : value; } diff --git a/resources/3rdparty/gtest-1.6.0/src/gtest-printers.cc b/resources/3rdparty/gtest-1.7.0/src/gtest-printers.cc similarity index 80% rename from resources/3rdparty/gtest-1.6.0/src/gtest-printers.cc rename to resources/3rdparty/gtest-1.7.0/src/gtest-printers.cc index ed63c7b3b..75fa40810 100644 --- a/resources/3rdparty/gtest-1.6.0/src/gtest-printers.cc +++ b/resources/3rdparty/gtest-1.7.0/src/gtest-printers.cc @@ -55,14 +55,6 @@ namespace { using ::std::ostream; -#if GTEST_OS_WINDOWS_MOBILE // Windows CE does not define _snprintf_s. -# define snprintf _snprintf -#elif _MSC_VER >= 1400 // VC 8.0 and later deprecate snprintf and _snprintf. -# define snprintf _snprintf_s -#elif _MSC_VER -# define snprintf _snprintf -#endif // GTEST_OS_WINDOWS_MOBILE - // Prints a segment of bytes in the given object. void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start, size_t count, ostream* os) { @@ -77,7 +69,7 @@ void PrintByteSegmentInObjectTo(const unsigned char* obj_bytes, size_t start, else *os << '-'; } - snprintf(text, sizeof(text), "%02X", obj_bytes[j]); + GTEST_SNPRINTF_(text, sizeof(text), "%02X", obj_bytes[j]); *os << text; } } @@ -184,16 +176,16 @@ static CharFormat PrintAsCharLiteralTo(Char c, ostream* os) { *os << static_cast<char>(c); return kAsIs; } else { - *os << String::Format("\\x%X", static_cast<UnsignedChar>(c)); + *os << "\\x" + String::FormatHexInt(static_cast<UnsignedChar>(c)); return kHexEscape; } } return kSpecialEscape; } -// Prints a char c as if it's part of a string literal, escaping it when +// Prints a wchar_t c as if it's part of a string literal, escaping it when // necessary; returns how c was formatted. -static CharFormat PrintAsWideStringLiteralTo(wchar_t c, ostream* os) { +static CharFormat PrintAsStringLiteralTo(wchar_t c, ostream* os) { switch (c) { case L'\'': *os << "'"; @@ -208,8 +200,9 @@ static CharFormat PrintAsWideStringLiteralTo(wchar_t c, ostream* os) { // Prints a char c as if it's part of a string literal, escaping it when // necessary; returns how c was formatted. -static CharFormat PrintAsNarrowStringLiteralTo(char c, ostream* os) { - return PrintAsWideStringLiteralTo(static_cast<unsigned char>(c), os); +static CharFormat PrintAsStringLiteralTo(char c, ostream* os) { + return PrintAsStringLiteralTo( + static_cast<wchar_t>(static_cast<unsigned char>(c)), os); } // Prints a wide or narrow character c and its code. '\0' is printed @@ -228,7 +221,7 @@ void PrintCharAndCodeTo(Char c, ostream* os) { // obvious). if (c == 0) return; - *os << " (" << String::Format("%d", c).c_str(); + *os << " (" << static_cast<int>(c); // For more convenience, we print c's code again in hexidecimal, // unless c was already printed in the form '\x##' or the code is in @@ -236,8 +229,7 @@ void PrintCharAndCodeTo(Char c, ostream* os) { if (format == kHexEscape || (1 <= c && c <= 9)) { // Do nothing. } else { - *os << String::Format(", 0x%X", - static_cast<UnsignedChar>(c)).c_str(); + *os << ", 0x" << String::FormatHexInt(static_cast<UnsignedChar>(c)); } *os << ")"; } @@ -255,48 +247,63 @@ void PrintTo(wchar_t wc, ostream* os) { PrintCharAndCodeTo<wchar_t>(wc, os); } -// Prints the given array of characters to the ostream. -// The array starts at *begin, the length is len, it may include '\0' characters -// and may not be null-terminated. -static void PrintCharsAsStringTo(const char* begin, size_t len, ostream* os) { - *os << "\""; +// Prints the given array of characters to the ostream. CharType must be either +// char or wchar_t. +// The array starts at begin, the length is len, it may include '\0' characters +// and may not be NUL-terminated. +template <typename CharType> +static void PrintCharsAsStringTo( + const CharType* begin, size_t len, ostream* os) { + const char* const kQuoteBegin = sizeof(CharType) == 1 ? "\"" : "L\""; + *os << kQuoteBegin; bool is_previous_hex = false; for (size_t index = 0; index < len; ++index) { - const char cur = begin[index]; + const CharType cur = begin[index]; if (is_previous_hex && IsXDigit(cur)) { // Previous character is of '\x..' form and this character can be // interpreted as another hexadecimal digit in its number. Break string to // disambiguate. - *os << "\" \""; + *os << "\" " << kQuoteBegin; } - is_previous_hex = PrintAsNarrowStringLiteralTo(cur, os) == kHexEscape; + is_previous_hex = PrintAsStringLiteralTo(cur, os) == kHexEscape; } *os << "\""; } +// Prints a (const) char/wchar_t array of 'len' elements, starting at address +// 'begin'. CharType must be either char or wchar_t. +template <typename CharType> +static void UniversalPrintCharArray( + const CharType* begin, size_t len, ostream* os) { + // The code + // const char kFoo[] = "foo"; + // generates an array of 4, not 3, elements, with the last one being '\0'. + // + // Therefore when printing a char array, we don't print the last element if + // it's '\0', such that the output matches the string literal as it's + // written in the source code. + if (len > 0 && begin[len - 1] == '\0') { + PrintCharsAsStringTo(begin, len - 1, os); + return; + } + + // If, however, the last element in the array is not '\0', e.g. + // const char kFoo[] = { 'f', 'o', 'o' }; + // we must print the entire array. We also print a message to indicate + // that the array is not NUL-terminated. + PrintCharsAsStringTo(begin, len, os); + *os << " (no terminating NUL)"; +} + // Prints a (const) char array of 'len' elements, starting at address 'begin'. void UniversalPrintArray(const char* begin, size_t len, ostream* os) { - PrintCharsAsStringTo(begin, len, os); + UniversalPrintCharArray(begin, len, os); } -// Prints the given array of wide characters to the ostream. -// The array starts at *begin, the length is len, it may include L'\0' -// characters and may not be null-terminated. -static void PrintWideCharsAsStringTo(const wchar_t* begin, size_t len, - ostream* os) { - *os << "L\""; - bool is_previous_hex = false; - for (size_t index = 0; index < len; ++index) { - const wchar_t cur = begin[index]; - if (is_previous_hex && isascii(cur) && IsXDigit(static_cast<char>(cur))) { - // Previous character is of '\x..' form and this character can be - // interpreted as another hexadecimal digit in its number. Break string to - // disambiguate. - *os << "\" L\""; - } - is_previous_hex = PrintAsWideStringLiteralTo(cur, os) == kHexEscape; - } - *os << "\""; +// Prints a (const) wchar_t array of 'len' elements, starting at address +// 'begin'. +void UniversalPrintArray(const wchar_t* begin, size_t len, ostream* os) { + UniversalPrintCharArray(begin, len, os); } // Prints the given C string to the ostream. @@ -322,7 +329,7 @@ void PrintTo(const wchar_t* s, ostream* os) { *os << "NULL"; } else { *os << ImplicitCast_<const void*>(s) << " pointing to "; - PrintWideCharsAsStringTo(s, wcslen(s), os); + PrintCharsAsStringTo(s, wcslen(s), os); } } #endif // wchar_t is native @@ -341,13 +348,13 @@ void PrintStringTo(const ::std::string& s, ostream* os) { // Prints a ::wstring object. #if GTEST_HAS_GLOBAL_WSTRING void PrintWideStringTo(const ::wstring& s, ostream* os) { - PrintWideCharsAsStringTo(s.data(), s.size(), os); + PrintCharsAsStringTo(s.data(), s.size(), os); } #endif // GTEST_HAS_GLOBAL_WSTRING #if GTEST_HAS_STD_WSTRING void PrintWideStringTo(const ::std::wstring& s, ostream* os) { - PrintWideCharsAsStringTo(s.data(), s.size(), os); + PrintCharsAsStringTo(s.data(), s.size(), os); } #endif // GTEST_HAS_STD_WSTRING diff --git a/resources/3rdparty/gtest-1.6.0/src/gtest-test-part.cc b/resources/3rdparty/gtest-1.7.0/src/gtest-test-part.cc similarity index 95% rename from resources/3rdparty/gtest-1.6.0/src/gtest-test-part.cc rename to resources/3rdparty/gtest-1.7.0/src/gtest-test-part.cc index 5ddc67c1c..c60eef3ab 100644 --- a/resources/3rdparty/gtest-1.6.0/src/gtest-test-part.cc +++ b/resources/3rdparty/gtest-1.7.0/src/gtest-test-part.cc @@ -48,10 +48,10 @@ using internal::GetUnitTestImpl; // Gets the summary of the failure message by omitting the stack trace // in it. -internal::String TestPartResult::ExtractSummary(const char* message) { +std::string TestPartResult::ExtractSummary(const char* message) { const char* const stack_trace = strstr(message, internal::kStackTraceMarker); - return stack_trace == NULL ? internal::String(message) : - internal::String(message, stack_trace - message); + return stack_trace == NULL ? message : + std::string(message, stack_trace); } // Prints a TestPartResult object. diff --git a/resources/3rdparty/gtest-1.6.0/src/gtest-typed-test.cc b/resources/3rdparty/gtest-1.7.0/src/gtest-typed-test.cc similarity index 96% rename from resources/3rdparty/gtest-1.6.0/src/gtest-typed-test.cc rename to resources/3rdparty/gtest-1.7.0/src/gtest-typed-test.cc index a5cc88f92..f0079f407 100644 --- a/resources/3rdparty/gtest-1.6.0/src/gtest-typed-test.cc +++ b/resources/3rdparty/gtest-1.7.0/src/gtest-typed-test.cc @@ -58,10 +58,10 @@ const char* TypedTestCasePState::VerifyRegisteredTestNames( registered_tests = SkipSpaces(registered_tests); Message errors; - ::std::set<String> tests; + ::std::set<std::string> tests; for (const char* names = registered_tests; names != NULL; names = SkipComma(names)) { - const String name = GetPrefixUntilComma(names); + const std::string name = GetPrefixUntilComma(names); if (tests.count(name) != 0) { errors << "Test " << name << " is listed more than once.\n"; continue; @@ -93,7 +93,7 @@ const char* TypedTestCasePState::VerifyRegisteredTestNames( } } - const String& errors_str = errors.GetString(); + const std::string& errors_str = errors.GetString(); if (errors_str != "") { fprintf(stderr, "%s %s", FormatFileLocation(file, line).c_str(), errors_str.c_str()); diff --git a/resources/3rdparty/gtest-1.6.0/src/gtest.cc b/resources/3rdparty/gtest-1.7.0/src/gtest.cc similarity index 84% rename from resources/3rdparty/gtest-1.6.0/src/gtest.cc rename to resources/3rdparty/gtest-1.7.0/src/gtest.cc index 904d9d747..6de53dd01 100644 --- a/resources/3rdparty/gtest-1.6.0/src/gtest.cc +++ b/resources/3rdparty/gtest-1.7.0/src/gtest.cc @@ -39,10 +39,13 @@ #include <stdarg.h> #include <stdio.h> #include <stdlib.h> +#include <time.h> #include <wchar.h> #include <wctype.h> #include <algorithm> +#include <iomanip> +#include <limits> #include <ostream> // NOLINT #include <sstream> #include <vector> @@ -179,6 +182,10 @@ bool g_help_flag = false; } // namespace internal +static const char* GetDefaultFilter() { + return kUniversalFilter; +} + GTEST_DEFINE_bool_( also_run_disabled_tests, internal::BoolFromGTestEnv("also_run_disabled_tests", false), @@ -201,11 +208,11 @@ GTEST_DEFINE_string_( "Whether to use colors in the output. Valid values: yes, no, " "and auto. 'auto' means to use colors if the output is " "being sent to a terminal and the TERM environment variable " - "is set to xterm, xterm-color, xterm-256color, linux or cygwin."); + "is set to a terminal type that supports colors."); GTEST_DEFINE_string_( filter, - internal::StringFromGTestEnv("filter", kUniversalFilter), + internal::StringFromGTestEnv("filter", GetDefaultFilter()), "A colon-separated list of glob (not regex) patterns " "for filtering the tests to run, optionally followed by a " "'-' and a : separated list of negative patterns (tests to " @@ -305,7 +312,7 @@ UInt32 Random::Generate(UInt32 range) { // Test. g_init_gtest_count is set to the number of times // InitGoogleTest() has been called. We don't protect this variable // under a mutex as it is only accessed in the main thread. -int g_init_gtest_count = 0; +GTEST_API_ int g_init_gtest_count = 0; static bool GTestIsInitialized() { return g_init_gtest_count != 0; } // Iterates over a vector of TestCases, keeping a running sum of the @@ -360,10 +367,10 @@ void AssertHelper::operator=(const Message& message) const { } // Mutex for linked pointers. -GTEST_DEFINE_STATIC_MUTEX_(g_linked_ptr_mutex); +GTEST_API_ GTEST_DEFINE_STATIC_MUTEX_(g_linked_ptr_mutex); // Application pathname gotten in InitGoogleTest. -String g_executable_path; +std::string g_executable_path; // Returns the current application's name, removing directory path if that // is present. @@ -382,29 +389,29 @@ FilePath GetCurrentExecutableName() { // Functions for processing the gtest_output flag. // Returns the output format, or "" for normal printed output. -String UnitTestOptions::GetOutputFormat() { +std::string UnitTestOptions::GetOutputFormat() { const char* const gtest_output_flag = GTEST_FLAG(output).c_str(); - if (gtest_output_flag == NULL) return String(""); + if (gtest_output_flag == NULL) return std::string(""); const char* const colon = strchr(gtest_output_flag, ':'); return (colon == NULL) ? - String(gtest_output_flag) : - String(gtest_output_flag, colon - gtest_output_flag); + std::string(gtest_output_flag) : + std::string(gtest_output_flag, colon - gtest_output_flag); } // Returns the name of the requested output file, or the default if none // was explicitly specified. -String UnitTestOptions::GetAbsolutePathToOutputFile() { +std::string UnitTestOptions::GetAbsolutePathToOutputFile() { const char* const gtest_output_flag = GTEST_FLAG(output).c_str(); if (gtest_output_flag == NULL) - return String(""); + return ""; const char* const colon = strchr(gtest_output_flag, ':'); if (colon == NULL) - return String(internal::FilePath::ConcatPaths( - internal::FilePath( - UnitTest::GetInstance()->original_working_dir()), - internal::FilePath(kDefaultOutputFile)).ToString() ); + return internal::FilePath::ConcatPaths( + internal::FilePath( + UnitTest::GetInstance()->original_working_dir()), + internal::FilePath(kDefaultOutputFile)).string(); internal::FilePath output_name(colon + 1); if (!output_name.IsAbsolutePath()) @@ -417,12 +424,12 @@ String UnitTestOptions::GetAbsolutePathToOutputFile() { internal::FilePath(colon + 1)); if (!output_name.IsDirectory()) - return output_name.ToString(); + return output_name.string(); internal::FilePath result(internal::FilePath::GenerateUniqueFileName( output_name, internal::GetCurrentExecutableName(), GetOutputFormat().c_str())); - return result.ToString(); + return result.string(); } // Returns true iff the wildcard pattern matches the string. The @@ -447,7 +454,8 @@ bool UnitTestOptions::PatternMatchesString(const char *pattern, } } -bool UnitTestOptions::MatchesFilter(const String& name, const char* filter) { +bool UnitTestOptions::MatchesFilter( + const std::string& name, const char* filter) { const char *cur_pattern = filter; for (;;) { if (PatternMatchesString(cur_pattern, name.c_str())) { @@ -467,28 +475,24 @@ bool UnitTestOptions::MatchesFilter(const String& name, const char* filter) { } } -// TODO(keithray): move String function implementations to gtest-string.cc. - // Returns true iff the user-specified filter matches the test case // name and the test name. -bool UnitTestOptions::FilterMatchesTest(const String &test_case_name, - const String &test_name) { - const String& full_name = String::Format("%s.%s", - test_case_name.c_str(), - test_name.c_str()); +bool UnitTestOptions::FilterMatchesTest(const std::string &test_case_name, + const std::string &test_name) { + const std::string& full_name = test_case_name + "." + test_name.c_str(); // Split --gtest_filter at '-', if there is one, to separate into // positive filter and negative filter portions const char* const p = GTEST_FLAG(filter).c_str(); const char* const dash = strchr(p, '-'); - String positive; - String negative; + std::string positive; + std::string negative; if (dash == NULL) { positive = GTEST_FLAG(filter).c_str(); // Whole string is a positive filter - negative = String(""); + negative = ""; } else { - positive = String(p, dash - p); // Everything up to the dash - negative = String(dash+1); // Everything after the dash + positive = std::string(p, dash); // Everything up to the dash + negative = std::string(dash + 1); // Everything after the dash if (positive.empty()) { // Treat '-test1' as the same as '*-test1' positive = kUniversalFilter; @@ -608,7 +612,7 @@ AssertionResult HasOneFailure(const char* /* results_expr */, const TestPartResultArray& results, TestPartResult::Type type, const string& substr) { - const String expected(type == TestPartResult::kFatalFailure ? + const std::string expected(type == TestPartResult::kFatalFailure ? "1 fatal failure" : "1 non-fatal failure"); Message msg; @@ -731,11 +735,22 @@ int UnitTestImpl::failed_test_count() const { return SumOverTestCaseList(test_cases_, &TestCase::failed_test_count); } +// Gets the number of disabled tests that will be reported in the XML report. +int UnitTestImpl::reportable_disabled_test_count() const { + return SumOverTestCaseList(test_cases_, + &TestCase::reportable_disabled_test_count); +} + // Gets the number of disabled tests. int UnitTestImpl::disabled_test_count() const { return SumOverTestCaseList(test_cases_, &TestCase::disabled_test_count); } +// Gets the number of tests to be printed in the XML report. +int UnitTestImpl::reportable_test_count() const { + return SumOverTestCaseList(test_cases_, &TestCase::reportable_test_count); +} + // Gets the number of all tests. int UnitTestImpl::total_test_count() const { return SumOverTestCaseList(test_cases_, &TestCase::total_test_count); @@ -746,7 +761,7 @@ int UnitTestImpl::test_to_run_count() const { return SumOverTestCaseList(test_cases_, &TestCase::test_to_run_count); } -// Returns the current OS stack trace as a String. +// Returns the current OS stack trace as an std::string. // // The maximum number of stack frames to be included is specified by // the gtest_stack_trace_depth flag. The skip_count parameter @@ -756,9 +771,9 @@ int UnitTestImpl::test_to_run_count() const { // For example, if Foo() calls Bar(), which in turn calls // CurrentOsStackTraceExceptTop(1), Foo() will be included in the // trace but Bar() and CurrentOsStackTraceExceptTop() won't. -String UnitTestImpl::CurrentOsStackTraceExceptTop(int skip_count) { +std::string UnitTestImpl::CurrentOsStackTraceExceptTop(int skip_count) { (void)skip_count; - return String(""); + return ""; } // Returns the current time in milliseconds. @@ -815,41 +830,7 @@ TimeInMillis GetTimeInMillis() { // Utilities -// class String - -// Returns the input enclosed in double quotes if it's not NULL; -// otherwise returns "(null)". For example, "\"Hello\"" is returned -// for input "Hello". -// -// This is useful for printing a C string in the syntax of a literal. -// -// Known issue: escape sequences are not handled yet. -String String::ShowCStringQuoted(const char* c_str) { - return c_str ? String::Format("\"%s\"", c_str) : String("(null)"); -} - -// Copies at most length characters from str into a newly-allocated -// piece of memory of size length+1. The memory is allocated with new[]. -// A terminating null byte is written to the memory, and a pointer to it -// is returned. If str is NULL, NULL is returned. -static char* CloneString(const char* str, size_t length) { - if (str == NULL) { - return NULL; - } else { - char* const clone = new char[length + 1]; - posix::StrNCpy(clone, str, length); - clone[length] = '\0'; - return clone; - } -} - -// Clones a 0-terminated C string, allocating memory using new. The -// caller is responsible for deleting[] the return value. Returns the -// cloned string, or NULL if the input is NULL. -const char * String::CloneCString(const char* c_str) { - return (c_str == NULL) ? - NULL : CloneString(c_str, strlen(c_str)); -} +// class String. #if GTEST_OS_WINDOWS_MOBILE // Creates a UTF-16 wide string from the given ANSI string, allocating @@ -906,11 +887,6 @@ bool String::CStringEquals(const char * lhs, const char * rhs) { // encoding, and streams the result to the given Message object. static void StreamWideCharsToMessage(const wchar_t* wstr, size_t length, Message* msg) { - // TODO(wan): consider allowing a testing::String object to - // contain '\0'. This will make it behave more like std::string, - // and will allow ToUtf8String() to return the correct encoding - // for '\0' s.t. we can get rid of the conditional here (and in - // several other places). for (size_t i = 0; i != length; ) { // NOLINT if (wstr[i] != L'\0') { *msg << WideStringToUtf8(wstr + i, static_cast<int>(length - i)); @@ -927,6 +903,26 @@ static void StreamWideCharsToMessage(const wchar_t* wstr, size_t length, } // namespace internal +// Constructs an empty Message. +// We allocate the stringstream separately because otherwise each use of +// ASSERT/EXPECT in a procedure adds over 200 bytes to the procedure's +// stack frame leading to huge stack frames in some cases; gcc does not reuse +// the stack space. +Message::Message() : ss_(new ::std::stringstream) { + // By default, we want there to be enough precision when printing + // a double to a Message. + *ss_ << std::setprecision(std::numeric_limits<double>::digits10 + 2); +} + +// These two overloads allow streaming a wide C string to a Message +// using the UTF-8 encoding. +Message& Message::operator <<(const wchar_t* wide_c_str) { + return *this << internal::String::ShowWideCString(wide_c_str); +} +Message& Message::operator <<(wchar_t* wide_c_str) { + return *this << internal::String::ShowWideCString(wide_c_str); +} + #if GTEST_HAS_STD_WSTRING // Converts the given wide string to a narrow string using the UTF-8 // encoding, and streams the result to this Message object. @@ -945,6 +941,12 @@ Message& Message::operator <<(const ::wstring& wstr) { } #endif // GTEST_HAS_GLOBAL_WSTRING +// Gets the text streamed to this object so far as an std::string. +// Each '\0' character in the buffer is replaced with "\\0". +std::string Message::GetString() const { + return internal::StringStreamToString(ss_.get()); +} + // AssertionResult constructors. // Used in EXPECT_TRUE/FALSE(assertion_result). AssertionResult::AssertionResult(const AssertionResult& other) @@ -997,8 +999,8 @@ namespace internal { // be inserted into the message. AssertionResult EqFailure(const char* expected_expression, const char* actual_expression, - const String& expected_value, - const String& actual_value, + const std::string& expected_value, + const std::string& actual_value, bool ignoring_case) { Message msg; msg << "Value of: " << actual_expression; @@ -1018,10 +1020,11 @@ AssertionResult EqFailure(const char* expected_expression, } // Constructs a failure message for Boolean assertions such as EXPECT_TRUE. -String GetBoolAssertionFailureMessage(const AssertionResult& assertion_result, - const char* expression_text, - const char* actual_predicate_value, - const char* expected_predicate_value) { +std::string GetBoolAssertionFailureMessage( + const AssertionResult& assertion_result, + const char* expression_text, + const char* actual_predicate_value, + const char* expected_predicate_value) { const char* actual_message = assertion_result.message(); Message msg; msg << "Value of: " << expression_text @@ -1168,8 +1171,8 @@ AssertionResult CmpHelperSTREQ(const char* expected_expression, return EqFailure(expected_expression, actual_expression, - String::ShowCStringQuoted(expected), - String::ShowCStringQuoted(actual), + PrintToString(expected), + PrintToString(actual), false); } @@ -1184,8 +1187,8 @@ AssertionResult CmpHelperSTRCASEEQ(const char* expected_expression, return EqFailure(expected_expression, actual_expression, - String::ShowCStringQuoted(expected), - String::ShowCStringQuoted(actual), + PrintToString(expected), + PrintToString(actual), true); } @@ -1349,7 +1352,7 @@ AssertionResult HRESULTFailureHelper(const char* expr, // want inserts expanded. const DWORD kFlags = FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS; - const DWORD kBufSize = 4096; // String::Format can't exceed this length. + const DWORD kBufSize = 4096; // Gets the system's human readable message string for this HRESULT. char error_text[kBufSize] = { '\0' }; DWORD message_length = ::FormatMessageA(kFlags, @@ -1359,7 +1362,7 @@ AssertionResult HRESULTFailureHelper(const char* expr, error_text, // output buffer kBufSize, // buf size NULL); // no arguments for inserts - // Trims tailing white space (FormatMessage leaves a trailing cr-lf) + // Trims tailing white space (FormatMessage leaves a trailing CR-LF) for (; message_length && IsSpace(error_text[message_length - 1]); --message_length) { error_text[message_length - 1] = '\0'; @@ -1367,10 +1370,10 @@ AssertionResult HRESULTFailureHelper(const char* expr, # endif // GTEST_OS_WINDOWS_MOBILE - const String error_hex(String::Format("0x%08X ", hr)); + const std::string error_hex("0x" + String::FormatHexInt(hr)); return ::testing::AssertionFailure() << "Expected: " << expr << " " << expected << ".\n" - << " Actual: " << error_hex << error_text << "\n"; + << " Actual: " << error_hex << " " << error_text << "\n"; } } // namespace @@ -1427,12 +1430,15 @@ inline UInt32 ChopLowBits(UInt32* bits, int n) { // Converts a Unicode code point to a narrow string in UTF-8 encoding. // code_point parameter is of type UInt32 because wchar_t may not be // wide enough to contain a code point. -// The output buffer str must containt at least 32 characters. -// The function returns the address of the output buffer. // If the code_point is not a valid Unicode code point -// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be output -// as '(Invalid Unicode 0xXXXXXXXX)'. -char* CodePointToUtf8(UInt32 code_point, char* str) { +// (i.e. outside of Unicode range U+0 to U+10FFFF) it will be converted +// to "(Invalid Unicode 0xXXXXXXXX)". +std::string CodePointToUtf8(UInt32 code_point) { + if (code_point > kMaxCodePoint4) { + return "(Invalid Unicode 0x" + String::FormatHexInt(code_point) + ")"; + } + + char str[5]; // Big enough for the largest valid code point. if (code_point <= kMaxCodePoint1) { str[1] = '\0'; str[0] = static_cast<char>(code_point); // 0xxxxxxx @@ -1445,22 +1451,12 @@ char* CodePointToUtf8(UInt32 code_point, char* str) { str[2] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx str[1] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx str[0] = static_cast<char>(0xE0 | code_point); // 1110xxxx - } else if (code_point <= kMaxCodePoint4) { + } else { // code_point <= kMaxCodePoint4 str[4] = '\0'; str[3] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx str[2] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx str[1] = static_cast<char>(0x80 | ChopLowBits(&code_point, 6)); // 10xxxxxx str[0] = static_cast<char>(0xF0 | code_point); // 11110xxx - } else { - // The longest string String::Format can produce when invoked - // with these parameters is 28 character long (not including - // the terminating nul character). We are asking for 32 character - // buffer just in case. This is also enough for strncpy to - // null-terminate the destination string. - posix::StrNCpy( - str, String::Format("(Invalid Unicode 0x%X)", code_point).c_str(), 32); - str[31] = '\0'; // Makes sure no change in the format to strncpy leaves - // the result unterminated. } return str; } @@ -1501,7 +1497,7 @@ inline UInt32 CreateCodePointFromUtf16SurrogatePair(wchar_t first, // as '(Invalid Unicode 0xXXXXXXXX)'. If the string is in UTF16 encoding // and contains invalid UTF-16 surrogate pairs, values in those pairs // will be encoded as individual Unicode characters from Basic Normal Plane. -String WideStringToUtf8(const wchar_t* str, int num_chars) { +std::string WideStringToUtf8(const wchar_t* str, int num_chars) { if (num_chars == -1) num_chars = static_cast<int>(wcslen(str)); @@ -1519,27 +1515,17 @@ String WideStringToUtf8(const wchar_t* str, int num_chars) { unicode_code_point = static_cast<UInt32>(str[i]); } - char buffer[32]; // CodePointToUtf8 requires a buffer this big. - stream << CodePointToUtf8(unicode_code_point, buffer); + stream << CodePointToUtf8(unicode_code_point); } return StringStreamToString(&stream); } -// Converts a wide C string to a String using the UTF-8 encoding. +// Converts a wide C string to an std::string using the UTF-8 encoding. // NULL will be converted to "(null)". -String String::ShowWideCString(const wchar_t * wide_c_str) { - if (wide_c_str == NULL) return String("(null)"); - - return String(internal::WideStringToUtf8(wide_c_str, -1).c_str()); -} - -// Similar to ShowWideCString(), except that this function encloses -// the converted string in double quotes. -String String::ShowWideCStringQuoted(const wchar_t* wide_c_str) { - if (wide_c_str == NULL) return String("(null)"); +std::string String::ShowWideCString(const wchar_t * wide_c_str) { + if (wide_c_str == NULL) return "(null)"; - return String::Format("L\"%s\"", - String::ShowWideCString(wide_c_str).c_str()); + return internal::WideStringToUtf8(wide_c_str, -1); } // Compares two wide C strings. Returns true iff they have the same @@ -1567,8 +1553,8 @@ AssertionResult CmpHelperSTREQ(const char* expected_expression, return EqFailure(expected_expression, actual_expression, - String::ShowWideCStringQuoted(expected), - String::ShowWideCStringQuoted(actual), + PrintToString(expected), + PrintToString(actual), false); } @@ -1583,8 +1569,8 @@ AssertionResult CmpHelperSTRNE(const char* s1_expression, return AssertionFailure() << "Expected: (" << s1_expression << ") != (" << s2_expression << "), actual: " - << String::ShowWideCStringQuoted(s1) - << " vs " << String::ShowWideCStringQuoted(s2); + << PrintToString(s1) + << " vs " << PrintToString(s2); } // Compares two C strings, ignoring case. Returns true iff they have @@ -1635,135 +1621,69 @@ bool String::CaseInsensitiveWideCStringEquals(const wchar_t* lhs, #endif // OS selector } -// Compares this with another String. -// Returns < 0 if this is less than rhs, 0 if this is equal to rhs, or > 0 -// if this is greater than rhs. -int String::Compare(const String & rhs) const { - const char* const lhs_c_str = c_str(); - const char* const rhs_c_str = rhs.c_str(); - - if (lhs_c_str == NULL) { - return rhs_c_str == NULL ? 0 : -1; // NULL < anything except NULL - } else if (rhs_c_str == NULL) { - return 1; - } - - const size_t shorter_str_len = - length() <= rhs.length() ? length() : rhs.length(); - for (size_t i = 0; i != shorter_str_len; i++) { - if (lhs_c_str[i] < rhs_c_str[i]) { - return -1; - } else if (lhs_c_str[i] > rhs_c_str[i]) { - return 1; - } - } - return (length() < rhs.length()) ? -1 : - (length() > rhs.length()) ? 1 : 0; +// Returns true iff str ends with the given suffix, ignoring case. +// Any string is considered to end with an empty suffix. +bool String::EndsWithCaseInsensitive( + const std::string& str, const std::string& suffix) { + const size_t str_len = str.length(); + const size_t suffix_len = suffix.length(); + return (str_len >= suffix_len) && + CaseInsensitiveCStringEquals(str.c_str() + str_len - suffix_len, + suffix.c_str()); } -// Returns true iff this String ends with the given suffix. *Any* -// String is considered to end with a NULL or empty suffix. -bool String::EndsWith(const char* suffix) const { - if (suffix == NULL || CStringEquals(suffix, "")) return true; - - if (c_str() == NULL) return false; - - const size_t this_len = strlen(c_str()); - const size_t suffix_len = strlen(suffix); - return (this_len >= suffix_len) && - CStringEquals(c_str() + this_len - suffix_len, suffix); +// Formats an int value as "%02d". +std::string String::FormatIntWidth2(int value) { + std::stringstream ss; + ss << std::setfill('0') << std::setw(2) << value; + return ss.str(); } -// Returns true iff this String ends with the given suffix, ignoring case. -// Any String is considered to end with a NULL or empty suffix. -bool String::EndsWithCaseInsensitive(const char* suffix) const { - if (suffix == NULL || CStringEquals(suffix, "")) return true; - - if (c_str() == NULL) return false; - - const size_t this_len = strlen(c_str()); - const size_t suffix_len = strlen(suffix); - return (this_len >= suffix_len) && - CaseInsensitiveCStringEquals(c_str() + this_len - suffix_len, suffix); +// Formats an int value as "%X". +std::string String::FormatHexInt(int value) { + std::stringstream ss; + ss << std::hex << std::uppercase << value; + return ss.str(); } -// Formats a list of arguments to a String, using the same format -// spec string as for printf. -// -// We do not use the StringPrintf class as it is not universally -// available. -// -// The result is limited to 4096 characters (including the tailing 0). -// If 4096 characters are not enough to format the input, or if -// there's an error, "<formatting error or buffer exceeded>" is -// returned. -String String::Format(const char * format, ...) { - va_list args; - va_start(args, format); - - char buffer[4096]; - const int kBufferSize = sizeof(buffer)/sizeof(buffer[0]); - - // MSVC 8 deprecates vsnprintf(), so we want to suppress warning - // 4996 (deprecated function) there. -#ifdef _MSC_VER // We are using MSVC. -# pragma warning(push) // Saves the current warning state. -# pragma warning(disable:4996) // Temporarily disables warning 4996. - - const int size = vsnprintf(buffer, kBufferSize, format, args); - -# pragma warning(pop) // Restores the warning state. -#else // We are not using MSVC. - const int size = vsnprintf(buffer, kBufferSize, format, args); -#endif // _MSC_VER - va_end(args); - - // vsnprintf()'s behavior is not portable. When the buffer is not - // big enough, it returns a negative value in MSVC, and returns the - // needed buffer size on Linux. When there is an output error, it - // always returns a negative value. For simplicity, we lump the two - // error cases together. - if (size < 0 || size >= kBufferSize) { - return String("<formatting error or buffer exceeded>"); - } else { - return String(buffer, size); - } +// Formats a byte as "%02X". +std::string String::FormatByte(unsigned char value) { + std::stringstream ss; + ss << std::setfill('0') << std::setw(2) << std::hex << std::uppercase + << static_cast<unsigned int>(value); + return ss.str(); } -// Converts the buffer in a stringstream to a String, converting NUL +// Converts the buffer in a stringstream to an std::string, converting NUL // bytes to "\\0" along the way. -String StringStreamToString(::std::stringstream* ss) { +std::string StringStreamToString(::std::stringstream* ss) { const ::std::string& str = ss->str(); const char* const start = str.c_str(); const char* const end = start + str.length(); - // We need to use a helper stringstream to do this transformation - // because String doesn't support push_back(). - ::std::stringstream helper; + std::string result; + result.reserve(2 * (end - start)); for (const char* ch = start; ch != end; ++ch) { if (*ch == '\0') { - helper << "\\0"; // Replaces NUL with "\\0"; + result += "\\0"; // Replaces NUL with "\\0"; } else { - helper.put(*ch); + result += *ch; } } - return String(helper.str().c_str()); + return result; } // Appends the user-supplied message to the Google-Test-generated message. -String AppendUserMessage(const String& gtest_msg, - const Message& user_msg) { +std::string AppendUserMessage(const std::string& gtest_msg, + const Message& user_msg) { // Appends the user message if it's non-empty. - const String user_msg_string = user_msg.GetString(); + const std::string user_msg_string = user_msg.GetString(); if (user_msg_string.empty()) { return gtest_msg; } - Message msg; - msg << gtest_msg << "\n" << user_msg_string; - - return msg.GetString(); + return gtest_msg + "\n" + user_msg_string; } } // namespace internal @@ -1811,8 +1731,9 @@ void TestResult::AddTestPartResult(const TestPartResult& test_part_result) { // Adds a test property to the list. If a property with the same key as the // supplied property is already represented, the value of this test_property // replaces the old value for that key. -void TestResult::RecordProperty(const TestProperty& test_property) { - if (!ValidateTestProperty(test_property)) { +void TestResult::RecordProperty(const std::string& xml_element, + const TestProperty& test_property) { + if (!ValidateTestProperty(xml_element, test_property)) { return; } internal::MutexLock lock(&test_properites_mutex_); @@ -1826,21 +1747,94 @@ void TestResult::RecordProperty(const TestProperty& test_property) { property_with_matching_key->SetValue(test_property.value()); } -// Adds a failure if the key is a reserved attribute of Google Test -// testcase tags. Returns true if the property is valid. -bool TestResult::ValidateTestProperty(const TestProperty& test_property) { - internal::String key(test_property.key()); - if (key == "name" || key == "status" || key == "time" || key == "classname") { - ADD_FAILURE() - << "Reserved key used in RecordProperty(): " - << key - << " ('name', 'status', 'time', and 'classname' are reserved by " - << GTEST_NAME_ << ")"; +// The list of reserved attributes used in the <testsuites> element of XML +// output. +static const char* const kReservedTestSuitesAttributes[] = { + "disabled", + "errors", + "failures", + "name", + "random_seed", + "tests", + "time", + "timestamp" +}; + +// The list of reserved attributes used in the <testsuite> element of XML +// output. +static const char* const kReservedTestSuiteAttributes[] = { + "disabled", + "errors", + "failures", + "name", + "tests", + "time" +}; + +// The list of reserved attributes used in the <testcase> element of XML output. +static const char* const kReservedTestCaseAttributes[] = { + "classname", + "name", + "status", + "time", + "type_param", + "value_param" +}; + +template <int kSize> +std::vector<std::string> ArrayAsVector(const char* const (&array)[kSize]) { + return std::vector<std::string>(array, array + kSize); +} + +static std::vector<std::string> GetReservedAttributesForElement( + const std::string& xml_element) { + if (xml_element == "testsuites") { + return ArrayAsVector(kReservedTestSuitesAttributes); + } else if (xml_element == "testsuite") { + return ArrayAsVector(kReservedTestSuiteAttributes); + } else if (xml_element == "testcase") { + return ArrayAsVector(kReservedTestCaseAttributes); + } else { + GTEST_CHECK_(false) << "Unrecognized xml_element provided: " << xml_element; + } + // This code is unreachable but some compilers may not realizes that. + return std::vector<std::string>(); +} + +static std::string FormatWordList(const std::vector<std::string>& words) { + Message word_list; + for (size_t i = 0; i < words.size(); ++i) { + if (i > 0 && words.size() > 2) { + word_list << ", "; + } + if (i == words.size() - 1) { + word_list << "and "; + } + word_list << "'" << words[i] << "'"; + } + return word_list.GetString(); +} + +bool ValidateTestPropertyName(const std::string& property_name, + const std::vector<std::string>& reserved_names) { + if (std::find(reserved_names.begin(), reserved_names.end(), property_name) != + reserved_names.end()) { + ADD_FAILURE() << "Reserved key used in RecordProperty(): " << property_name + << " (" << FormatWordList(reserved_names) + << " are reserved by " << GTEST_NAME_ << ")"; return false; } return true; } +// Adds a failure if the key is a reserved attribute of the element named +// xml_element. Returns true if the property is valid. +bool TestResult::ValidateTestProperty(const std::string& xml_element, + const TestProperty& test_property) { + return ValidateTestPropertyName(test_property.key(), + GetReservedAttributesForElement(xml_element)); +} + // Clears the object. void TestResult::Clear() { test_part_results_.clear(); @@ -1916,12 +1910,12 @@ void Test::TearDown() { } // Allows user supplied key value pairs to be recorded for later output. -void Test::RecordProperty(const char* key, const char* value) { - UnitTest::GetInstance()->RecordPropertyForCurrentTest(key, value); +void Test::RecordProperty(const std::string& key, const std::string& value) { + UnitTest::GetInstance()->RecordProperty(key, value); } // Allows user supplied key value pairs to be recorded for later output. -void Test::RecordProperty(const char* key, int value) { +void Test::RecordProperty(const std::string& key, int value) { Message value_message; value_message << value; RecordProperty(key, value_message.GetString().c_str()); @@ -1930,7 +1924,7 @@ void Test::RecordProperty(const char* key, int value) { namespace internal { void ReportFailureInUnknownLocation(TestPartResult::Type result_type, - const String& message) { + const std::string& message) { // This function is a friend of UnitTest and as such has access to // AddTestPartResult. UnitTest::GetInstance()->AddTestPartResult( @@ -1938,7 +1932,7 @@ void ReportFailureInUnknownLocation(TestPartResult::Type result_type, NULL, // No info about the source file where the exception occurred. -1, // We have no info on which line caused the exception. message, - String()); // No stack trace, either. + ""); // No stack trace, either. } } // namespace internal @@ -2015,22 +2009,24 @@ bool Test::HasSameFixtureClass() { // function returns its result via an output parameter pointer because VC++ // prohibits creation of objects with destructors on stack in functions // using __try (see error C2712). -static internal::String* FormatSehExceptionMessage(DWORD exception_code, - const char* location) { +static std::string* FormatSehExceptionMessage(DWORD exception_code, + const char* location) { Message message; message << "SEH exception with code 0x" << std::setbase(16) << exception_code << std::setbase(10) << " thrown in " << location << "."; - return new internal::String(message.GetString()); + return new std::string(message.GetString()); } #endif // GTEST_HAS_SEH +namespace internal { + #if GTEST_HAS_EXCEPTIONS // Adds an "exception thrown" fatal failure to the current test. -static internal::String FormatCxxExceptionMessage(const char* description, - const char* location) { +static std::string FormatCxxExceptionMessage(const char* description, + const char* location) { Message message; if (description != NULL) { message << "C++ exception with description \"" << description << "\""; @@ -2042,23 +2038,15 @@ static internal::String FormatCxxExceptionMessage(const char* description, return message.GetString(); } -static internal::String PrintTestPartResultToString( +static std::string PrintTestPartResultToString( const TestPartResult& test_part_result); -// A failed Google Test assertion will throw an exception of this type when -// GTEST_FLAG(throw_on_failure) is true (if exceptions are enabled). We -// derive it from std::runtime_error, which is for errors presumably -// detectable only at run time. Since std::runtime_error inherits from -// std::exception, many testing frameworks know how to extract and print the -// message inside it. -class GoogleTestFailureException : public ::std::runtime_error { - public: - explicit GoogleTestFailureException(const TestPartResult& failure) - : ::std::runtime_error(PrintTestPartResultToString(failure).c_str()) {} -}; +GoogleTestFailureException::GoogleTestFailureException( + const TestPartResult& failure) + : ::std::runtime_error(PrintTestPartResultToString(failure).c_str()) {} + #endif // GTEST_HAS_EXCEPTIONS -namespace internal { // We put these helper functions in the internal namespace as IBM's xlC // compiler rejects the code if they were declared static. @@ -2078,7 +2066,7 @@ Result HandleSehExceptionsInMethodIfSupported( // We create the exception message on the heap because VC++ prohibits // creation of objects with destructors on stack in functions using __try // (see error C2712). - internal::String* exception_message = FormatSehExceptionMessage( + std::string* exception_message = FormatSehExceptionMessage( GetExceptionCode(), location); internal::ReportFailureInUnknownLocation(TestPartResult::kFatalFailure, *exception_message); @@ -2124,9 +2112,10 @@ Result HandleExceptionsInMethodIfSupported( #if GTEST_HAS_EXCEPTIONS try { return HandleSehExceptionsInMethodIfSupported(object, method, location); - } catch (const GoogleTestFailureException&) { // NOLINT - // This exception doesn't originate in code under test. It makes no - // sense to report it as a test failure. + } catch (const internal::GoogleTestFailureException&) { // NOLINT + // This exception type can only be thrown by a failed Google + // Test assertion with the intention of letting another testing + // framework catch it. Therefore we just re-throw it. throw; } catch (const std::exception& e) { // NOLINT internal::ReportFailureInUnknownLocation( @@ -2185,10 +2174,8 @@ bool Test::HasNonfatalFailure() { // Constructs a TestInfo object. It assumes ownership of the test factory // object. -// TODO(vladl@google.com): Make a_test_case_name and a_name const string&'s -// to signify they cannot be NULLs. -TestInfo::TestInfo(const char* a_test_case_name, - const char* a_name, +TestInfo::TestInfo(const std::string& a_test_case_name, + const std::string& a_name, const char* a_type_param, const char* a_value_param, internal::TypeId fixture_class_id, @@ -2227,7 +2214,8 @@ namespace internal { // The newly created TestInfo instance will assume // ownership of the factory object. TestInfo* MakeAndRegisterTestInfo( - const char* test_case_name, const char* name, + const char* test_case_name, + const char* name, const char* type_param, const char* value_param, TypeId fixture_class_id, @@ -2282,11 +2270,11 @@ class TestNameIs { // Returns true iff the test name of test_info matches name_. bool operator()(const TestInfo * test_info) const { - return test_info && internal::String(test_info->name()).Compare(name_) == 0; + return test_info && test_info->name() == name_; } private: - internal::String name_; + std::string name_; }; } // namespace @@ -2365,10 +2353,21 @@ int TestCase::failed_test_count() const { return CountIf(test_info_list_, TestFailed); } +// Gets the number of disabled tests that will be reported in the XML report. +int TestCase::reportable_disabled_test_count() const { + return CountIf(test_info_list_, TestReportableDisabled); +} + +// Gets the number of disabled tests in this test case. int TestCase::disabled_test_count() const { return CountIf(test_info_list_, TestDisabled); } +// Gets the number of tests to be printed in the XML report. +int TestCase::reportable_test_count() const { + return CountIf(test_info_list_, TestReportable); +} + // Get the number of tests in this test case that should run. int TestCase::test_to_run_count() const { return CountIf(test_info_list_, ShouldRunTest); @@ -2456,6 +2455,7 @@ void TestCase::Run() { // Clears the results of all tests in this test case. void TestCase::ClearResult() { + ad_hoc_test_result_.Clear(); ForEach(test_info_list_, TestInfo::ClearTestResult); } @@ -2476,20 +2476,20 @@ void TestCase::UnshuffleTests() { // // FormatCountableNoun(1, "formula", "formuli") returns "1 formula". // FormatCountableNoun(5, "book", "books") returns "5 books". -static internal::String FormatCountableNoun(int count, - const char * singular_form, - const char * plural_form) { - return internal::String::Format("%d %s", count, - count == 1 ? singular_form : plural_form); +static std::string FormatCountableNoun(int count, + const char * singular_form, + const char * plural_form) { + return internal::StreamableToString(count) + " " + + (count == 1 ? singular_form : plural_form); } // Formats the count of tests. -static internal::String FormatTestCount(int test_count) { +static std::string FormatTestCount(int test_count) { return FormatCountableNoun(test_count, "test", "tests"); } // Formats the count of test cases. -static internal::String FormatTestCaseCount(int test_case_count) { +static std::string FormatTestCaseCount(int test_case_count) { return FormatCountableNoun(test_case_count, "test case", "test cases"); } @@ -2514,8 +2514,10 @@ static const char * TestPartResultTypeToString(TestPartResult::Type type) { } } -// Prints a TestPartResult to a String. -static internal::String PrintTestPartResultToString( +namespace internal { + +// Prints a TestPartResult to an std::string. +static std::string PrintTestPartResultToString( const TestPartResult& test_part_result) { return (Message() << internal::FormatFileLocation(test_part_result.file_name(), @@ -2526,7 +2528,7 @@ static internal::String PrintTestPartResultToString( // Prints a TestPartResult. static void PrintTestPartResult(const TestPartResult& test_part_result) { - const internal::String& result = + const std::string& result = PrintTestPartResultToString(test_part_result); printf("%s\n", result.c_str()); fflush(stdout); @@ -2545,8 +2547,6 @@ static void PrintTestPartResult(const TestPartResult& test_part_result) { // class PrettyUnitTestResultPrinter -namespace internal { - enum GTestColor { COLOR_DEFAULT, COLOR_RED, @@ -2598,6 +2598,7 @@ bool ShouldUseColor(bool stdout_is_tty) { String::CStringEquals(term, "xterm-color") || String::CStringEquals(term, "xterm-256color") || String::CStringEquals(term, "screen") || + String::CStringEquals(term, "screen-256color") || String::CStringEquals(term, "linux") || String::CStringEquals(term, "cygwin"); return stdout_is_tty && term_supports_color; @@ -2621,7 +2622,7 @@ void ColoredPrintf(GTestColor color, const char* fmt, ...) { va_list args; va_start(args, fmt); -#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN || GTEST_OS_ZOS +#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_SYMBIAN || GTEST_OS_ZOS || GTEST_OS_IOS const bool use_color = false; #else static const bool in_color_mode = @@ -2663,6 +2664,11 @@ void ColoredPrintf(GTestColor color, const char* fmt, ...) { va_end(args); } +// Text printed in Google Test's text output and --gunit_list_tests +// output to label the type parameter and value parameter for a test. +static const char kTypeParamLabel[] = "TypeParam"; +static const char kValueParamLabel[] = "GetParam()"; + void PrintFullTestCommentIfPresent(const TestInfo& test_info) { const char* const type_param = test_info.type_param(); const char* const value_param = test_info.value_param(); @@ -2670,12 +2676,12 @@ void PrintFullTestCommentIfPresent(const TestInfo& test_info) { if (type_param != NULL || value_param != NULL) { printf(", where "); if (type_param != NULL) { - printf("TypeParam = %s", type_param); + printf("%s = %s", kTypeParamLabel, type_param); if (value_param != NULL) printf(" and "); } if (value_param != NULL) { - printf("GetParam() = %s", value_param); + printf("%s = %s", kValueParamLabel, value_param); } } } @@ -2707,8 +2713,6 @@ class PrettyUnitTestResultPrinter : public TestEventListener { private: static void PrintFailedTests(const UnitTest& unit_test); - - internal::String test_case_name_; }; // Fired before each iteration of tests starts. @@ -2721,7 +2725,7 @@ void PrettyUnitTestResultPrinter::OnTestIterationStart( // Prints the filter if it's not *. This reminds the user that some // tests may be skipped. - if (!internal::String::CStringEquals(filter, kUniversalFilter)) { + if (!String::CStringEquals(filter, kUniversalFilter)) { ColoredPrintf(COLOR_YELLOW, "Note: %s filter = %s\n", GTEST_NAME_, filter); } @@ -2755,22 +2759,21 @@ void PrettyUnitTestResultPrinter::OnEnvironmentsSetUpStart( } void PrettyUnitTestResultPrinter::OnTestCaseStart(const TestCase& test_case) { - test_case_name_ = test_case.name(); - const internal::String counts = + const std::string counts = FormatCountableNoun(test_case.test_to_run_count(), "test", "tests"); ColoredPrintf(COLOR_GREEN, "[----------] "); - printf("%s from %s", counts.c_str(), test_case_name_.c_str()); + printf("%s from %s", counts.c_str(), test_case.name()); if (test_case.type_param() == NULL) { printf("\n"); } else { - printf(", where TypeParam = %s\n", test_case.type_param()); + printf(", where %s = %s\n", kTypeParamLabel, test_case.type_param()); } fflush(stdout); } void PrettyUnitTestResultPrinter::OnTestStart(const TestInfo& test_info) { ColoredPrintf(COLOR_GREEN, "[ RUN ] "); - PrintTestName(test_case_name_.c_str(), test_info.name()); + PrintTestName(test_info.test_case_name(), test_info.name()); printf("\n"); fflush(stdout); } @@ -2793,7 +2796,7 @@ void PrettyUnitTestResultPrinter::OnTestEnd(const TestInfo& test_info) { } else { ColoredPrintf(COLOR_RED, "[ FAILED ] "); } - PrintTestName(test_case_name_.c_str(), test_info.name()); + PrintTestName(test_info.test_case_name(), test_info.name()); if (test_info.result()->Failed()) PrintFullTestCommentIfPresent(test_info); @@ -2809,12 +2812,11 @@ void PrettyUnitTestResultPrinter::OnTestEnd(const TestInfo& test_info) { void PrettyUnitTestResultPrinter::OnTestCaseEnd(const TestCase& test_case) { if (!GTEST_FLAG(print_time)) return; - test_case_name_ = test_case.name(); - const internal::String counts = + const std::string counts = FormatCountableNoun(test_case.test_to_run_count(), "test", "tests"); ColoredPrintf(COLOR_GREEN, "[----------] "); printf("%s from %s (%s ms total)\n\n", - counts.c_str(), test_case_name_.c_str(), + counts.c_str(), test_case.name(), internal::StreamableToString(test_case.elapsed_time()).c_str()); fflush(stdout); } @@ -2875,7 +2877,7 @@ void PrettyUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, num_failures == 1 ? "TEST" : "TESTS"); } - int num_disabled = unit_test.disabled_test_count(); + int num_disabled = unit_test.reportable_disabled_test_count(); if (num_disabled && !GTEST_FLAG(also_run_disabled_tests)) { if (!num_failures) { printf("\n"); // Add a spacer if no FAILURE banner is displayed. @@ -3029,18 +3031,27 @@ class XmlUnitTestResultPrinter : public EmptyTestEventListener { // is_attribute is true, the text is meant to appear as an attribute // value, and normalizable whitespace is preserved by replacing it // with character references. - static String EscapeXml(const char* str, bool is_attribute); + static std::string EscapeXml(const std::string& str, bool is_attribute); // Returns the given string with all characters invalid in XML removed. - static string RemoveInvalidXmlCharacters(const string& str); + static std::string RemoveInvalidXmlCharacters(const std::string& str); // Convenience wrapper around EscapeXml when str is an attribute value. - static String EscapeXmlAttribute(const char* str) { + static std::string EscapeXmlAttribute(const std::string& str) { return EscapeXml(str, true); } // Convenience wrapper around EscapeXml when str is not an attribute value. - static String EscapeXmlText(const char* str) { return EscapeXml(str, false); } + static std::string EscapeXmlText(const char* str) { + return EscapeXml(str, false); + } + + // Verifies that the given attribute belongs to the given element and + // streams the attribute as XML. + static void OutputXmlAttribute(std::ostream* stream, + const std::string& element_name, + const std::string& name, + const std::string& value); // Streams an XML CDATA section, escaping invalid CDATA sequences as needed. static void OutputXmlCDataSection(::std::ostream* stream, const char* data); @@ -3051,19 +3062,21 @@ class XmlUnitTestResultPrinter : public EmptyTestEventListener { const TestInfo& test_info); // Prints an XML representation of a TestCase object - static void PrintXmlTestCase(FILE* out, const TestCase& test_case); + static void PrintXmlTestCase(::std::ostream* stream, + const TestCase& test_case); // Prints an XML summary of unit_test to output stream out. - static void PrintXmlUnitTest(FILE* out, const UnitTest& unit_test); + static void PrintXmlUnitTest(::std::ostream* stream, + const UnitTest& unit_test); // Produces a string representing the test properties in a result as space // delimited XML attributes based on the property key="value" pairs. - // When the String is not empty, it includes a space at the beginning, + // When the std::string is not empty, it includes a space at the beginning, // to delimit this attribute from prior attributes. - static String TestPropertiesAsXmlAttributes(const TestResult& result); + static std::string TestPropertiesAsXmlAttributes(const TestResult& result); // The output file. - const String output_file_; + const std::string output_file_; GTEST_DISALLOW_COPY_AND_ASSIGN_(XmlUnitTestResultPrinter); }; @@ -3105,7 +3118,9 @@ void XmlUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, fflush(stderr); exit(EXIT_FAILURE); } - PrintXmlUnitTest(xmlout, unit_test); + std::stringstream stream; + PrintXmlUnitTest(&stream, unit_test); + fprintf(xmlout, "%s", StringStreamToString(&stream).c_str()); fclose(xmlout); } @@ -3121,42 +3136,43 @@ void XmlUnitTestResultPrinter::OnTestIterationEnd(const UnitTest& unit_test, // most invalid characters can be retained using character references. // TODO(wan): It might be nice to have a minimally invasive, human-readable // escaping scheme for invalid characters, rather than dropping them. -String XmlUnitTestResultPrinter::EscapeXml(const char* str, bool is_attribute) { +std::string XmlUnitTestResultPrinter::EscapeXml( + const std::string& str, bool is_attribute) { Message m; - if (str != NULL) { - for (const char* src = str; *src; ++src) { - switch (*src) { - case '<': - m << "<"; - break; - case '>': - m << ">"; - break; - case '&': - m << "&"; - break; - case '\'': - if (is_attribute) - m << "'"; - else - m << '\''; - break; - case '"': - if (is_attribute) - m << """; + for (size_t i = 0; i < str.size(); ++i) { + const char ch = str[i]; + switch (ch) { + case '<': + m << "<"; + break; + case '>': + m << ">"; + break; + case '&': + m << "&"; + break; + case '\'': + if (is_attribute) + m << "'"; + else + m << '\''; + break; + case '"': + if (is_attribute) + m << """; + else + m << '"'; + break; + default: + if (IsValidXmlCharacter(ch)) { + if (is_attribute && IsNormalizableWhitespace(ch)) + m << "&#x" << String::FormatByte(static_cast<unsigned char>(ch)) + << ";"; else - m << '"'; - break; - default: - if (IsValidXmlCharacter(*src)) { - if (is_attribute && IsNormalizableWhitespace(*src)) - m << String::Format("&#x%02X;", unsigned(*src)); - else - m << *src; - } - break; - } + m << ch; + } + break; } } @@ -3166,10 +3182,11 @@ String XmlUnitTestResultPrinter::EscapeXml(const char* str, bool is_attribute) { // Returns the given string with all characters invalid in XML removed. // Currently invalid characters are dropped from the string. An // alternative is to replace them with certain characters such as . or ?. -string XmlUnitTestResultPrinter::RemoveInvalidXmlCharacters(const string& str) { - string output; +std::string XmlUnitTestResultPrinter::RemoveInvalidXmlCharacters( + const std::string& str) { + std::string output; output.reserve(str.size()); - for (string::const_iterator it = str.begin(); it != str.end(); ++it) + for (std::string::const_iterator it = str.begin(); it != str.end(); ++it) if (IsValidXmlCharacter(*it)) output.push_back(*it); @@ -3199,6 +3216,32 @@ std::string FormatTimeInMillisAsSeconds(TimeInMillis ms) { return ss.str(); } +// Converts the given epoch time in milliseconds to a date string in the ISO +// 8601 format, without the timezone information. +std::string FormatEpochTimeInMillisAsIso8601(TimeInMillis ms) { + // Using non-reentrant version as localtime_r is not portable. + time_t seconds = static_cast<time_t>(ms / 1000); +#ifdef _MSC_VER +# pragma warning(push) // Saves the current warning state. +# pragma warning(disable:4996) // Temporarily disables warning 4996 + // (function or variable may be unsafe). + const struct tm* const time_struct = localtime(&seconds); // NOLINT +# pragma warning(pop) // Restores the warning state again. +#else + const struct tm* const time_struct = localtime(&seconds); // NOLINT +#endif + if (time_struct == NULL) + return ""; // Invalid ms value + + // YYYY-MM-DDThh:mm:ss + return StreamableToString(time_struct->tm_year + 1900) + "-" + + String::FormatIntWidth2(time_struct->tm_mon + 1) + "-" + + String::FormatIntWidth2(time_struct->tm_mday) + "T" + + String::FormatIntWidth2(time_struct->tm_hour) + ":" + + String::FormatIntWidth2(time_struct->tm_min) + ":" + + String::FormatIntWidth2(time_struct->tm_sec); +} + // Streams an XML CDATA section, escaping invalid CDATA sequences as needed. void XmlUnitTestResultPrinter::OutputXmlCDataSection(::std::ostream* stream, const char* data) { @@ -3219,45 +3262,63 @@ void XmlUnitTestResultPrinter::OutputXmlCDataSection(::std::ostream* stream, *stream << "]]>"; } +void XmlUnitTestResultPrinter::OutputXmlAttribute( + std::ostream* stream, + const std::string& element_name, + const std::string& name, + const std::string& value) { + const std::vector<std::string>& allowed_names = + GetReservedAttributesForElement(element_name); + + GTEST_CHECK_(std::find(allowed_names.begin(), allowed_names.end(), name) != + allowed_names.end()) + << "Attribute " << name << " is not allowed for element <" << element_name + << ">."; + + *stream << " " << name << "=\"" << EscapeXmlAttribute(value) << "\""; +} + // Prints an XML representation of a TestInfo object. // TODO(wan): There is also value in printing properties with the plain printer. void XmlUnitTestResultPrinter::OutputXmlTestInfo(::std::ostream* stream, const char* test_case_name, const TestInfo& test_info) { const TestResult& result = *test_info.result(); - *stream << " <testcase name=\"" - << EscapeXmlAttribute(test_info.name()).c_str() << "\""; + const std::string kTestcase = "testcase"; + + *stream << " <testcase"; + OutputXmlAttribute(stream, kTestcase, "name", test_info.name()); if (test_info.value_param() != NULL) { - *stream << " value_param=\"" << EscapeXmlAttribute(test_info.value_param()) - << "\""; + OutputXmlAttribute(stream, kTestcase, "value_param", + test_info.value_param()); } if (test_info.type_param() != NULL) { - *stream << " type_param=\"" << EscapeXmlAttribute(test_info.type_param()) - << "\""; + OutputXmlAttribute(stream, kTestcase, "type_param", test_info.type_param()); } - *stream << " status=\"" - << (test_info.should_run() ? "run" : "notrun") - << "\" time=\"" - << FormatTimeInMillisAsSeconds(result.elapsed_time()) - << "\" classname=\"" << EscapeXmlAttribute(test_case_name).c_str() - << "\"" << TestPropertiesAsXmlAttributes(result).c_str(); + OutputXmlAttribute(stream, kTestcase, "status", + test_info.should_run() ? "run" : "notrun"); + OutputXmlAttribute(stream, kTestcase, "time", + FormatTimeInMillisAsSeconds(result.elapsed_time())); + OutputXmlAttribute(stream, kTestcase, "classname", test_case_name); + *stream << TestPropertiesAsXmlAttributes(result); int failures = 0; for (int i = 0; i < result.total_part_count(); ++i) { const TestPartResult& part = result.GetTestPartResult(i); if (part.failed()) { - if (++failures == 1) + if (++failures == 1) { *stream << ">\n"; - *stream << " <failure message=\"" - << EscapeXmlAttribute(part.summary()).c_str() - << "\" type=\"\">"; + } const string location = internal::FormatCompilerIndependentFileLocation( part.file_name(), part.line_number()); - const string message = location + "\n" + part.message(); - OutputXmlCDataSection(stream, - RemoveInvalidXmlCharacters(message).c_str()); + const string summary = location + "\n" + part.summary(); + *stream << " <failure message=\"" + << EscapeXmlAttribute(summary.c_str()) + << "\" type=\"\">"; + const string detail = location + "\n" + part.message(); + OutputXmlCDataSection(stream, RemoveInvalidXmlCharacters(detail).c_str()); *stream << "</failure>\n"; } } @@ -3269,49 +3330,73 @@ void XmlUnitTestResultPrinter::OutputXmlTestInfo(::std::ostream* stream, } // Prints an XML representation of a TestCase object -void XmlUnitTestResultPrinter::PrintXmlTestCase(FILE* out, +void XmlUnitTestResultPrinter::PrintXmlTestCase(std::ostream* stream, const TestCase& test_case) { - fprintf(out, - " <testsuite name=\"%s\" tests=\"%d\" failures=\"%d\" " - "disabled=\"%d\" ", - EscapeXmlAttribute(test_case.name()).c_str(), - test_case.total_test_count(), - test_case.failed_test_count(), - test_case.disabled_test_count()); - fprintf(out, - "errors=\"0\" time=\"%s\">\n", - FormatTimeInMillisAsSeconds(test_case.elapsed_time()).c_str()); + const std::string kTestsuite = "testsuite"; + *stream << " <" << kTestsuite; + OutputXmlAttribute(stream, kTestsuite, "name", test_case.name()); + OutputXmlAttribute(stream, kTestsuite, "tests", + StreamableToString(test_case.reportable_test_count())); + OutputXmlAttribute(stream, kTestsuite, "failures", + StreamableToString(test_case.failed_test_count())); + OutputXmlAttribute( + stream, kTestsuite, "disabled", + StreamableToString(test_case.reportable_disabled_test_count())); + OutputXmlAttribute(stream, kTestsuite, "errors", "0"); + OutputXmlAttribute(stream, kTestsuite, "time", + FormatTimeInMillisAsSeconds(test_case.elapsed_time())); + *stream << TestPropertiesAsXmlAttributes(test_case.ad_hoc_test_result()) + << ">\n"; + for (int i = 0; i < test_case.total_test_count(); ++i) { - ::std::stringstream stream; - OutputXmlTestInfo(&stream, test_case.name(), *test_case.GetTestInfo(i)); - fprintf(out, "%s", StringStreamToString(&stream).c_str()); + if (test_case.GetTestInfo(i)->is_reportable()) + OutputXmlTestInfo(stream, test_case.name(), *test_case.GetTestInfo(i)); } - fprintf(out, " </testsuite>\n"); + *stream << " </" << kTestsuite << ">\n"; } // Prints an XML summary of unit_test to output stream out. -void XmlUnitTestResultPrinter::PrintXmlUnitTest(FILE* out, +void XmlUnitTestResultPrinter::PrintXmlUnitTest(std::ostream* stream, const UnitTest& unit_test) { - fprintf(out, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); - fprintf(out, - "<testsuites tests=\"%d\" failures=\"%d\" disabled=\"%d\" " - "errors=\"0\" time=\"%s\" ", - unit_test.total_test_count(), - unit_test.failed_test_count(), - unit_test.disabled_test_count(), - FormatTimeInMillisAsSeconds(unit_test.elapsed_time()).c_str()); + const std::string kTestsuites = "testsuites"; + + *stream << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; + *stream << "<" << kTestsuites; + + OutputXmlAttribute(stream, kTestsuites, "tests", + StreamableToString(unit_test.reportable_test_count())); + OutputXmlAttribute(stream, kTestsuites, "failures", + StreamableToString(unit_test.failed_test_count())); + OutputXmlAttribute( + stream, kTestsuites, "disabled", + StreamableToString(unit_test.reportable_disabled_test_count())); + OutputXmlAttribute(stream, kTestsuites, "errors", "0"); + OutputXmlAttribute( + stream, kTestsuites, "timestamp", + FormatEpochTimeInMillisAsIso8601(unit_test.start_timestamp())); + OutputXmlAttribute(stream, kTestsuites, "time", + FormatTimeInMillisAsSeconds(unit_test.elapsed_time())); + if (GTEST_FLAG(shuffle)) { - fprintf(out, "random_seed=\"%d\" ", unit_test.random_seed()); + OutputXmlAttribute(stream, kTestsuites, "random_seed", + StreamableToString(unit_test.random_seed())); + } + + *stream << TestPropertiesAsXmlAttributes(unit_test.ad_hoc_test_result()); + + OutputXmlAttribute(stream, kTestsuites, "name", "AllTests"); + *stream << ">\n"; + + for (int i = 0; i < unit_test.total_test_case_count(); ++i) { + if (unit_test.GetTestCase(i)->reportable_test_count() > 0) + PrintXmlTestCase(stream, *unit_test.GetTestCase(i)); } - fprintf(out, "name=\"AllTests\">\n"); - for (int i = 0; i < unit_test.total_test_case_count(); ++i) - PrintXmlTestCase(out, *unit_test.GetTestCase(i)); - fprintf(out, "</testsuites>\n"); + *stream << "</" << kTestsuites << ">\n"; } // Produces a string representing the test properties in a result as space // delimited XML attributes based on the property key="value" pairs. -String XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes( +std::string XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes( const TestResult& result) { Message attributes; for (int i = 0; i < result.test_property_count(); ++i) { @@ -3326,112 +3411,6 @@ String XmlUnitTestResultPrinter::TestPropertiesAsXmlAttributes( #if GTEST_CAN_STREAM_RESULTS_ -// Streams test results to the given port on the given host machine. -class StreamingListener : public EmptyTestEventListener { - public: - // Escapes '=', '&', '%', and '\n' characters in str as "%xx". - static string UrlEncode(const char* str); - - StreamingListener(const string& host, const string& port) - : sockfd_(-1), host_name_(host), port_num_(port) { - MakeConnection(); - Send("gtest_streaming_protocol_version=1.0\n"); - } - - virtual ~StreamingListener() { - if (sockfd_ != -1) - CloseConnection(); - } - - void OnTestProgramStart(const UnitTest& /* unit_test */) { - Send("event=TestProgramStart\n"); - } - - void OnTestProgramEnd(const UnitTest& unit_test) { - // Note that Google Test current only report elapsed time for each - // test iteration, not for the entire test program. - Send(String::Format("event=TestProgramEnd&passed=%d\n", - unit_test.Passed())); - - // Notify the streaming server to stop. - CloseConnection(); - } - - void OnTestIterationStart(const UnitTest& /* unit_test */, int iteration) { - Send(String::Format("event=TestIterationStart&iteration=%d\n", - iteration)); - } - - void OnTestIterationEnd(const UnitTest& unit_test, int /* iteration */) { - Send(String::Format("event=TestIterationEnd&passed=%d&elapsed_time=%sms\n", - unit_test.Passed(), - StreamableToString(unit_test.elapsed_time()).c_str())); - } - - void OnTestCaseStart(const TestCase& test_case) { - Send(String::Format("event=TestCaseStart&name=%s\n", test_case.name())); - } - - void OnTestCaseEnd(const TestCase& test_case) { - Send(String::Format("event=TestCaseEnd&passed=%d&elapsed_time=%sms\n", - test_case.Passed(), - StreamableToString(test_case.elapsed_time()).c_str())); - } - - void OnTestStart(const TestInfo& test_info) { - Send(String::Format("event=TestStart&name=%s\n", test_info.name())); - } - - void OnTestEnd(const TestInfo& test_info) { - Send(String::Format( - "event=TestEnd&passed=%d&elapsed_time=%sms\n", - (test_info.result())->Passed(), - StreamableToString((test_info.result())->elapsed_time()).c_str())); - } - - void OnTestPartResult(const TestPartResult& test_part_result) { - const char* file_name = test_part_result.file_name(); - if (file_name == NULL) - file_name = ""; - Send(String::Format("event=TestPartResult&file=%s&line=%d&message=", - UrlEncode(file_name).c_str(), - test_part_result.line_number())); - Send(UrlEncode(test_part_result.message()) + "\n"); - } - - private: - // Creates a client socket and connects to the server. - void MakeConnection(); - - // Closes the socket. - void CloseConnection() { - GTEST_CHECK_(sockfd_ != -1) - << "CloseConnection() can be called only when there is a connection."; - - close(sockfd_); - sockfd_ = -1; - } - - // Sends a string to the socket. - void Send(const string& message) { - GTEST_CHECK_(sockfd_ != -1) - << "Send() can be called only when there is a connection."; - - const int len = static_cast<int>(message.length()); - if (write(sockfd_, message.c_str(), len) != len) { - GTEST_LOG_(WARNING) - << "stream_result_to: failed to stream to " - << host_name_ << ":" << port_num_; - } - } - - int sockfd_; // socket file descriptor - const string host_name_; - const string port_num_; - - GTEST_DISALLOW_COPY_AND_ASSIGN_(StreamingListener); -}; // class StreamingListener - // Checks if str contains '=', '&', '%' or '\n' characters. If yes, // replaces them by "%xx" where xx is their hexadecimal value. For // example, replaces "=" with "%3D". This algorithm is O(strlen(str)) @@ -3446,7 +3425,7 @@ string StreamingListener::UrlEncode(const char* str) { case '=': case '&': case '\n': - result.append(String::Format("%%%02x", static_cast<unsigned char>(ch))); + result.append("%" + String::FormatByte(static_cast<unsigned char>(ch))); break; default: result.push_back(ch); @@ -3456,7 +3435,7 @@ string StreamingListener::UrlEncode(const char* str) { return result; } -void StreamingListener::MakeConnection() { +void StreamingListener::SocketWriter::MakeConnection() { GTEST_CHECK_(sockfd_ == -1) << "MakeConnection() can't be called when there is already a connection."; @@ -3504,8 +3483,8 @@ void StreamingListener::MakeConnection() { // Pushes the given source file location and message onto a per-thread // trace stack maintained by Google Test. -// L < UnitTest::mutex_ -ScopedTrace::ScopedTrace(const char* file, int line, const Message& message) { +ScopedTrace::ScopedTrace(const char* file, int line, const Message& message) + GTEST_LOCK_EXCLUDED_(&UnitTest::mutex_) { TraceInfo trace; trace.file = file; trace.line = line; @@ -3515,35 +3494,64 @@ ScopedTrace::ScopedTrace(const char* file, int line, const Message& message) { } // Pops the info pushed by the c'tor. -// L < UnitTest::mutex_ -ScopedTrace::~ScopedTrace() { +ScopedTrace::~ScopedTrace() + GTEST_LOCK_EXCLUDED_(&UnitTest::mutex_) { UnitTest::GetInstance()->PopGTestTrace(); } // class OsStackTraceGetter -// Returns the current OS stack trace as a String. Parameters: +// Returns the current OS stack trace as an std::string. Parameters: // // max_depth - the maximum number of stack frames to be included // in the trace. // skip_count - the number of top frames to be skipped; doesn't count // against max_depth. // -// L < mutex_ -// We use "L < mutex_" to denote that the function may acquire mutex_. -String OsStackTraceGetter::CurrentStackTrace(int, int) { - return String(""); +string OsStackTraceGetter::CurrentStackTrace(int /* max_depth */, + int /* skip_count */) + GTEST_LOCK_EXCLUDED_(mutex_) { + return ""; } -// L < mutex_ -void OsStackTraceGetter::UponLeavingGTest() { +void OsStackTraceGetter::UponLeavingGTest() + GTEST_LOCK_EXCLUDED_(mutex_) { } const char* const OsStackTraceGetter::kElidedFramesMarker = "... " GTEST_NAME_ " internal frames ..."; +// A helper class that creates the premature-exit file in its +// constructor and deletes the file in its destructor. +class ScopedPrematureExitFile { + public: + explicit ScopedPrematureExitFile(const char* premature_exit_filepath) + : premature_exit_filepath_(premature_exit_filepath) { + // If a path to the premature-exit file is specified... + if (premature_exit_filepath != NULL && *premature_exit_filepath != '\0') { + // create the file with a single "0" character in it. I/O + // errors are ignored as there's nothing better we can do and we + // don't want to fail the test because of this. + FILE* pfile = posix::FOpen(premature_exit_filepath, "w"); + fwrite("0", 1, 1, pfile); + fclose(pfile); + } + } + + ~ScopedPrematureExitFile() { + if (premature_exit_filepath_ != NULL && *premature_exit_filepath_ != '\0') { + remove(premature_exit_filepath_); + } + } + + private: + const char* const premature_exit_filepath_; + + GTEST_DISALLOW_COPY_AND_ASSIGN_(ScopedPrematureExitFile); +}; + } // namespace internal // class TestEventListeners @@ -3630,7 +3638,7 @@ void TestEventListeners::SuppressEventForwarding() { // We don't protect this under mutex_ as a user is not supposed to // call this before main() starts, from which point on the return // value will never change. -UnitTest * UnitTest::GetInstance() { +UnitTest* UnitTest::GetInstance() { // When compiled with MSVC 7.1 in optimized mode, destroying the // UnitTest object upon exiting the program messes up the exit code, // causing successful tests to appear failed. We have to use a @@ -3680,17 +3688,33 @@ int UnitTest::successful_test_count() const { // Gets the number of failed tests. int UnitTest::failed_test_count() const { return impl()->failed_test_count(); } +// Gets the number of disabled tests that will be reported in the XML report. +int UnitTest::reportable_disabled_test_count() const { + return impl()->reportable_disabled_test_count(); +} + // Gets the number of disabled tests. int UnitTest::disabled_test_count() const { return impl()->disabled_test_count(); } +// Gets the number of tests to be printed in the XML report. +int UnitTest::reportable_test_count() const { + return impl()->reportable_test_count(); +} + // Gets the number of all tests. int UnitTest::total_test_count() const { return impl()->total_test_count(); } // Gets the number of tests that should run. int UnitTest::test_to_run_count() const { return impl()->test_to_run_count(); } +// Gets the time of the test program start, in ms from the start of the +// UNIX epoch. +internal::TimeInMillis UnitTest::start_timestamp() const { + return impl()->start_timestamp(); +} + // Gets the elapsed time, in milliseconds. internal::TimeInMillis UnitTest::elapsed_time() const { return impl()->elapsed_time(); @@ -3709,6 +3733,12 @@ const TestCase* UnitTest::GetTestCase(int i) const { return impl()->GetTestCase(i); } +// Returns the TestResult containing information on test failures and +// properties logged outside of individual test cases. +const TestResult& UnitTest::ad_hoc_test_result() const { + return *impl()->ad_hoc_test_result(); +} + // Gets the i-th test case among all the test cases. i can range from 0 to // total_test_case_count() - 1. If i is not in that range, returns NULL. TestCase* UnitTest::GetMutableTestCase(int i) { @@ -3744,12 +3774,12 @@ Environment* UnitTest::AddEnvironment(Environment* env) { // assertion macros (e.g. ASSERT_TRUE, EXPECT_EQ, etc) eventually call // this to report their results. The user code should use the // assertion macros instead of calling this directly. -// L < mutex_ -void UnitTest::AddTestPartResult(TestPartResult::Type result_type, - const char* file_name, - int line_number, - const internal::String& message, - const internal::String& os_stack_trace) { +void UnitTest::AddTestPartResult( + TestPartResult::Type result_type, + const char* file_name, + int line_number, + const std::string& message, + const std::string& os_stack_trace) GTEST_LOCK_EXCLUDED_(mutex_) { Message msg; msg << message; @@ -3796,7 +3826,7 @@ void UnitTest::AddTestPartResult(TestPartResult::Type result_type, #endif // GTEST_OS_WINDOWS } else if (GTEST_FLAG(throw_on_failure)) { #if GTEST_HAS_EXCEPTIONS - throw GoogleTestFailureException(result); + throw internal::GoogleTestFailureException(result); #else // We cannot call abort() as it generates a pop-up in debug mode // that cannot be suppressed in VC 7.1 or below. @@ -3806,12 +3836,14 @@ void UnitTest::AddTestPartResult(TestPartResult::Type result_type, } } -// Creates and adds a property to the current TestResult. If a property matching -// the supplied value already exists, updates its value instead. -void UnitTest::RecordPropertyForCurrentTest(const char* key, - const char* value) { - const TestProperty test_property(key, value); - impl_->current_test_result()->RecordProperty(test_property); +// Adds a TestProperty to the current TestResult object when invoked from +// inside a test, to current TestCase's ad_hoc_test_result_ when invoked +// from SetUpTestCase or TearDownTestCase, or to the global property set +// when invoked elsewhere. If the result already contains a property with +// the same key, the value will be updated. +void UnitTest::RecordProperty(const std::string& key, + const std::string& value) { + impl_->RecordProperty(TestProperty(key, value)); } // Runs all tests in this UnitTest object and prints the result. @@ -3820,20 +3852,44 @@ void UnitTest::RecordPropertyForCurrentTest(const char* key, // We don't protect this under mutex_, as we only support calling it // from the main thread. int UnitTest::Run() { + const bool in_death_test_child_process = + internal::GTEST_FLAG(internal_run_death_test).length() > 0; + + // Google Test implements this protocol for catching that a test + // program exits before returning control to Google Test: + // + // 1. Upon start, Google Test creates a file whose absolute path + // is specified by the environment variable + // TEST_PREMATURE_EXIT_FILE. + // 2. When Google Test has finished its work, it deletes the file. + // + // This allows a test runner to set TEST_PREMATURE_EXIT_FILE before + // running a Google-Test-based test program and check the existence + // of the file at the end of the test execution to see if it has + // exited prematurely. + + // If we are in the child process of a death test, don't + // create/delete the premature exit file, as doing so is unnecessary + // and will confuse the parent process. Otherwise, create/delete + // the file upon entering/leaving this function. If the program + // somehow exits before this function has a chance to return, the + // premature-exit file will be left undeleted, causing a test runner + // that understands the premature-exit-file protocol to report the + // test as having failed. + const internal::ScopedPrematureExitFile premature_exit_file( + in_death_test_child_process ? + NULL : internal::posix::GetEnv("TEST_PREMATURE_EXIT_FILE")); + // Captures the value of GTEST_FLAG(catch_exceptions). This value will be // used for the duration of the program. impl()->set_catch_exceptions(GTEST_FLAG(catch_exceptions)); #if GTEST_HAS_SEH - const bool in_death_test_child_process = - internal::GTEST_FLAG(internal_run_death_test).length() > 0; - // Either the user wants Google Test to catch exceptions thrown by the // tests or this is executing in the context of death test child // process. In either case the user does not want to see pop-up dialogs // about crashes - they are expected. if (impl()->catch_exceptions() || in_death_test_child_process) { - # if !GTEST_OS_WINDOWS_MOBILE // SetErrorMode doesn't exist on CE. SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOALIGNMENTFAULTEXCEPT | @@ -3864,7 +3920,6 @@ int UnitTest::Run() { 0x0, // Clear the following flags: _WRITE_ABORT_MSG | _CALL_REPORTFAULT); // pop-up window, core dump. # endif - } #endif // GTEST_HAS_SEH @@ -3882,16 +3937,16 @@ const char* UnitTest::original_working_dir() const { // Returns the TestCase object for the test that's currently running, // or NULL if no test is running. -// L < mutex_ -const TestCase* UnitTest::current_test_case() const { +const TestCase* UnitTest::current_test_case() const + GTEST_LOCK_EXCLUDED_(mutex_) { internal::MutexLock lock(&mutex_); return impl_->current_test_case(); } // Returns the TestInfo object for the test that's currently running, // or NULL if no test is running. -// L < mutex_ -const TestInfo* UnitTest::current_test_info() const { +const TestInfo* UnitTest::current_test_info() const + GTEST_LOCK_EXCLUDED_(mutex_) { internal::MutexLock lock(&mutex_); return impl_->current_test_info(); } @@ -3902,9 +3957,9 @@ int UnitTest::random_seed() const { return impl_->random_seed(); } #if GTEST_HAS_PARAM_TEST // Returns ParameterizedTestCaseRegistry object used to keep track of // value-parameterized tests and instantiate and register them. -// L < mutex_ internal::ParameterizedTestCaseRegistry& - UnitTest::parameterized_test_registry() { + UnitTest::parameterized_test_registry() + GTEST_LOCK_EXCLUDED_(mutex_) { return impl_->parameterized_test_registry(); } #endif // GTEST_HAS_PARAM_TEST @@ -3921,15 +3976,15 @@ UnitTest::~UnitTest() { // Pushes a trace defined by SCOPED_TRACE() on to the per-thread // Google Test trace stack. -// L < mutex_ -void UnitTest::PushGTestTrace(const internal::TraceInfo& trace) { +void UnitTest::PushGTestTrace(const internal::TraceInfo& trace) + GTEST_LOCK_EXCLUDED_(mutex_) { internal::MutexLock lock(&mutex_); impl_->gtest_trace_stack().push_back(trace); } // Pops a trace from the per-thread Google Test trace stack. -// L < mutex_ -void UnitTest::PopGTestTrace() { +void UnitTest::PopGTestTrace() + GTEST_LOCK_EXCLUDED_(mutex_) { internal::MutexLock lock(&mutex_); impl_->gtest_trace_stack().pop_back(); } @@ -3965,9 +4020,9 @@ UnitTestImpl::UnitTestImpl(UnitTest* parent) post_flag_parse_init_performed_(false), random_seed_(0), // Will be overridden by the flag before first use. random_(0), // Will be reseeded before first use. + start_timestamp_(0), elapsed_time_(0), #if GTEST_HAS_DEATH_TEST - internal_run_death_test_flag_(NULL), death_test_factory_(new DefaultDeathTestFactory), #endif // Will be overridden by the flag before first use. @@ -3985,6 +4040,28 @@ UnitTestImpl::~UnitTestImpl() { delete os_stack_trace_getter_; } +// Adds a TestProperty to the current TestResult object when invoked in a +// context of a test, to current test case's ad_hoc_test_result when invoke +// from SetUpTestCase/TearDownTestCase, or to the global property set +// otherwise. If the result already contains a property with the same key, +// the value will be updated. +void UnitTestImpl::RecordProperty(const TestProperty& test_property) { + std::string xml_element; + TestResult* test_result; // TestResult appropriate for property recording. + + if (current_test_info_ != NULL) { + xml_element = "testcase"; + test_result = &(current_test_info_->result_); + } else if (current_test_case_ != NULL) { + xml_element = "testsuite"; + test_result = &(current_test_case_->ad_hoc_test_result_); + } else { + xml_element = "testsuites"; + test_result = &ad_hoc_test_result_; + } + test_result->RecordProperty(xml_element, test_property); +} + #if GTEST_HAS_DEATH_TEST // Disables event forwarding if the control is currently in a death test // subprocess. Must not be called before InitGoogleTest. @@ -3997,7 +4074,7 @@ void UnitTestImpl::SuppressTestEventsIfInSubprocess() { // Initializes event listeners performing XML output as specified by // UnitTestOptions. Must not be called before InitGoogleTest. void UnitTestImpl::ConfigureXmlOutput() { - const String& output_format = UnitTestOptions::GetOutputFormat(); + const std::string& output_format = UnitTestOptions::GetOutputFormat(); if (output_format == "xml") { listeners()->SetDefaultXmlGenerator(new XmlUnitTestResultPrinter( UnitTestOptions::GetAbsolutePathToOutputFile().c_str())); @@ -4009,13 +4086,13 @@ void UnitTestImpl::ConfigureXmlOutput() { } #if GTEST_CAN_STREAM_RESULTS_ -// Initializes event listeners for streaming test results in String form. +// Initializes event listeners for streaming test results in string form. // Must not be called before InitGoogleTest. void UnitTestImpl::ConfigureStreamingOutput() { - const string& target = GTEST_FLAG(stream_result_to); + const std::string& target = GTEST_FLAG(stream_result_to); if (!target.empty()) { const size_t pos = target.find(':'); - if (pos != string::npos) { + if (pos != std::string::npos) { listeners()->Append(new StreamingListener(target.substr(0, pos), target.substr(pos+1))); } else { @@ -4069,7 +4146,7 @@ void UnitTestImpl::PostFlagParsingInit() { class TestCaseNameIs { public: // Constructor. - explicit TestCaseNameIs(const String& name) + explicit TestCaseNameIs(const std::string& name) : name_(name) {} // Returns true iff the name of test_case matches name_. @@ -4078,7 +4155,7 @@ class TestCaseNameIs { } private: - String name_; + std::string name_; }; // Finds and returns a TestCase with the given name. If one doesn't @@ -4110,7 +4187,7 @@ TestCase* UnitTestImpl::GetTestCase(const char* test_case_name, new TestCase(test_case_name, type_param, set_up_tc, tear_down_tc); // Is this a death test case? - if (internal::UnitTestOptions::MatchesFilter(String(test_case_name), + if (internal::UnitTestOptions::MatchesFilter(test_case_name, kDeathTestCaseFilter)) { // Yes. Inserts the test case after the last death test case // defined so far. This only works when the test cases haven't @@ -4196,6 +4273,7 @@ bool UnitTestImpl::RunAllTests() { TestEventListener* repeater = listeners()->repeater(); + start_timestamp_ = GetTimeInMillis(); repeater->OnTestProgramStart(*parent_); // How many times to repeat the tests? We don't want to repeat them @@ -4388,12 +4466,12 @@ int UnitTestImpl::FilterTests(ReactionToSharding shard_tests) { int num_selected_tests = 0; for (size_t i = 0; i < test_cases_.size(); i++) { TestCase* const test_case = test_cases_[i]; - const String &test_case_name = test_case->name(); + const std::string &test_case_name = test_case->name(); test_case->set_should_run(false); for (size_t j = 0; j < test_case->test_info_list().size(); j++) { TestInfo* const test_info = test_case->test_info_list()[j]; - const String test_name(test_info->name()); + const std::string test_name(test_info->name()); // A test is disabled if test case name or test name matches // kDisableTestFilter. const bool is_disabled = @@ -4427,8 +4505,33 @@ int UnitTestImpl::FilterTests(ReactionToSharding shard_tests) { return num_selected_tests; } +// Prints the given C-string on a single line by replacing all '\n' +// characters with string "\\n". If the output takes more than +// max_length characters, only prints the first max_length characters +// and "...". +static void PrintOnOneLine(const char* str, int max_length) { + if (str != NULL) { + for (int i = 0; *str != '\0'; ++str) { + if (i >= max_length) { + printf("..."); + break; + } + if (*str == '\n') { + printf("\\n"); + i += 2; + } else { + printf("%c", *str); + ++i; + } + } + } +} + // Prints the names of the tests matching the user-specified filter flag. void UnitTestImpl::ListTestsMatchingFilter() { + // Print at most this many characters for each type/value parameter. + const int kMaxParamLength = 250; + for (size_t i = 0; i < test_cases_.size(); i++) { const TestCase* const test_case = test_cases_[i]; bool printed_test_case_name = false; @@ -4439,9 +4542,23 @@ void UnitTestImpl::ListTestsMatchingFilter() { if (test_info->matches_filter_) { if (!printed_test_case_name) { printed_test_case_name = true; - printf("%s.\n", test_case->name()); + printf("%s.", test_case->name()); + if (test_case->type_param() != NULL) { + printf(" # %s = ", kTypeParamLabel); + // We print the type parameter on a single line to make + // the output easy to parse by a program. + PrintOnOneLine(test_case->type_param(), kMaxParamLength); + } + printf("\n"); + } + printf(" %s", test_info->name()); + if (test_info->value_param() != NULL) { + printf(" # %s = ", kValueParamLabel); + // We print the value parameter on a single line to make the + // output easy to parse by a program. + PrintOnOneLine(test_info->value_param(), kMaxParamLength); } - printf(" %s\n", test_info->name()); + printf("\n"); } } } @@ -4505,7 +4622,7 @@ void UnitTestImpl::UnshuffleTests() { } } -// Returns the current OS stack trace as a String. +// Returns the current OS stack trace as an std::string. // // The maximum number of stack frames to be included is specified by // the gtest_stack_trace_depth flag. The skip_count parameter @@ -4515,8 +4632,8 @@ void UnitTestImpl::UnshuffleTests() { // For example, if Foo() calls Bar(), which in turn calls // GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in // the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't. -String GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/, - int skip_count) { +std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/, + int skip_count) { // We pass skip_count + 1 to skip this wrapper function in addition // to what the user really wants to skip. return GetUnitTestImpl()->CurrentOsStackTraceExceptTop(skip_count + 1); @@ -4564,7 +4681,7 @@ const char* ParseFlagValue(const char* str, if (str == NULL || flag == NULL) return NULL; // The flag must start with "--" followed by GTEST_FLAG_PREFIX_. - const String flag_str = String::Format("--%s%s", GTEST_FLAG_PREFIX_, flag); + const std::string flag_str = std::string("--") + GTEST_FLAG_PREFIX_ + flag; const size_t flag_len = flag_str.length(); if (strncmp(str, flag_str.c_str(), flag_len) != 0) return NULL; @@ -4629,7 +4746,7 @@ bool ParseInt32Flag(const char* str, const char* flag, Int32* value) { // // On success, stores the value of the flag in *value, and returns // true. On failure, returns false without changing *value. -bool ParseStringFlag(const char* str, const char* flag, String* value) { +bool ParseStringFlag(const char* str, const char* flag, std::string* value) { // Gets the value of the flag as a string. const char* const value_str = ParseFlagValue(str, flag, false); @@ -4681,7 +4798,7 @@ static void PrintColorEncoded(const char* str) { return; } - ColoredPrintf(color, "%s", String(str, p - str).c_str()); + ColoredPrintf(color, "%s", std::string(str, p).c_str()); const char ch = p[1]; str = p + 2; @@ -4771,7 +4888,7 @@ static const char kColorEncodedHelpMessage[] = template <typename CharType> void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) { for (int i = 1; i < *argc; i++) { - const String arg_string = StreamableToString(argv[i]); + const std::string arg_string = StreamableToString(argv[i]); const char* const arg = arg_string.c_str(); using internal::ParseBoolFlag; diff --git a/resources/3rdparty/gtest-1.6.0/fused-src/gtest/gtest_main.cc b/resources/3rdparty/gtest-1.7.0/src/gtest_main.cc similarity index 95% rename from resources/3rdparty/gtest-1.6.0/fused-src/gtest/gtest_main.cc rename to resources/3rdparty/gtest-1.7.0/src/gtest_main.cc index a09bbe0c6..f30282255 100644 --- a/resources/3rdparty/gtest-1.6.0/fused-src/gtest/gtest_main.cc +++ b/resources/3rdparty/gtest-1.7.0/src/gtest_main.cc @@ -27,13 +27,12 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -#include <iostream> +#include <stdio.h> #include "gtest/gtest.h" GTEST_API_ int main(int argc, char **argv) { - std::cout << "Running main() from gtest_main.cc\n"; - + printf("Running main() from gtest_main.cc\n"); testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-death-test_ex_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-death-test_ex_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest-death-test_ex_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-death-test_ex_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-death-test_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-death-test_test.cc similarity index 90% rename from resources/3rdparty/gtest-1.6.0/test/gtest-death-test_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-death-test_test.cc index bcf8e2a34..c2d26df99 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest-death-test_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest-death-test_test.cc @@ -45,13 +45,16 @@ using testing::internal::AlwaysTrue; # else # include <unistd.h> # include <sys/wait.h> // For waitpid. -# include <limits> // For std::numeric_limits. # endif // GTEST_OS_WINDOWS # include <limits.h> # include <signal.h> # include <stdio.h> +# if GTEST_OS_LINUX +# include <sys/time.h> +# endif // GTEST_OS_LINUX + # include "gtest/gtest-spi.h" // Indicates that this translation unit is part of Google Test's @@ -71,8 +74,8 @@ using testing::internal::DeathTestFactory; using testing::internal::FilePath; using testing::internal::GetLastErrnoDescription; using testing::internal::GetUnitTestImpl; +using testing::internal::InDeathTestChild; using testing::internal::ParseNaturalNumber; -using testing::internal::String; namespace testing { namespace internal { @@ -372,6 +375,58 @@ TEST_F(TestForDeathTest, FastDeathTestInChangedDir) { ASSERT_DEATH(_exit(1), ""); } +# if GTEST_OS_LINUX +void SigprofAction(int, siginfo_t*, void*) { /* no op */ } + +// Sets SIGPROF action and ITIMER_PROF timer (interval: 1ms). +void SetSigprofActionAndTimer() { + struct itimerval timer; + timer.it_interval.tv_sec = 0; + timer.it_interval.tv_usec = 1; + timer.it_value = timer.it_interval; + ASSERT_EQ(0, setitimer(ITIMER_PROF, &timer, NULL)); + struct sigaction signal_action; + memset(&signal_action, 0, sizeof(signal_action)); + sigemptyset(&signal_action.sa_mask); + signal_action.sa_sigaction = SigprofAction; + signal_action.sa_flags = SA_RESTART | SA_SIGINFO; + ASSERT_EQ(0, sigaction(SIGPROF, &signal_action, NULL)); +} + +// Disables ITIMER_PROF timer and ignores SIGPROF signal. +void DisableSigprofActionAndTimer(struct sigaction* old_signal_action) { + struct itimerval timer; + timer.it_interval.tv_sec = 0; + timer.it_interval.tv_usec = 0; + timer.it_value = timer.it_interval; + ASSERT_EQ(0, setitimer(ITIMER_PROF, &timer, NULL)); + struct sigaction signal_action; + memset(&signal_action, 0, sizeof(signal_action)); + sigemptyset(&signal_action.sa_mask); + signal_action.sa_handler = SIG_IGN; + ASSERT_EQ(0, sigaction(SIGPROF, &signal_action, old_signal_action)); +} + +// Tests that death tests work when SIGPROF handler and timer are set. +TEST_F(TestForDeathTest, FastSigprofActionSet) { + testing::GTEST_FLAG(death_test_style) = "fast"; + SetSigprofActionAndTimer(); + EXPECT_DEATH(_exit(1), ""); + struct sigaction old_signal_action; + DisableSigprofActionAndTimer(&old_signal_action); + EXPECT_TRUE(old_signal_action.sa_sigaction == SigprofAction); +} + +TEST_F(TestForDeathTest, ThreadSafeSigprofActionSet) { + testing::GTEST_FLAG(death_test_style) = "threadsafe"; + SetSigprofActionAndTimer(); + EXPECT_DEATH(_exit(1), ""); + struct sigaction old_signal_action; + DisableSigprofActionAndTimer(&old_signal_action); + EXPECT_TRUE(old_signal_action.sa_sigaction == SigprofAction); +} +# endif // GTEST_OS_LINUX + // Repeats a representative sample of death tests in the "threadsafe" style: TEST_F(TestForDeathTest, StaticMemberFunctionThreadsafeStyle) { @@ -409,6 +464,8 @@ TEST_F(TestForDeathTest, MixedStyles) { EXPECT_DEATH(_exit(1), ""); } +# if GTEST_HAS_CLONE && GTEST_HAS_PTHREAD + namespace { bool pthread_flag; @@ -419,8 +476,6 @@ void SetPthreadFlag() { } // namespace -# if GTEST_HAS_CLONE && GTEST_HAS_PTHREAD - TEST_F(TestForDeathTest, DoesNotExecuteAtforkHooks) { if (!testing::GTEST_FLAG(death_test_use_fork)) { testing::GTEST_FLAG(death_test_style) = "threadsafe"; @@ -561,8 +616,8 @@ TEST_F(TestForDeathTest, ReturnIsFailure) { "illegal return in test statement."); } -// Tests that EXPECT_DEBUG_DEATH works as expected, -// that is, in debug mode, it: +// Tests that EXPECT_DEBUG_DEATH works as expected, that is, you can stream a +// message to it, and in debug mode it: // 1. Asserts on death. // 2. Has no side effect. // @@ -571,8 +626,8 @@ TEST_F(TestForDeathTest, ReturnIsFailure) { TEST_F(TestForDeathTest, TestExpectDebugDeath) { int sideeffect = 0; - EXPECT_DEBUG_DEATH(DieInDebugElse12(&sideeffect), - "death.*DieInDebugElse12"); + EXPECT_DEBUG_DEATH(DieInDebugElse12(&sideeffect), "death.*DieInDebugElse12") + << "Must accept a streamed message"; # ifdef NDEBUG @@ -587,22 +642,18 @@ TEST_F(TestForDeathTest, TestExpectDebugDeath) { # endif } -// Tests that ASSERT_DEBUG_DEATH works as expected -// In debug mode: -// 1. Asserts on debug death. +// Tests that ASSERT_DEBUG_DEATH works as expected, that is, you can stream a +// message to it, and in debug mode it: +// 1. Asserts on death. // 2. Has no side effect. // -// In opt mode: -// 1. Has side effects and returns the expected value (12). +// And in opt mode, it: +// 1. Has side effects but does not assert. TEST_F(TestForDeathTest, TestAssertDebugDeath) { int sideeffect = 0; - ASSERT_DEBUG_DEATH({ // NOLINT - // Tests that the return value is 12 in opt mode. - EXPECT_EQ(12, DieInDebugElse12(&sideeffect)); - // Tests that the side effect occurred in opt mode. - EXPECT_EQ(12, sideeffect); - }, "death.*DieInDebugElse12"); + ASSERT_DEBUG_DEATH(DieInDebugElse12(&sideeffect), "death.*DieInDebugElse12") + << "Must accept a streamed message"; # ifdef NDEBUG @@ -673,7 +724,7 @@ static void TestExitMacros() { // Of all signals effects on the process exit code, only those of SIGABRT // are documented on Windows. // See http://msdn.microsoft.com/en-us/library/dwwzkt4c(VS.71).aspx. - EXPECT_EXIT(raise(SIGABRT), testing::ExitedWithCode(3), ""); + EXPECT_EXIT(raise(SIGABRT), testing::ExitedWithCode(3), "") << "b_ar"; # else @@ -682,14 +733,14 @@ static void TestExitMacros() { EXPECT_FATAL_FAILURE({ // NOLINT ASSERT_EXIT(_exit(0), testing::KilledBySignal(SIGSEGV), "") - << "This failure is expected, too."; + << "This failure is expected, too."; }, "This failure is expected, too."); # endif // GTEST_OS_WINDOWS EXPECT_NONFATAL_FAILURE({ // NOLINT EXPECT_EXIT(raise(SIGSEGV), testing::ExitedWithCode(0), "") - << "This failure is expected."; + << "This failure is expected."; }, "This failure is expected."); } @@ -839,6 +890,7 @@ class MockDeathTest : public DeathTest { virtual void Abort(AbortReason reason) { parent_->abort_args_.push_back(reason); } + private: MockDeathTestFactory* const parent_; const TestRole role_; @@ -1070,41 +1122,40 @@ TEST(AutoHandleTest, AutoHandleWorks) { # if GTEST_OS_WINDOWS typedef unsigned __int64 BiggestParsable; typedef signed __int64 BiggestSignedParsable; -const BiggestParsable kBiggestParsableMax = ULLONG_MAX; -const BiggestSignedParsable kBiggestSignedParsableMax = LLONG_MAX; # else typedef unsigned long long BiggestParsable; typedef signed long long BiggestSignedParsable; -const BiggestParsable kBiggestParsableMax = - ::std::numeric_limits<BiggestParsable>::max(); -const BiggestSignedParsable kBiggestSignedParsableMax = - ::std::numeric_limits<BiggestSignedParsable>::max(); # endif // GTEST_OS_WINDOWS +// We cannot use std::numeric_limits<T>::max() as it clashes with the +// max() macro defined by <windows.h>. +const BiggestParsable kBiggestParsableMax = ULLONG_MAX; +const BiggestSignedParsable kBiggestSignedParsableMax = LLONG_MAX; + TEST(ParseNaturalNumberTest, RejectsInvalidFormat) { BiggestParsable result = 0; // Rejects non-numbers. - EXPECT_FALSE(ParseNaturalNumber(String("non-number string"), &result)); + EXPECT_FALSE(ParseNaturalNumber("non-number string", &result)); // Rejects numbers with whitespace prefix. - EXPECT_FALSE(ParseNaturalNumber(String(" 123"), &result)); + EXPECT_FALSE(ParseNaturalNumber(" 123", &result)); // Rejects negative numbers. - EXPECT_FALSE(ParseNaturalNumber(String("-123"), &result)); + EXPECT_FALSE(ParseNaturalNumber("-123", &result)); // Rejects numbers starting with a plus sign. - EXPECT_FALSE(ParseNaturalNumber(String("+123"), &result)); + EXPECT_FALSE(ParseNaturalNumber("+123", &result)); errno = 0; } TEST(ParseNaturalNumberTest, RejectsOverflownNumbers) { BiggestParsable result = 0; - EXPECT_FALSE(ParseNaturalNumber(String("99999999999999999999999"), &result)); + EXPECT_FALSE(ParseNaturalNumber("99999999999999999999999", &result)); signed char char_result = 0; - EXPECT_FALSE(ParseNaturalNumber(String("200"), &char_result)); + EXPECT_FALSE(ParseNaturalNumber("200", &char_result)); errno = 0; } @@ -1112,16 +1163,16 @@ TEST(ParseNaturalNumberTest, AcceptsValidNumbers) { BiggestParsable result = 0; result = 0; - ASSERT_TRUE(ParseNaturalNumber(String("123"), &result)); + ASSERT_TRUE(ParseNaturalNumber("123", &result)); EXPECT_EQ(123U, result); // Check 0 as an edge case. result = 1; - ASSERT_TRUE(ParseNaturalNumber(String("0"), &result)); + ASSERT_TRUE(ParseNaturalNumber("0", &result)); EXPECT_EQ(0U, result); result = 1; - ASSERT_TRUE(ParseNaturalNumber(String("00000"), &result)); + ASSERT_TRUE(ParseNaturalNumber("00000", &result)); EXPECT_EQ(0U, result); } @@ -1157,11 +1208,11 @@ TEST(ParseNaturalNumberTest, AcceptsTypeLimits) { TEST(ParseNaturalNumberTest, WorksForShorterIntegers) { short short_result = 0; - ASSERT_TRUE(ParseNaturalNumber(String("123"), &short_result)); + ASSERT_TRUE(ParseNaturalNumber("123", &short_result)); EXPECT_EQ(123, short_result); signed char char_result = 0; - ASSERT_TRUE(ParseNaturalNumber(String("123"), &char_result)); + ASSERT_TRUE(ParseNaturalNumber("123", &char_result)); EXPECT_EQ(123, char_result); } @@ -1191,7 +1242,6 @@ TEST(ConditionalDeathMacrosDeathTest, ExpectsDeathWhenDeathTestsAvailable) { using testing::internal::CaptureStderr; using testing::internal::GetCapturedStderr; -using testing::internal::String; // Tests that EXPECT_DEATH_IF_SUPPORTED/ASSERT_DEATH_IF_SUPPORTED are still // defined but do not trigger failures when death tests are not available on @@ -1201,7 +1251,7 @@ TEST(ConditionalDeathMacrosTest, WarnsWhenDeathTestsNotAvailable) { // when death tests are not supported. CaptureStderr(); EXPECT_DEATH_IF_SUPPORTED(;, ""); - String output = GetCapturedStderr(); + std::string output = GetCapturedStderr(); ASSERT_TRUE(NULL != strstr(output.c_str(), "Death tests are not supported on this platform")); ASSERT_TRUE(NULL != strstr(output.c_str(), ";")); @@ -1237,6 +1287,27 @@ TEST(ConditionalDeathMacrosTest, AssertDeatDoesNotReturnhIfUnsupported) { FuncWithAssert(&n); EXPECT_EQ(1, n); } + +TEST(InDeathTestChildDeathTest, ReportsDeathTestCorrectlyInFastStyle) { + testing::GTEST_FLAG(death_test_style) = "fast"; + EXPECT_FALSE(InDeathTestChild()); + EXPECT_DEATH({ + fprintf(stderr, InDeathTestChild() ? "Inside" : "Outside"); + fflush(stderr); + _exit(1); + }, "Inside"); +} + +TEST(InDeathTestChildDeathTest, ReportsDeathTestCorrectlyInThreadSafeStyle) { + testing::GTEST_FLAG(death_test_style) = "threadsafe"; + EXPECT_FALSE(InDeathTestChild()); + EXPECT_DEATH({ + fprintf(stderr, InDeathTestChild() ? "Inside" : "Outside"); + fflush(stderr); + _exit(1); + }, "Inside"); +} + #endif // GTEST_HAS_DEATH_TEST // Tests that the death test macros expand to code which may or may not diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-filepath_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-filepath_test.cc similarity index 74% rename from resources/3rdparty/gtest-1.6.0/test/gtest-filepath_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-filepath_test.cc index 66d41184c..ae9f55a0c 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest-filepath_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest-filepath_test.cc @@ -100,7 +100,7 @@ TEST(GetCurrentDirTest, ReturnsCurrentDir) { # else - EXPECT_STREQ(GTEST_PATH_SEP_, cwd.c_str()); + EXPECT_EQ(GTEST_PATH_SEP_, cwd.string()); # endif } @@ -109,7 +109,6 @@ TEST(GetCurrentDirTest, ReturnsCurrentDir) { TEST(IsEmptyTest, ReturnsTrueForEmptyPath) { EXPECT_TRUE(FilePath("").IsEmpty()); - EXPECT_TRUE(FilePath(NULL).IsEmpty()); } TEST(IsEmptyTest, ReturnsFalseForNonEmptyPath) { @@ -121,38 +120,38 @@ TEST(IsEmptyTest, ReturnsFalseForNonEmptyPath) { // RemoveDirectoryName "" -> "" TEST(RemoveDirectoryNameTest, WhenEmptyName) { - EXPECT_STREQ("", FilePath("").RemoveDirectoryName().c_str()); + EXPECT_EQ("", FilePath("").RemoveDirectoryName().string()); } // RemoveDirectoryName "afile" -> "afile" TEST(RemoveDirectoryNameTest, ButNoDirectory) { - EXPECT_STREQ("afile", - FilePath("afile").RemoveDirectoryName().c_str()); + EXPECT_EQ("afile", + FilePath("afile").RemoveDirectoryName().string()); } // RemoveDirectoryName "/afile" -> "afile" TEST(RemoveDirectoryNameTest, RootFileShouldGiveFileName) { - EXPECT_STREQ("afile", - FilePath(GTEST_PATH_SEP_ "afile").RemoveDirectoryName().c_str()); + EXPECT_EQ("afile", + FilePath(GTEST_PATH_SEP_ "afile").RemoveDirectoryName().string()); } // RemoveDirectoryName "adir/" -> "" TEST(RemoveDirectoryNameTest, WhereThereIsNoFileName) { - EXPECT_STREQ("", - FilePath("adir" GTEST_PATH_SEP_).RemoveDirectoryName().c_str()); + EXPECT_EQ("", + FilePath("adir" GTEST_PATH_SEP_).RemoveDirectoryName().string()); } // RemoveDirectoryName "adir/afile" -> "afile" TEST(RemoveDirectoryNameTest, ShouldGiveFileName) { - EXPECT_STREQ("afile", - FilePath("adir" GTEST_PATH_SEP_ "afile").RemoveDirectoryName().c_str()); + EXPECT_EQ("afile", + FilePath("adir" GTEST_PATH_SEP_ "afile").RemoveDirectoryName().string()); } // RemoveDirectoryName "adir/subdir/afile" -> "afile" TEST(RemoveDirectoryNameTest, ShouldAlsoGiveFileName) { - EXPECT_STREQ("afile", + EXPECT_EQ("afile", FilePath("adir" GTEST_PATH_SEP_ "subdir" GTEST_PATH_SEP_ "afile") - .RemoveDirectoryName().c_str()); + .RemoveDirectoryName().string()); } #if GTEST_HAS_ALT_PATH_SEP_ @@ -162,26 +161,23 @@ TEST(RemoveDirectoryNameTest, ShouldAlsoGiveFileName) { // RemoveDirectoryName("/afile") -> "afile" TEST(RemoveDirectoryNameTest, RootFileShouldGiveFileNameForAlternateSeparator) { - EXPECT_STREQ("afile", - FilePath("/afile").RemoveDirectoryName().c_str()); + EXPECT_EQ("afile", FilePath("/afile").RemoveDirectoryName().string()); } // RemoveDirectoryName("adir/") -> "" TEST(RemoveDirectoryNameTest, WhereThereIsNoFileNameForAlternateSeparator) { - EXPECT_STREQ("", - FilePath("adir/").RemoveDirectoryName().c_str()); + EXPECT_EQ("", FilePath("adir/").RemoveDirectoryName().string()); } // RemoveDirectoryName("adir/afile") -> "afile" TEST(RemoveDirectoryNameTest, ShouldGiveFileNameForAlternateSeparator) { - EXPECT_STREQ("afile", - FilePath("adir/afile").RemoveDirectoryName().c_str()); + EXPECT_EQ("afile", FilePath("adir/afile").RemoveDirectoryName().string()); } // RemoveDirectoryName("adir/subdir/afile") -> "afile" TEST(RemoveDirectoryNameTest, ShouldAlsoGiveFileNameForAlternateSeparator) { - EXPECT_STREQ("afile", - FilePath("adir/subdir/afile").RemoveDirectoryName().c_str()); + EXPECT_EQ("afile", + FilePath("adir/subdir/afile").RemoveDirectoryName().string()); } #endif @@ -190,38 +186,35 @@ TEST(RemoveDirectoryNameTest, ShouldAlsoGiveFileNameForAlternateSeparator) { TEST(RemoveFileNameTest, EmptyName) { #if GTEST_OS_WINDOWS_MOBILE // On Windows CE, we use the root as the current directory. - EXPECT_STREQ(GTEST_PATH_SEP_, - FilePath("").RemoveFileName().c_str()); + EXPECT_EQ(GTEST_PATH_SEP_, FilePath("").RemoveFileName().string()); #else - EXPECT_STREQ("." GTEST_PATH_SEP_, - FilePath("").RemoveFileName().c_str()); + EXPECT_EQ("." GTEST_PATH_SEP_, FilePath("").RemoveFileName().string()); #endif } // RemoveFileName "adir/" -> "adir/" TEST(RemoveFileNameTest, ButNoFile) { - EXPECT_STREQ("adir" GTEST_PATH_SEP_, - FilePath("adir" GTEST_PATH_SEP_).RemoveFileName().c_str()); + EXPECT_EQ("adir" GTEST_PATH_SEP_, + FilePath("adir" GTEST_PATH_SEP_).RemoveFileName().string()); } // RemoveFileName "adir/afile" -> "adir/" TEST(RemoveFileNameTest, GivesDirName) { - EXPECT_STREQ("adir" GTEST_PATH_SEP_, - FilePath("adir" GTEST_PATH_SEP_ "afile") - .RemoveFileName().c_str()); + EXPECT_EQ("adir" GTEST_PATH_SEP_, + FilePath("adir" GTEST_PATH_SEP_ "afile").RemoveFileName().string()); } // RemoveFileName "adir/subdir/afile" -> "adir/subdir/" TEST(RemoveFileNameTest, GivesDirAndSubDirName) { - EXPECT_STREQ("adir" GTEST_PATH_SEP_ "subdir" GTEST_PATH_SEP_, + EXPECT_EQ("adir" GTEST_PATH_SEP_ "subdir" GTEST_PATH_SEP_, FilePath("adir" GTEST_PATH_SEP_ "subdir" GTEST_PATH_SEP_ "afile") - .RemoveFileName().c_str()); + .RemoveFileName().string()); } // RemoveFileName "/afile" -> "/" TEST(RemoveFileNameTest, GivesRootDir) { - EXPECT_STREQ(GTEST_PATH_SEP_, - FilePath(GTEST_PATH_SEP_ "afile").RemoveFileName().c_str()); + EXPECT_EQ(GTEST_PATH_SEP_, + FilePath(GTEST_PATH_SEP_ "afile").RemoveFileName().string()); } #if GTEST_HAS_ALT_PATH_SEP_ @@ -231,26 +224,25 @@ TEST(RemoveFileNameTest, GivesRootDir) { // RemoveFileName("adir/") -> "adir/" TEST(RemoveFileNameTest, ButNoFileForAlternateSeparator) { - EXPECT_STREQ("adir" GTEST_PATH_SEP_, - FilePath("adir/").RemoveFileName().c_str()); + EXPECT_EQ("adir" GTEST_PATH_SEP_, + FilePath("adir/").RemoveFileName().string()); } // RemoveFileName("adir/afile") -> "adir/" TEST(RemoveFileNameTest, GivesDirNameForAlternateSeparator) { - EXPECT_STREQ("adir" GTEST_PATH_SEP_, - FilePath("adir/afile").RemoveFileName().c_str()); + EXPECT_EQ("adir" GTEST_PATH_SEP_, + FilePath("adir/afile").RemoveFileName().string()); } // RemoveFileName("adir/subdir/afile") -> "adir/subdir/" TEST(RemoveFileNameTest, GivesDirAndSubDirNameForAlternateSeparator) { - EXPECT_STREQ("adir" GTEST_PATH_SEP_ "subdir" GTEST_PATH_SEP_, - FilePath("adir/subdir/afile").RemoveFileName().c_str()); + EXPECT_EQ("adir" GTEST_PATH_SEP_ "subdir" GTEST_PATH_SEP_, + FilePath("adir/subdir/afile").RemoveFileName().string()); } // RemoveFileName("/afile") -> "\" TEST(RemoveFileNameTest, GivesRootDirForAlternateSeparator) { - EXPECT_STREQ(GTEST_PATH_SEP_, - FilePath("/afile").RemoveFileName().c_str()); + EXPECT_EQ(GTEST_PATH_SEP_, FilePath("/afile").RemoveFileName().string()); } #endif @@ -258,125 +250,120 @@ TEST(RemoveFileNameTest, GivesRootDirForAlternateSeparator) { TEST(MakeFileNameTest, GenerateWhenNumberIsZero) { FilePath actual = FilePath::MakeFileName(FilePath("foo"), FilePath("bar"), 0, "xml"); - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.string()); } TEST(MakeFileNameTest, GenerateFileNameNumberGtZero) { FilePath actual = FilePath::MakeFileName(FilePath("foo"), FilePath("bar"), 12, "xml"); - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar_12.xml", actual.c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar_12.xml", actual.string()); } TEST(MakeFileNameTest, GenerateFileNameWithSlashNumberIsZero) { FilePath actual = FilePath::MakeFileName(FilePath("foo" GTEST_PATH_SEP_), FilePath("bar"), 0, "xml"); - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.string()); } TEST(MakeFileNameTest, GenerateFileNameWithSlashNumberGtZero) { FilePath actual = FilePath::MakeFileName(FilePath("foo" GTEST_PATH_SEP_), FilePath("bar"), 12, "xml"); - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar_12.xml", actual.c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar_12.xml", actual.string()); } TEST(MakeFileNameTest, GenerateWhenNumberIsZeroAndDirIsEmpty) { FilePath actual = FilePath::MakeFileName(FilePath(""), FilePath("bar"), 0, "xml"); - EXPECT_STREQ("bar.xml", actual.c_str()); + EXPECT_EQ("bar.xml", actual.string()); } TEST(MakeFileNameTest, GenerateWhenNumberIsNotZeroAndDirIsEmpty) { FilePath actual = FilePath::MakeFileName(FilePath(""), FilePath("bar"), 14, "xml"); - EXPECT_STREQ("bar_14.xml", actual.c_str()); + EXPECT_EQ("bar_14.xml", actual.string()); } TEST(ConcatPathsTest, WorksWhenDirDoesNotEndWithPathSep) { FilePath actual = FilePath::ConcatPaths(FilePath("foo"), FilePath("bar.xml")); - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.string()); } TEST(ConcatPathsTest, WorksWhenPath1EndsWithPathSep) { FilePath actual = FilePath::ConcatPaths(FilePath("foo" GTEST_PATH_SEP_), FilePath("bar.xml")); - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar.xml", actual.string()); } TEST(ConcatPathsTest, Path1BeingEmpty) { FilePath actual = FilePath::ConcatPaths(FilePath(""), FilePath("bar.xml")); - EXPECT_STREQ("bar.xml", actual.c_str()); + EXPECT_EQ("bar.xml", actual.string()); } TEST(ConcatPathsTest, Path2BeingEmpty) { - FilePath actual = FilePath::ConcatPaths(FilePath("foo"), - FilePath("")); - EXPECT_STREQ("foo" GTEST_PATH_SEP_, actual.c_str()); + FilePath actual = FilePath::ConcatPaths(FilePath("foo"), FilePath("")); + EXPECT_EQ("foo" GTEST_PATH_SEP_, actual.string()); } TEST(ConcatPathsTest, BothPathBeingEmpty) { FilePath actual = FilePath::ConcatPaths(FilePath(""), FilePath("")); - EXPECT_STREQ("", actual.c_str()); + EXPECT_EQ("", actual.string()); } TEST(ConcatPathsTest, Path1ContainsPathSep) { FilePath actual = FilePath::ConcatPaths(FilePath("foo" GTEST_PATH_SEP_ "bar"), FilePath("foobar.xml")); - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_ "foobar.xml", - actual.c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_ "foobar.xml", + actual.string()); } TEST(ConcatPathsTest, Path2ContainsPathSep) { FilePath actual = FilePath::ConcatPaths( FilePath("foo" GTEST_PATH_SEP_), FilePath("bar" GTEST_PATH_SEP_ "bar.xml")); - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_ "bar.xml", - actual.c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_ "bar.xml", + actual.string()); } TEST(ConcatPathsTest, Path2EndsWithPathSep) { FilePath actual = FilePath::ConcatPaths(FilePath("foo"), FilePath("bar" GTEST_PATH_SEP_)); - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_, actual.c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_, actual.string()); } // RemoveTrailingPathSeparator "" -> "" TEST(RemoveTrailingPathSeparatorTest, EmptyString) { - EXPECT_STREQ("", - FilePath("").RemoveTrailingPathSeparator().c_str()); + EXPECT_EQ("", FilePath("").RemoveTrailingPathSeparator().string()); } // RemoveTrailingPathSeparator "foo" -> "foo" TEST(RemoveTrailingPathSeparatorTest, FileNoSlashString) { - EXPECT_STREQ("foo", - FilePath("foo").RemoveTrailingPathSeparator().c_str()); + EXPECT_EQ("foo", FilePath("foo").RemoveTrailingPathSeparator().string()); } // RemoveTrailingPathSeparator "foo/" -> "foo" TEST(RemoveTrailingPathSeparatorTest, ShouldRemoveTrailingSeparator) { - EXPECT_STREQ( - "foo", - FilePath("foo" GTEST_PATH_SEP_).RemoveTrailingPathSeparator().c_str()); + EXPECT_EQ("foo", + FilePath("foo" GTEST_PATH_SEP_).RemoveTrailingPathSeparator().string()); #if GTEST_HAS_ALT_PATH_SEP_ - EXPECT_STREQ("foo", - FilePath("foo/").RemoveTrailingPathSeparator().c_str()); + EXPECT_EQ("foo", FilePath("foo/").RemoveTrailingPathSeparator().string()); #endif } // RemoveTrailingPathSeparator "foo/bar/" -> "foo/bar/" TEST(RemoveTrailingPathSeparatorTest, ShouldRemoveLastSeparator) { - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar", - FilePath("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_) - .RemoveTrailingPathSeparator().c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar", + FilePath("foo" GTEST_PATH_SEP_ "bar" GTEST_PATH_SEP_) + .RemoveTrailingPathSeparator().string()); } // RemoveTrailingPathSeparator "foo/bar" -> "foo/bar" TEST(RemoveTrailingPathSeparatorTest, ShouldReturnUnmodified) { - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar", - FilePath("foo" GTEST_PATH_SEP_ "bar") - .RemoveTrailingPathSeparator().c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar", + FilePath("foo" GTEST_PATH_SEP_ "bar") + .RemoveTrailingPathSeparator().string()); } TEST(DirectoryTest, RootDirectoryExists) { @@ -431,40 +418,35 @@ TEST(DirectoryTest, CurrentDirectoryExists) { #endif // GTEST_OS_WINDOWS } -TEST(NormalizeTest, NullStringsEqualEmptyDirectory) { - EXPECT_STREQ("", FilePath(NULL).c_str()); - EXPECT_STREQ("", FilePath(String(NULL)).c_str()); -} - // "foo/bar" == foo//bar" == "foo///bar" TEST(NormalizeTest, MultipleConsecutiveSepaparatorsInMidstring) { - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar", - FilePath("foo" GTEST_PATH_SEP_ "bar").c_str()); - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar", - FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_ "bar").c_str()); - EXPECT_STREQ("foo" GTEST_PATH_SEP_ "bar", - FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_ - GTEST_PATH_SEP_ "bar").c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar", + FilePath("foo" GTEST_PATH_SEP_ "bar").string()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar", + FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_ "bar").string()); + EXPECT_EQ("foo" GTEST_PATH_SEP_ "bar", + FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_ + GTEST_PATH_SEP_ "bar").string()); } // "/bar" == //bar" == "///bar" TEST(NormalizeTest, MultipleConsecutiveSepaparatorsAtStringStart) { - EXPECT_STREQ(GTEST_PATH_SEP_ "bar", - FilePath(GTEST_PATH_SEP_ "bar").c_str()); - EXPECT_STREQ(GTEST_PATH_SEP_ "bar", - FilePath(GTEST_PATH_SEP_ GTEST_PATH_SEP_ "bar").c_str()); - EXPECT_STREQ(GTEST_PATH_SEP_ "bar", - FilePath(GTEST_PATH_SEP_ GTEST_PATH_SEP_ GTEST_PATH_SEP_ "bar").c_str()); + EXPECT_EQ(GTEST_PATH_SEP_ "bar", + FilePath(GTEST_PATH_SEP_ "bar").string()); + EXPECT_EQ(GTEST_PATH_SEP_ "bar", + FilePath(GTEST_PATH_SEP_ GTEST_PATH_SEP_ "bar").string()); + EXPECT_EQ(GTEST_PATH_SEP_ "bar", + FilePath(GTEST_PATH_SEP_ GTEST_PATH_SEP_ GTEST_PATH_SEP_ "bar").string()); } // "foo/" == foo//" == "foo///" TEST(NormalizeTest, MultipleConsecutiveSepaparatorsAtStringEnd) { - EXPECT_STREQ("foo" GTEST_PATH_SEP_, - FilePath("foo" GTEST_PATH_SEP_).c_str()); - EXPECT_STREQ("foo" GTEST_PATH_SEP_, - FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_).c_str()); - EXPECT_STREQ("foo" GTEST_PATH_SEP_, - FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_ GTEST_PATH_SEP_).c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_, + FilePath("foo" GTEST_PATH_SEP_).string()); + EXPECT_EQ("foo" GTEST_PATH_SEP_, + FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_).string()); + EXPECT_EQ("foo" GTEST_PATH_SEP_, + FilePath("foo" GTEST_PATH_SEP_ GTEST_PATH_SEP_ GTEST_PATH_SEP_).string()); } #if GTEST_HAS_ALT_PATH_SEP_ @@ -473,12 +455,12 @@ TEST(NormalizeTest, MultipleConsecutiveSepaparatorsAtStringEnd) { // regardless of their combination (e.g. "foo\" =="foo/\" == // "foo\\/"). TEST(NormalizeTest, MixAlternateSeparatorAtStringEnd) { - EXPECT_STREQ("foo" GTEST_PATH_SEP_, - FilePath("foo/").c_str()); - EXPECT_STREQ("foo" GTEST_PATH_SEP_, - FilePath("foo" GTEST_PATH_SEP_ "/").c_str()); - EXPECT_STREQ("foo" GTEST_PATH_SEP_, - FilePath("foo//" GTEST_PATH_SEP_).c_str()); + EXPECT_EQ("foo" GTEST_PATH_SEP_, + FilePath("foo/").string()); + EXPECT_EQ("foo" GTEST_PATH_SEP_, + FilePath("foo" GTEST_PATH_SEP_ "/").string()); + EXPECT_EQ("foo" GTEST_PATH_SEP_, + FilePath("foo//" GTEST_PATH_SEP_).string()); } #endif @@ -487,31 +469,31 @@ TEST(AssignmentOperatorTest, DefaultAssignedToNonDefault) { FilePath default_path; FilePath non_default_path("path"); non_default_path = default_path; - EXPECT_STREQ("", non_default_path.c_str()); - EXPECT_STREQ("", default_path.c_str()); // RHS var is unchanged. + EXPECT_EQ("", non_default_path.string()); + EXPECT_EQ("", default_path.string()); // RHS var is unchanged. } TEST(AssignmentOperatorTest, NonDefaultAssignedToDefault) { FilePath non_default_path("path"); FilePath default_path; default_path = non_default_path; - EXPECT_STREQ("path", default_path.c_str()); - EXPECT_STREQ("path", non_default_path.c_str()); // RHS var is unchanged. + EXPECT_EQ("path", default_path.string()); + EXPECT_EQ("path", non_default_path.string()); // RHS var is unchanged. } TEST(AssignmentOperatorTest, ConstAssignedToNonConst) { const FilePath const_default_path("const_path"); FilePath non_default_path("path"); non_default_path = const_default_path; - EXPECT_STREQ("const_path", non_default_path.c_str()); + EXPECT_EQ("const_path", non_default_path.string()); } class DirectoryCreationTest : public Test { protected: virtual void SetUp() { - testdata_path_.Set(FilePath(String::Format("%s%s%s", - TempDir().c_str(), GetCurrentExecutableName().c_str(), - "_directory_creation" GTEST_PATH_SEP_ "test" GTEST_PATH_SEP_))); + testdata_path_.Set(FilePath( + TempDir() + GetCurrentExecutableName().string() + + "_directory_creation" GTEST_PATH_SEP_ "test" GTEST_PATH_SEP_)); testdata_file_.Set(testdata_path_.RemoveTrailingPathSeparator()); unique_file0_.Set(FilePath::MakeFileName(testdata_path_, FilePath("unique"), @@ -532,19 +514,21 @@ class DirectoryCreationTest : public Test { posix::RmDir(testdata_path_.c_str()); } - String TempDir() const { + std::string TempDir() const { #if GTEST_OS_WINDOWS_MOBILE - return String("\\temp\\"); + return "\\temp\\"; #elif GTEST_OS_WINDOWS const char* temp_dir = posix::GetEnv("TEMP"); if (temp_dir == NULL || temp_dir[0] == '\0') - return String("\\temp\\"); - else if (String(temp_dir).EndsWith("\\")) - return String(temp_dir); + return "\\temp\\"; + else if (temp_dir[strlen(temp_dir) - 1] == '\\') + return temp_dir; else - return String::Format("%s\\", temp_dir); + return std::string(temp_dir) + "\\"; +#elif GTEST_OS_LINUX_ANDROID + return "/sdcard/"; #else - return String("/tmp/"); + return "/tmp/"; #endif // GTEST_OS_WINDOWS_MOBILE } @@ -564,13 +548,13 @@ class DirectoryCreationTest : public Test { }; TEST_F(DirectoryCreationTest, CreateDirectoriesRecursively) { - EXPECT_FALSE(testdata_path_.DirectoryExists()) << testdata_path_.c_str(); + EXPECT_FALSE(testdata_path_.DirectoryExists()) << testdata_path_.string(); EXPECT_TRUE(testdata_path_.CreateDirectoriesRecursively()); EXPECT_TRUE(testdata_path_.DirectoryExists()); } TEST_F(DirectoryCreationTest, CreateDirectoriesForAlreadyExistingPath) { - EXPECT_FALSE(testdata_path_.DirectoryExists()) << testdata_path_.c_str(); + EXPECT_FALSE(testdata_path_.DirectoryExists()) << testdata_path_.string(); EXPECT_TRUE(testdata_path_.CreateDirectoriesRecursively()); // Call 'create' again... should still succeed. EXPECT_TRUE(testdata_path_.CreateDirectoriesRecursively()); @@ -579,7 +563,7 @@ TEST_F(DirectoryCreationTest, CreateDirectoriesForAlreadyExistingPath) { TEST_F(DirectoryCreationTest, CreateDirectoriesAndUniqueFilename) { FilePath file_path(FilePath::GenerateUniqueFileName(testdata_path_, FilePath("unique"), "txt")); - EXPECT_STREQ(unique_file0_.c_str(), file_path.c_str()); + EXPECT_EQ(unique_file0_.string(), file_path.string()); EXPECT_FALSE(file_path.FileOrDirectoryExists()); // file not there testdata_path_.CreateDirectoriesRecursively(); @@ -589,7 +573,7 @@ TEST_F(DirectoryCreationTest, CreateDirectoriesAndUniqueFilename) { FilePath file_path2(FilePath::GenerateUniqueFileName(testdata_path_, FilePath("unique"), "txt")); - EXPECT_STREQ(unique_file1_.c_str(), file_path2.c_str()); + EXPECT_EQ(unique_file1_.string(), file_path2.string()); EXPECT_FALSE(file_path2.FileOrDirectoryExists()); // file not there CreateTextFile(file_path2.c_str()); EXPECT_TRUE(file_path2.FileOrDirectoryExists()); @@ -610,43 +594,43 @@ TEST(NoDirectoryCreationTest, CreateNoDirectoriesForDefaultXmlFile) { TEST(FilePathTest, DefaultConstructor) { FilePath fp; - EXPECT_STREQ("", fp.c_str()); + EXPECT_EQ("", fp.string()); } TEST(FilePathTest, CharAndCopyConstructors) { const FilePath fp("spicy"); - EXPECT_STREQ("spicy", fp.c_str()); + EXPECT_EQ("spicy", fp.string()); const FilePath fp_copy(fp); - EXPECT_STREQ("spicy", fp_copy.c_str()); + EXPECT_EQ("spicy", fp_copy.string()); } TEST(FilePathTest, StringConstructor) { - const FilePath fp(String("cider")); - EXPECT_STREQ("cider", fp.c_str()); + const FilePath fp(std::string("cider")); + EXPECT_EQ("cider", fp.string()); } TEST(FilePathTest, Set) { const FilePath apple("apple"); FilePath mac("mac"); mac.Set(apple); // Implement Set() since overloading operator= is forbidden. - EXPECT_STREQ("apple", mac.c_str()); - EXPECT_STREQ("apple", apple.c_str()); + EXPECT_EQ("apple", mac.string()); + EXPECT_EQ("apple", apple.string()); } TEST(FilePathTest, ToString) { const FilePath file("drink"); - String str(file.ToString()); - EXPECT_STREQ("drink", str.c_str()); + EXPECT_EQ("drink", file.string()); } TEST(FilePathTest, RemoveExtension) { - EXPECT_STREQ("app", FilePath("app.exe").RemoveExtension("exe").c_str()); - EXPECT_STREQ("APP", FilePath("APP.EXE").RemoveExtension("exe").c_str()); + EXPECT_EQ("app", FilePath("app.cc").RemoveExtension("cc").string()); + EXPECT_EQ("app", FilePath("app.exe").RemoveExtension("exe").string()); + EXPECT_EQ("APP", FilePath("APP.EXE").RemoveExtension("exe").string()); } TEST(FilePathTest, RemoveExtensionWhenThereIsNoExtension) { - EXPECT_STREQ("app", FilePath("app").RemoveExtension("exe").c_str()); + EXPECT_EQ("app", FilePath("app").RemoveExtension("exe").string()); } TEST(FilePathTest, IsDirectory) { diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-linked_ptr_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-linked_ptr_test.cc similarity index 99% rename from resources/3rdparty/gtest-1.6.0/test/gtest-linked_ptr_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-linked_ptr_test.cc index 0d5508ae8..6fcf5124a 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest-linked_ptr_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest-linked_ptr_test.cc @@ -148,8 +148,7 @@ TEST_F(LinkedPtrTest, GeneralTest) { "A0 dtor\n" "A3 dtor\n" "A1 dtor\n", - history->GetString().c_str() - ); + history->GetString().c_str()); } } // Unnamed namespace diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-listener_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-listener_test.cc similarity index 91% rename from resources/3rdparty/gtest-1.6.0/test/gtest-listener_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-listener_test.cc index 2aa08ef36..99662cff3 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest-listener_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest-listener_test.cc @@ -45,17 +45,16 @@ using ::testing::TestEventListener; using ::testing::TestInfo; using ::testing::TestPartResult; using ::testing::UnitTest; -using ::testing::internal::String; // Used by tests to register their events. -std::vector<String>* g_events = NULL; +std::vector<std::string>* g_events = NULL; namespace testing { namespace internal { class EventRecordingListener : public TestEventListener { public: - EventRecordingListener(const char* name) : name_(name) {} + explicit EventRecordingListener(const char* name) : name_(name) {} protected: virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) { @@ -119,54 +118,52 @@ class EventRecordingListener : public TestEventListener { } private: - String GetFullMethodName(const char* name) { - Message message; - message << name_ << "." << name; - return message.GetString(); + std::string GetFullMethodName(const char* name) { + return name_ + "." + name; } - String name_; + std::string name_; }; class EnvironmentInvocationCatcher : public Environment { protected: virtual void SetUp() { - g_events->push_back(String("Environment::SetUp")); + g_events->push_back("Environment::SetUp"); } virtual void TearDown() { - g_events->push_back(String("Environment::TearDown")); + g_events->push_back("Environment::TearDown"); } }; class ListenerTest : public Test { protected: static void SetUpTestCase() { - g_events->push_back(String("ListenerTest::SetUpTestCase")); + g_events->push_back("ListenerTest::SetUpTestCase"); } static void TearDownTestCase() { - g_events->push_back(String("ListenerTest::TearDownTestCase")); + g_events->push_back("ListenerTest::TearDownTestCase"); } virtual void SetUp() { - g_events->push_back(String("ListenerTest::SetUp")); + g_events->push_back("ListenerTest::SetUp"); } virtual void TearDown() { - g_events->push_back(String("ListenerTest::TearDown")); + g_events->push_back("ListenerTest::TearDown"); } }; TEST_F(ListenerTest, DoesFoo) { // Test execution order within a test case is not guaranteed so we are not // recording the test name. - g_events->push_back(String("ListenerTest::* Test Body")); + g_events->push_back("ListenerTest::* Test Body"); SUCCEED(); // Triggers OnTestPartResult. } TEST_F(ListenerTest, DoesBar) { - g_events->push_back(String("ListenerTest::* Test Body")); + g_events->push_back("ListenerTest::* Test Body"); SUCCEED(); // Triggers OnTestPartResult. } @@ -177,7 +174,7 @@ TEST_F(ListenerTest, DoesBar) { using ::testing::internal::EnvironmentInvocationCatcher; using ::testing::internal::EventRecordingListener; -void VerifyResults(const std::vector<String>& data, +void VerifyResults(const std::vector<std::string>& data, const char* const* expected_data, int expected_data_size) { const int actual_size = data.size(); @@ -201,7 +198,7 @@ void VerifyResults(const std::vector<String>& data, } int main(int argc, char **argv) { - std::vector<String> events; + std::vector<std::string> events; g_events = &events; InitGoogleTest(&argc, argv); diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-message_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-message_test.cc similarity index 71% rename from resources/3rdparty/gtest-1.6.0/test/gtest-message_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-message_test.cc index c09c6a836..175238ef4 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest-message_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest-message_test.cc @@ -39,79 +39,72 @@ namespace { using ::testing::Message; -// A helper function that turns a Message into a C string. -const char* ToCString(const Message& msg) { - static testing::internal::String result; - result = msg.GetString(); - return result.c_str(); -} - // Tests the testing::Message class // Tests the default constructor. TEST(MessageTest, DefaultConstructor) { const Message msg; - EXPECT_STREQ("", ToCString(msg)); + EXPECT_EQ("", msg.GetString()); } // Tests the copy constructor. TEST(MessageTest, CopyConstructor) { const Message msg1("Hello"); const Message msg2(msg1); - EXPECT_STREQ("Hello", ToCString(msg2)); + EXPECT_EQ("Hello", msg2.GetString()); } // Tests constructing a Message from a C-string. TEST(MessageTest, ConstructsFromCString) { Message msg("Hello"); - EXPECT_STREQ("Hello", ToCString(msg)); + EXPECT_EQ("Hello", msg.GetString()); } // Tests streaming a float. TEST(MessageTest, StreamsFloat) { - const char* const s = ToCString(Message() << 1.23456F << " " << 2.34567F); + const std::string s = (Message() << 1.23456F << " " << 2.34567F).GetString(); // Both numbers should be printed with enough precision. - EXPECT_PRED_FORMAT2(testing::IsSubstring, "1.234560", s); - EXPECT_PRED_FORMAT2(testing::IsSubstring, " 2.345669", s); + EXPECT_PRED_FORMAT2(testing::IsSubstring, "1.234560", s.c_str()); + EXPECT_PRED_FORMAT2(testing::IsSubstring, " 2.345669", s.c_str()); } // Tests streaming a double. TEST(MessageTest, StreamsDouble) { - const char* const s = ToCString(Message() << 1260570880.4555497 << " " - << 1260572265.1954534); + const std::string s = (Message() << 1260570880.4555497 << " " + << 1260572265.1954534).GetString(); // Both numbers should be printed with enough precision. - EXPECT_PRED_FORMAT2(testing::IsSubstring, "1260570880.45", s); - EXPECT_PRED_FORMAT2(testing::IsSubstring, " 1260572265.19", s); + EXPECT_PRED_FORMAT2(testing::IsSubstring, "1260570880.45", s.c_str()); + EXPECT_PRED_FORMAT2(testing::IsSubstring, " 1260572265.19", s.c_str()); } // Tests streaming a non-char pointer. TEST(MessageTest, StreamsPointer) { int n = 0; int* p = &n; - EXPECT_STRNE("(null)", ToCString(Message() << p)); + EXPECT_NE("(null)", (Message() << p).GetString()); } // Tests streaming a NULL non-char pointer. TEST(MessageTest, StreamsNullPointer) { int* p = NULL; - EXPECT_STREQ("(null)", ToCString(Message() << p)); + EXPECT_EQ("(null)", (Message() << p).GetString()); } // Tests streaming a C string. TEST(MessageTest, StreamsCString) { - EXPECT_STREQ("Foo", ToCString(Message() << "Foo")); + EXPECT_EQ("Foo", (Message() << "Foo").GetString()); } // Tests streaming a NULL C string. TEST(MessageTest, StreamsNullCString) { char* p = NULL; - EXPECT_STREQ("(null)", ToCString(Message() << p)); + EXPECT_EQ("(null)", (Message() << p).GetString()); } // Tests streaming std::string. TEST(MessageTest, StreamsString) { const ::std::string str("Hello"); - EXPECT_STREQ("Hello", ToCString(Message() << str)); + EXPECT_EQ("Hello", (Message() << str).GetString()); } // Tests that we can output strings containing embedded NULs. @@ -120,34 +113,34 @@ TEST(MessageTest, StreamsStringWithEmbeddedNUL) { "Here's a NUL\0 and some more string"; const ::std::string string_with_nul(char_array_with_nul, sizeof(char_array_with_nul) - 1); - EXPECT_STREQ("Here's a NUL\\0 and some more string", - ToCString(Message() << string_with_nul)); + EXPECT_EQ("Here's a NUL\\0 and some more string", + (Message() << string_with_nul).GetString()); } // Tests streaming a NUL char. TEST(MessageTest, StreamsNULChar) { - EXPECT_STREQ("\\0", ToCString(Message() << '\0')); + EXPECT_EQ("\\0", (Message() << '\0').GetString()); } // Tests streaming int. TEST(MessageTest, StreamsInt) { - EXPECT_STREQ("123", ToCString(Message() << 123)); + EXPECT_EQ("123", (Message() << 123).GetString()); } // Tests that basic IO manipulators (endl, ends, and flush) can be // streamed to Message. TEST(MessageTest, StreamsBasicIoManip) { - EXPECT_STREQ("Line 1.\nA NUL char \\0 in line 2.", - ToCString(Message() << "Line 1." << std::endl + EXPECT_EQ("Line 1.\nA NUL char \\0 in line 2.", + (Message() << "Line 1." << std::endl << "A NUL char " << std::ends << std::flush - << " in line 2.")); + << " in line 2.").GetString()); } // Tests Message::GetString() TEST(MessageTest, GetString) { Message msg; msg << 1 << " lamb"; - EXPECT_STREQ("1 lamb", msg.GetString().c_str()); + EXPECT_EQ("1 lamb", msg.GetString()); } // Tests streaming a Message object to an ostream. @@ -155,7 +148,7 @@ TEST(MessageTest, StreamsToOStream) { Message msg("Hello"); ::std::stringstream ss; ss << msg; - EXPECT_STREQ("Hello", testing::internal::StringStreamToString(&ss).c_str()); + EXPECT_EQ("Hello", testing::internal::StringStreamToString(&ss)); } // Tests that a Message object doesn't take up too much stack space. diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-options_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-options_test.cc similarity index 77% rename from resources/3rdparty/gtest-1.6.0/test/gtest-options_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-options_test.cc index 9e98f3f05..5586dc3b1 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest-options_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest-options_test.cc @@ -78,14 +78,14 @@ TEST(XmlOutputTest, GetOutputFormat) { TEST(XmlOutputTest, GetOutputFileDefault) { GTEST_FLAG(output) = ""; - EXPECT_STREQ(GetAbsolutePathOf(FilePath("test_detail.xml")).c_str(), - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()); + EXPECT_EQ(GetAbsolutePathOf(FilePath("test_detail.xml")).string(), + UnitTestOptions::GetAbsolutePathToOutputFile()); } TEST(XmlOutputTest, GetOutputFileSingleFile) { GTEST_FLAG(output) = "xml:filename.abc"; - EXPECT_STREQ(GetAbsolutePathOf(FilePath("filename.abc")).c_str(), - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()); + EXPECT_EQ(GetAbsolutePathOf(FilePath("filename.abc")).string(), + UnitTestOptions::GetAbsolutePathToOutputFile()); } TEST(XmlOutputTest, GetOutputFileFromDirectoryPath) { @@ -93,8 +93,9 @@ TEST(XmlOutputTest, GetOutputFileFromDirectoryPath) { const std::string expected_output_file = GetAbsolutePathOf( FilePath(std::string("path") + GTEST_PATH_SEP_ + - GetCurrentExecutableName().c_str() + ".xml")).c_str(); - const String& output_file = UnitTestOptions::GetAbsolutePathToOutputFile(); + GetCurrentExecutableName().string() + ".xml")).string(); + const std::string& output_file = + UnitTestOptions::GetAbsolutePathToOutputFile(); #if GTEST_OS_WINDOWS EXPECT_STRCASEEQ(expected_output_file.c_str(), output_file.c_str()); #else @@ -103,7 +104,7 @@ TEST(XmlOutputTest, GetOutputFileFromDirectoryPath) { } TEST(OutputFileHelpersTest, GetCurrentExecutableName) { - const std::string exe_str = GetCurrentExecutableName().c_str(); + const std::string exe_str = GetCurrentExecutableName().string(); #if GTEST_OS_WINDOWS const bool success = _strcmpi("gtest-options_test", exe_str.c_str()) == 0 || @@ -129,12 +130,12 @@ class XmlOutputChangeDirTest : public Test { original_working_dir_ = FilePath::GetCurrentDir(); posix::ChDir(".."); // This will make the test fail if run from the root directory. - EXPECT_STRNE(original_working_dir_.c_str(), - FilePath::GetCurrentDir().c_str()); + EXPECT_NE(original_working_dir_.string(), + FilePath::GetCurrentDir().string()); } virtual void TearDown() { - posix::ChDir(original_working_dir_.c_str()); + posix::ChDir(original_working_dir_.string().c_str()); } FilePath original_working_dir_; @@ -142,23 +143,23 @@ class XmlOutputChangeDirTest : public Test { TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithDefault) { GTEST_FLAG(output) = ""; - EXPECT_STREQ(FilePath::ConcatPaths(original_working_dir_, - FilePath("test_detail.xml")).c_str(), - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()); + EXPECT_EQ(FilePath::ConcatPaths(original_working_dir_, + FilePath("test_detail.xml")).string(), + UnitTestOptions::GetAbsolutePathToOutputFile()); } TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithDefaultXML) { GTEST_FLAG(output) = "xml"; - EXPECT_STREQ(FilePath::ConcatPaths(original_working_dir_, - FilePath("test_detail.xml")).c_str(), - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()); + EXPECT_EQ(FilePath::ConcatPaths(original_working_dir_, + FilePath("test_detail.xml")).string(), + UnitTestOptions::GetAbsolutePathToOutputFile()); } TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithRelativeFile) { GTEST_FLAG(output) = "xml:filename.abc"; - EXPECT_STREQ(FilePath::ConcatPaths(original_working_dir_, - FilePath("filename.abc")).c_str(), - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()); + EXPECT_EQ(FilePath::ConcatPaths(original_working_dir_, + FilePath("filename.abc")).string(), + UnitTestOptions::GetAbsolutePathToOutputFile()); } TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithRelativePath) { @@ -167,8 +168,9 @@ TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithRelativePath) { FilePath::ConcatPaths( original_working_dir_, FilePath(std::string("path") + GTEST_PATH_SEP_ + - GetCurrentExecutableName().c_str() + ".xml")).c_str(); - const String& output_file = UnitTestOptions::GetAbsolutePathToOutputFile(); + GetCurrentExecutableName().string() + ".xml")).string(); + const std::string& output_file = + UnitTestOptions::GetAbsolutePathToOutputFile(); #if GTEST_OS_WINDOWS EXPECT_STRCASEEQ(expected_output_file.c_str(), output_file.c_str()); #else @@ -179,12 +181,12 @@ TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithRelativePath) { TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithAbsoluteFile) { #if GTEST_OS_WINDOWS GTEST_FLAG(output) = "xml:c:\\tmp\\filename.abc"; - EXPECT_STREQ(FilePath("c:\\tmp\\filename.abc").c_str(), - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()); + EXPECT_EQ(FilePath("c:\\tmp\\filename.abc").string(), + UnitTestOptions::GetAbsolutePathToOutputFile()); #else GTEST_FLAG(output) ="xml:/tmp/filename.abc"; - EXPECT_STREQ(FilePath("/tmp/filename.abc").c_str(), - UnitTestOptions::GetAbsolutePathToOutputFile().c_str()); + EXPECT_EQ(FilePath("/tmp/filename.abc").string(), + UnitTestOptions::GetAbsolutePathToOutputFile()); #endif } @@ -197,8 +199,9 @@ TEST_F(XmlOutputChangeDirTest, PreserveOriginalWorkingDirWithAbsolutePath) { GTEST_FLAG(output) = "xml:" + path; const std::string expected_output_file = - path + GetCurrentExecutableName().c_str() + ".xml"; - const String& output_file = UnitTestOptions::GetAbsolutePathToOutputFile(); + path + GetCurrentExecutableName().string() + ".xml"; + const std::string& output_file = + UnitTestOptions::GetAbsolutePathToOutputFile(); #if GTEST_OS_WINDOWS EXPECT_STRCASEEQ(expected_output_file.c_str(), output_file.c_str()); diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-param-test2_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-param-test2_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest-param-test2_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-param-test2_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-param-test_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-param-test_test.cc similarity index 99% rename from resources/3rdparty/gtest-1.6.0/test/gtest-param-test_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-param-test_test.cc index 94a53d9f2..f60cb8a55 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest-param-test_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest-param-test_test.cc @@ -280,10 +280,10 @@ class DogAdder { bool operator<(const DogAdder& other) const { return value_ < other.value_; } - const ::testing::internal::String& value() const { return value_; } + const std::string& value() const { return value_; } private: - ::testing::internal::String value_; + std::string value_; }; TEST(RangeTest, WorksWithACustomType) { @@ -606,6 +606,7 @@ class TestGenerationEnvironment : public ::testing::Environment { << "has not been run as expected."; } } + private: TestGenerationEnvironment() : fixture_constructor_count_(0), set_up_count_(0), tear_down_count_(0), test_body_count_(0) {} @@ -674,6 +675,7 @@ class TestGenerationTest : public TestWithParam<int> { EXPECT_TRUE(collected_parameters_ == expected_values); } + protected: int current_parameter_; static vector<int> collected_parameters_; @@ -863,6 +865,13 @@ TEST_P(ParameterizedDerivedTest, SeesSequence) { EXPECT_EQ(GetParam(), global_count_++); } +class ParameterizedDeathTest : public ::testing::TestWithParam<int> { }; + +TEST_F(ParameterizedDeathTest, GetParamDiesFromTestF) { + EXPECT_DEATH_IF_SUPPORTED(GetParam(), + ".* value-parameterized test .*"); +} + INSTANTIATE_TEST_CASE_P(RangeZeroToFive, ParameterizedDerivedTest, Range(0, 5)); #endif // GTEST_HAS_PARAM_TEST diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-param-test_test.h b/resources/3rdparty/gtest-1.7.0/test/gtest-param-test_test.h similarity index 97% rename from resources/3rdparty/gtest-1.6.0/test/gtest-param-test_test.h rename to resources/3rdparty/gtest-1.7.0/test/gtest-param-test_test.h index d0f6556b0..26ea122b1 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest-param-test_test.h +++ b/resources/3rdparty/gtest-1.7.0/test/gtest-param-test_test.h @@ -43,12 +43,14 @@ // Test fixture for testing definition and instantiation of a test // in separate translation units. -class ExternalInstantiationTest : public ::testing::TestWithParam<int> {}; +class ExternalInstantiationTest : public ::testing::TestWithParam<int> { +}; // Test fixture for testing instantiation of a test in multiple // translation units. class InstantiationInMultipleTranslaionUnitsTest - : public ::testing::TestWithParam<int> {}; + : public ::testing::TestWithParam<int> { +}; #endif // GTEST_HAS_PARAM_TEST diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-port_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-port_test.cc similarity index 91% rename from resources/3rdparty/gtest-1.6.0/test/gtest-port_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-port_test.cc index 1c6e2b097..43f1f2010 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest-port_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest-port_test.cc @@ -61,6 +61,43 @@ using std::pair; namespace testing { namespace internal { +TEST(IsXDigitTest, WorksForNarrowAscii) { + EXPECT_TRUE(IsXDigit('0')); + EXPECT_TRUE(IsXDigit('9')); + EXPECT_TRUE(IsXDigit('A')); + EXPECT_TRUE(IsXDigit('F')); + EXPECT_TRUE(IsXDigit('a')); + EXPECT_TRUE(IsXDigit('f')); + + EXPECT_FALSE(IsXDigit('-')); + EXPECT_FALSE(IsXDigit('g')); + EXPECT_FALSE(IsXDigit('G')); +} + +TEST(IsXDigitTest, ReturnsFalseForNarrowNonAscii) { + EXPECT_FALSE(IsXDigit(static_cast<char>(0x80))); + EXPECT_FALSE(IsXDigit(static_cast<char>('0' | 0x80))); +} + +TEST(IsXDigitTest, WorksForWideAscii) { + EXPECT_TRUE(IsXDigit(L'0')); + EXPECT_TRUE(IsXDigit(L'9')); + EXPECT_TRUE(IsXDigit(L'A')); + EXPECT_TRUE(IsXDigit(L'F')); + EXPECT_TRUE(IsXDigit(L'a')); + EXPECT_TRUE(IsXDigit(L'f')); + + EXPECT_FALSE(IsXDigit(L'-')); + EXPECT_FALSE(IsXDigit(L'g')); + EXPECT_FALSE(IsXDigit(L'G')); +} + +TEST(IsXDigitTest, ReturnsFalseForWideNonAscii) { + EXPECT_FALSE(IsXDigit(static_cast<wchar_t>(0x80))); + EXPECT_FALSE(IsXDigit(static_cast<wchar_t>(L'0' | 0x80))); + EXPECT_FALSE(IsXDigit(static_cast<wchar_t>(L'0' | 0x100))); +} + class Base { public: // Copy constructor and assignment operator do exactly what we need, so we @@ -92,7 +129,7 @@ TEST(ImplicitCastTest, CanUseInheritance) { class Castable { public: - Castable(bool* converted) : converted_(converted) {} + explicit Castable(bool* converted) : converted_(converted) {} operator Base() { *converted_ = true; return Base(); @@ -111,7 +148,7 @@ TEST(ImplicitCastTest, CanUseNonConstCastOperator) { class ConstCastable { public: - ConstCastable(bool* converted) : converted_(converted) {} + explicit ConstCastable(bool* converted) : converted_(converted) {} operator Base() const { *converted_ = true; return Base(); @@ -224,7 +261,7 @@ TEST(GtestCheckSyntaxTest, WorksWithSwitch) { GTEST_CHECK_(true); } - switch(0) + switch (0) case 0: GTEST_CHECK_(true) << "Check failed in switch case"; } @@ -267,7 +304,7 @@ TEST(FormatCompilerIndependentFileLocationTest, FormatsUknownFileAndLine) { EXPECT_EQ("unknown file", FormatCompilerIndependentFileLocation(NULL, -1)); } -#if GTEST_OS_MAC +#if GTEST_OS_MAC || GTEST_OS_QNX void* ThreadFunc(void* data) { pthread_mutex_t* mutex = static_cast<pthread_mutex_t*>(data); pthread_mutex_lock(mutex); @@ -297,6 +334,8 @@ TEST(GetThreadCountTest, ReturnsCorrectValue) { void* dummy; ASSERT_EQ(0, pthread_join(thread_id, &dummy)); +# if GTEST_OS_MAC + // MacOS X may not immediately report the updated thread count after // joining a thread, causing flakiness in this test. To counter that, we // wait for up to .5 seconds for the OS to report the correct value. @@ -306,6 +345,9 @@ TEST(GetThreadCountTest, ReturnsCorrectValue) { SleepMilliseconds(100); } + +# endif // GTEST_OS_MAC + EXPECT_EQ(1U, GetThreadCount()); pthread_mutex_destroy(&mutex); } @@ -313,7 +355,7 @@ TEST(GetThreadCountTest, ReturnsCorrectValue) { TEST(GetThreadCountTest, ReturnsZeroWhenUnableToCountThreads) { EXPECT_EQ(0U, GetThreadCount()); } -#endif // GTEST_OS_MAC +#endif // GTEST_OS_MAC || GTEST_OS_QNX TEST(GtestCheckDeathTest, DiesWithCorrectOutputOnFailure) { const bool a_false_condition = false; @@ -924,7 +966,7 @@ TEST(CaptureTest, CapturesStdoutAndStderr) { TEST(CaptureDeathTest, CannotReenterStdoutCapture) { CaptureStdout(); - EXPECT_DEATH_IF_SUPPORTED(CaptureStdout();, + EXPECT_DEATH_IF_SUPPORTED(CaptureStdout(), "Only one stdout capturer can exist at a time"); GetCapturedStdout(); @@ -963,23 +1005,24 @@ TEST(ThreadLocalTest, ValueDefaultContructorIsNotRequiredForParamVersion) { } TEST(ThreadLocalTest, GetAndPointerReturnSameValue) { - ThreadLocal<String> thread_local; + ThreadLocal<std::string> thread_local_string; - EXPECT_EQ(thread_local.pointer(), &(thread_local.get())); + EXPECT_EQ(thread_local_string.pointer(), &(thread_local_string.get())); // Verifies the condition still holds after calling set. - thread_local.set("foo"); - EXPECT_EQ(thread_local.pointer(), &(thread_local.get())); + thread_local_string.set("foo"); + EXPECT_EQ(thread_local_string.pointer(), &(thread_local_string.get())); } TEST(ThreadLocalTest, PointerAndConstPointerReturnSameValue) { - ThreadLocal<String> thread_local; - const ThreadLocal<String>& const_thread_local = thread_local; + ThreadLocal<std::string> thread_local_string; + const ThreadLocal<std::string>& const_thread_local_string = + thread_local_string; - EXPECT_EQ(thread_local.pointer(), const_thread_local.pointer()); + EXPECT_EQ(thread_local_string.pointer(), const_thread_local_string.pointer()); - thread_local.set("foo"); - EXPECT_EQ(thread_local.pointer(), const_thread_local.pointer()); + thread_local_string.set("foo"); + EXPECT_EQ(thread_local_string.pointer(), const_thread_local_string.pointer()); } #if GTEST_IS_THREADSAFE @@ -1032,6 +1075,7 @@ class AtomicCounterWithMutex { SleepMilliseconds(random_.Generate(30)); GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_unlock(&memory_barrier_mutex)); + GTEST_CHECK_POSIX_SUCCESS_(pthread_mutex_destroy(&memory_barrier_mutex)); } value_ = temp + 1; } @@ -1083,19 +1127,21 @@ void RunFromThread(void (func)(T), T param) { thread.Join(); } -void RetrieveThreadLocalValue(pair<ThreadLocal<String>*, String*> param) { +void RetrieveThreadLocalValue( + pair<ThreadLocal<std::string>*, std::string*> param) { *param.second = param.first->get(); } TEST(ThreadLocalTest, ParameterizedConstructorSetsDefault) { - ThreadLocal<String> thread_local("foo"); - EXPECT_STREQ("foo", thread_local.get().c_str()); + ThreadLocal<std::string> thread_local_string("foo"); + EXPECT_STREQ("foo", thread_local_string.get().c_str()); - thread_local.set("bar"); - EXPECT_STREQ("bar", thread_local.get().c_str()); + thread_local_string.set("bar"); + EXPECT_STREQ("bar", thread_local_string.get().c_str()); - String result; - RunFromThread(&RetrieveThreadLocalValue, make_pair(&thread_local, &result)); + std::string result; + RunFromThread(&RetrieveThreadLocalValue, + make_pair(&thread_local_string, &result)); EXPECT_STREQ("foo", result.c_str()); } @@ -1124,8 +1170,8 @@ class DestructorTracker { typedef ThreadLocal<DestructorTracker>* ThreadParam; -void CallThreadLocalGet(ThreadParam thread_local) { - thread_local->get(); +void CallThreadLocalGet(ThreadParam thread_local_param) { + thread_local_param->get(); } // Tests that when a ThreadLocal object dies in a thread, it destroys @@ -1135,19 +1181,19 @@ TEST(ThreadLocalTest, DestroysManagedObjectForOwnThreadWhenDying) { { // The next line default constructs a DestructorTracker object as - // the default value of objects managed by thread_local. - ThreadLocal<DestructorTracker> thread_local; + // the default value of objects managed by thread_local_tracker. + ThreadLocal<DestructorTracker> thread_local_tracker; ASSERT_EQ(1U, g_destroyed.size()); ASSERT_FALSE(g_destroyed[0]); // This creates another DestructorTracker object for the main thread. - thread_local.get(); + thread_local_tracker.get(); ASSERT_EQ(2U, g_destroyed.size()); ASSERT_FALSE(g_destroyed[0]); ASSERT_FALSE(g_destroyed[1]); } - // Now thread_local has died. It should have destroyed both the + // Now thread_local_tracker has died. It should have destroyed both the // default value shared by all threads and the value for the main // thread. ASSERT_EQ(2U, g_destroyed.size()); @@ -1164,14 +1210,14 @@ TEST(ThreadLocalTest, DestroysManagedObjectAtThreadExit) { { // The next line default constructs a DestructorTracker object as - // the default value of objects managed by thread_local. - ThreadLocal<DestructorTracker> thread_local; + // the default value of objects managed by thread_local_tracker. + ThreadLocal<DestructorTracker> thread_local_tracker; ASSERT_EQ(1U, g_destroyed.size()); ASSERT_FALSE(g_destroyed[0]); // This creates another DestructorTracker object in the new thread. ThreadWithParam<ThreadParam> thread( - &CallThreadLocalGet, &thread_local, NULL); + &CallThreadLocalGet, &thread_local_tracker, NULL); thread.Join(); // Now the new thread has exited. The per-thread object for it @@ -1181,7 +1227,7 @@ TEST(ThreadLocalTest, DestroysManagedObjectAtThreadExit) { ASSERT_TRUE(g_destroyed[1]); } - // Now thread_local has died. The default value should have been + // Now thread_local_tracker has died. The default value should have been // destroyed too. ASSERT_EQ(2U, g_destroyed.size()); EXPECT_TRUE(g_destroyed[0]); @@ -1191,13 +1237,14 @@ TEST(ThreadLocalTest, DestroysManagedObjectAtThreadExit) { } TEST(ThreadLocalTest, ThreadLocalMutationsAffectOnlyCurrentThread) { - ThreadLocal<String> thread_local; - thread_local.set("Foo"); - EXPECT_STREQ("Foo", thread_local.get().c_str()); - - String result; - RunFromThread(&RetrieveThreadLocalValue, make_pair(&thread_local, &result)); - EXPECT_TRUE(result.c_str() == NULL); + ThreadLocal<std::string> thread_local_string; + thread_local_string.set("Foo"); + EXPECT_STREQ("Foo", thread_local_string.get().c_str()); + + std::string result; + RunFromThread(&RetrieveThreadLocalValue, + make_pair(&thread_local_string, &result)); + EXPECT_TRUE(result.empty()); } #endif // GTEST_IS_THREADSAFE diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-printers_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-printers_test.cc similarity index 79% rename from resources/3rdparty/gtest-1.6.0/test/gtest-printers_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-printers_test.cc index 6292c7f23..c2beca7d8 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest-printers_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest-printers_test.cc @@ -197,13 +197,15 @@ using ::std::pair; using ::std::set; using ::std::vector; using ::testing::PrintToString; +using ::testing::internal::FormatForComparisonFailureMessage; +using ::testing::internal::ImplicitCast_; using ::testing::internal::NativeArray; using ::testing::internal::RE; using ::testing::internal::Strings; -using ::testing::internal::UniversalTersePrint; using ::testing::internal::UniversalPrint; -using ::testing::internal::UniversalTersePrintTupleFieldsToStrings; using ::testing::internal::UniversalPrinter; +using ::testing::internal::UniversalTersePrint; +using ::testing::internal::UniversalTersePrintTupleFieldsToStrings; using ::testing::internal::kReference; using ::testing::internal::string; @@ -212,10 +214,15 @@ using ::std::tr1::make_tuple; using ::std::tr1::tuple; #endif -#if _MSC_VER -// MSVC defines the following classes in the ::stdext namespace while -// gcc defines them in the :: namespace. Note that they are not part -// of the C++ standard. +// The hash_* classes are not part of the C++ standard. STLport +// defines them in namespace std. MSVC defines them in ::stdext. GCC +// defines them in ::. +#ifdef _STLP_HASH_MAP // We got <hash_map> from STLport. +using ::std::hash_map; +using ::std::hash_set; +using ::std::hash_multimap; +using ::std::hash_multiset; +#elif _MSC_VER using ::stdext::hash_map; using ::stdext::hash_set; using ::stdext::hash_multimap; @@ -612,17 +619,30 @@ TEST(PrintArrayTest, ConstArray) { EXPECT_EQ("{ false }", PrintArrayHelper(a)); } -// Char array. -TEST(PrintArrayTest, CharArray) { +// char array without terminating NUL. +TEST(PrintArrayTest, CharArrayWithNoTerminatingNul) { // Array a contains '\0' in the middle and doesn't end with '\0'. - char a[3] = { 'H', '\0', 'i' }; - EXPECT_EQ("\"H\\0i\"", PrintArrayHelper(a)); + char a[] = { 'H', '\0', 'i' }; + EXPECT_EQ("\"H\\0i\" (no terminating NUL)", PrintArrayHelper(a)); } -// Const char array. -TEST(PrintArrayTest, ConstCharArray) { - const char a[4] = "\0Hi"; - EXPECT_EQ("\"\\0Hi\\0\"", PrintArrayHelper(a)); +// const char array with terminating NUL. +TEST(PrintArrayTest, ConstCharArrayWithTerminatingNul) { + const char a[] = "\0Hi"; + EXPECT_EQ("\"\\0Hi\"", PrintArrayHelper(a)); +} + +// const wchar_t array without terminating NUL. +TEST(PrintArrayTest, WCharArrayWithNoTerminatingNul) { + // Array a contains '\0' in the middle and doesn't end with '\0'. + const wchar_t a[] = { L'H', L'\0', L'i' }; + EXPECT_EQ("L\"H\\0i\" (no terminating NUL)", PrintArrayHelper(a)); +} + +// wchar_t array with terminating NUL. +TEST(PrintArrayTest, WConstCharArrayWithTerminatingNul) { + const wchar_t a[] = L"\0Hi"; + EXPECT_EQ("L\"\\0Hi\"", PrintArrayHelper(a)); } // Array of objects. @@ -840,7 +860,7 @@ TEST(PrintStlContainerTest, HashMultiSet) { std::vector<int> numbers; for (size_t i = 0; i != result.length(); i++) { if (expected_pattern[i] == 'd') { - ASSERT_TRUE(isdigit(static_cast<unsigned char>(result[i])) != 0); + ASSERT_NE(isdigit(static_cast<unsigned char>(result[i])), 0); numbers.push_back(result[i] - '0'); } else { EXPECT_EQ(expected_pattern[i], result[i]) << " where result is " @@ -1002,9 +1022,12 @@ TEST(PrintTupleTest, VariousSizes) { EXPECT_EQ("(false, 2, 3, 4, true, 6, 7, true, 9)", Print(t9)); const char* const str = "8"; + // VC++ 2010's implementation of tuple of C++0x is deficient, requiring + // an explicit type cast of NULL to be used. tuple<bool, char, short, testing::internal::Int32, // NOLINT testing::internal::Int64, float, double, const char*, void*, string> - t10(false, 'a', 3, 4, 5, 1.5F, -2.5, str, NULL, "10"); + t10(false, 'a', 3, 4, 5, 1.5F, -2.5, str, + ImplicitCast_<void*>(NULL), "10"); EXPECT_EQ("(false, 'a' (97, 0x61), 3, 4, 5, 1.5, -2.5, " + PrintPointer(str) + " pointing to \"8\", NULL, \"10\")", Print(t10)); @@ -1182,6 +1205,207 @@ TEST(PrintReferenceTest, HandlesMemberVariablePointer) { "@" + PrintPointer(&p) + " " + Print(sizeof(p)) + "-byte object ")); } +// Tests that FormatForComparisonFailureMessage(), which is used to print +// an operand in a comparison assertion (e.g. ASSERT_EQ) when the assertion +// fails, formats the operand in the desired way. + +// scalar +TEST(FormatForComparisonFailureMessageTest, WorksForScalar) { + EXPECT_STREQ("123", + FormatForComparisonFailureMessage(123, 124).c_str()); +} + +// non-char pointer +TEST(FormatForComparisonFailureMessageTest, WorksForNonCharPointer) { + int n = 0; + EXPECT_EQ(PrintPointer(&n), + FormatForComparisonFailureMessage(&n, &n).c_str()); +} + +// non-char array +TEST(FormatForComparisonFailureMessageTest, FormatsNonCharArrayAsPointer) { + // In expression 'array == x', 'array' is compared by pointer. + // Therefore we want to print an array operand as a pointer. + int n[] = { 1, 2, 3 }; + EXPECT_EQ(PrintPointer(n), + FormatForComparisonFailureMessage(n, n).c_str()); +} + +// Tests formatting a char pointer when it's compared with another pointer. +// In this case we want to print it as a raw pointer, as the comparision is by +// pointer. + +// char pointer vs pointer +TEST(FormatForComparisonFailureMessageTest, WorksForCharPointerVsPointer) { + // In expression 'p == x', where 'p' and 'x' are (const or not) char + // pointers, the operands are compared by pointer. Therefore we + // want to print 'p' as a pointer instead of a C string (we don't + // even know if it's supposed to point to a valid C string). + + // const char* + const char* s = "hello"; + EXPECT_EQ(PrintPointer(s), + FormatForComparisonFailureMessage(s, s).c_str()); + + // char* + char ch = 'a'; + EXPECT_EQ(PrintPointer(&ch), + FormatForComparisonFailureMessage(&ch, &ch).c_str()); +} + +// wchar_t pointer vs pointer +TEST(FormatForComparisonFailureMessageTest, WorksForWCharPointerVsPointer) { + // In expression 'p == x', where 'p' and 'x' are (const or not) char + // pointers, the operands are compared by pointer. Therefore we + // want to print 'p' as a pointer instead of a wide C string (we don't + // even know if it's supposed to point to a valid wide C string). + + // const wchar_t* + const wchar_t* s = L"hello"; + EXPECT_EQ(PrintPointer(s), + FormatForComparisonFailureMessage(s, s).c_str()); + + // wchar_t* + wchar_t ch = L'a'; + EXPECT_EQ(PrintPointer(&ch), + FormatForComparisonFailureMessage(&ch, &ch).c_str()); +} + +// Tests formatting a char pointer when it's compared to a string object. +// In this case we want to print the char pointer as a C string. + +#if GTEST_HAS_GLOBAL_STRING +// char pointer vs ::string +TEST(FormatForComparisonFailureMessageTest, WorksForCharPointerVsString) { + const char* s = "hello \"world"; + EXPECT_STREQ("\"hello \\\"world\"", // The string content should be escaped. + FormatForComparisonFailureMessage(s, ::string()).c_str()); + + // char* + char str[] = "hi\1"; + char* p = str; + EXPECT_STREQ("\"hi\\x1\"", // The string content should be escaped. + FormatForComparisonFailureMessage(p, ::string()).c_str()); +} +#endif + +// char pointer vs std::string +TEST(FormatForComparisonFailureMessageTest, WorksForCharPointerVsStdString) { + const char* s = "hello \"world"; + EXPECT_STREQ("\"hello \\\"world\"", // The string content should be escaped. + FormatForComparisonFailureMessage(s, ::std::string()).c_str()); + + // char* + char str[] = "hi\1"; + char* p = str; + EXPECT_STREQ("\"hi\\x1\"", // The string content should be escaped. + FormatForComparisonFailureMessage(p, ::std::string()).c_str()); +} + +#if GTEST_HAS_GLOBAL_WSTRING +// wchar_t pointer vs ::wstring +TEST(FormatForComparisonFailureMessageTest, WorksForWCharPointerVsWString) { + const wchar_t* s = L"hi \"world"; + EXPECT_STREQ("L\"hi \\\"world\"", // The string content should be escaped. + FormatForComparisonFailureMessage(s, ::wstring()).c_str()); + + // wchar_t* + wchar_t str[] = L"hi\1"; + wchar_t* p = str; + EXPECT_STREQ("L\"hi\\x1\"", // The string content should be escaped. + FormatForComparisonFailureMessage(p, ::wstring()).c_str()); +} +#endif + +#if GTEST_HAS_STD_WSTRING +// wchar_t pointer vs std::wstring +TEST(FormatForComparisonFailureMessageTest, WorksForWCharPointerVsStdWString) { + const wchar_t* s = L"hi \"world"; + EXPECT_STREQ("L\"hi \\\"world\"", // The string content should be escaped. + FormatForComparisonFailureMessage(s, ::std::wstring()).c_str()); + + // wchar_t* + wchar_t str[] = L"hi\1"; + wchar_t* p = str; + EXPECT_STREQ("L\"hi\\x1\"", // The string content should be escaped. + FormatForComparisonFailureMessage(p, ::std::wstring()).c_str()); +} +#endif + +// Tests formatting a char array when it's compared with a pointer or array. +// In this case we want to print the array as a row pointer, as the comparison +// is by pointer. + +// char array vs pointer +TEST(FormatForComparisonFailureMessageTest, WorksForCharArrayVsPointer) { + char str[] = "hi \"world\""; + char* p = NULL; + EXPECT_EQ(PrintPointer(str), + FormatForComparisonFailureMessage(str, p).c_str()); +} + +// char array vs char array +TEST(FormatForComparisonFailureMessageTest, WorksForCharArrayVsCharArray) { + const char str[] = "hi \"world\""; + EXPECT_EQ(PrintPointer(str), + FormatForComparisonFailureMessage(str, str).c_str()); +} + +// wchar_t array vs pointer +TEST(FormatForComparisonFailureMessageTest, WorksForWCharArrayVsPointer) { + wchar_t str[] = L"hi \"world\""; + wchar_t* p = NULL; + EXPECT_EQ(PrintPointer(str), + FormatForComparisonFailureMessage(str, p).c_str()); +} + +// wchar_t array vs wchar_t array +TEST(FormatForComparisonFailureMessageTest, WorksForWCharArrayVsWCharArray) { + const wchar_t str[] = L"hi \"world\""; + EXPECT_EQ(PrintPointer(str), + FormatForComparisonFailureMessage(str, str).c_str()); +} + +// Tests formatting a char array when it's compared with a string object. +// In this case we want to print the array as a C string. + +#if GTEST_HAS_GLOBAL_STRING +// char array vs string +TEST(FormatForComparisonFailureMessageTest, WorksForCharArrayVsString) { + const char str[] = "hi \"w\0rld\""; + EXPECT_STREQ("\"hi \\\"w\"", // The content should be escaped. + // Embedded NUL terminates the string. + FormatForComparisonFailureMessage(str, ::string()).c_str()); +} +#endif + +// char array vs std::string +TEST(FormatForComparisonFailureMessageTest, WorksForCharArrayVsStdString) { + const char str[] = "hi \"world\""; + EXPECT_STREQ("\"hi \\\"world\\\"\"", // The content should be escaped. + FormatForComparisonFailureMessage(str, ::std::string()).c_str()); +} + +#if GTEST_HAS_GLOBAL_WSTRING +// wchar_t array vs wstring +TEST(FormatForComparisonFailureMessageTest, WorksForWCharArrayVsWString) { + const wchar_t str[] = L"hi \"world\""; + EXPECT_STREQ("L\"hi \\\"world\\\"\"", // The content should be escaped. + FormatForComparisonFailureMessage(str, ::wstring()).c_str()); +} +#endif + +#if GTEST_HAS_STD_WSTRING +// wchar_t array vs std::wstring +TEST(FormatForComparisonFailureMessageTest, WorksForWCharArrayVsStdWString) { + const wchar_t str[] = L"hi \"w\0rld\""; + EXPECT_STREQ( + "L\"hi \\\"w\"", // The content should be escaped. + // Embedded NUL terminates the string. + FormatForComparisonFailureMessage(str, ::std::wstring()).c_str()); +} +#endif + // Useful for testing PrintToString(). We cannot use EXPECT_EQ() // there as its implementation uses PrintToString(). The caller must // ensure that 'value' has no side effect. @@ -1204,11 +1428,35 @@ TEST(PrintToStringTest, WorksForPointerToNonConstChar) { EXPECT_PRINT_TO_STRING_(p, "\"hello\""); } +TEST(PrintToStringTest, EscapesForPointerToConstChar) { + const char* p = "hello\n"; + EXPECT_PRINT_TO_STRING_(p, "\"hello\\n\""); +} + +TEST(PrintToStringTest, EscapesForPointerToNonConstChar) { + char s[] = "hello\1"; + char* p = s; + EXPECT_PRINT_TO_STRING_(p, "\"hello\\x1\""); +} + TEST(PrintToStringTest, WorksForArray) { int n[3] = { 1, 2, 3 }; EXPECT_PRINT_TO_STRING_(n, "{ 1, 2, 3 }"); } +TEST(PrintToStringTest, WorksForCharArray) { + char s[] = "hello"; + EXPECT_PRINT_TO_STRING_(s, "\"hello\""); +} + +TEST(PrintToStringTest, WorksForCharArrayWithEmbeddedNul) { + const char str_with_nul[] = "hello\0 world"; + EXPECT_PRINT_TO_STRING_(str_with_nul, "\"hello\\0 world\""); + + char mutable_str_with_nul[] = "hello\0 world"; + EXPECT_PRINT_TO_STRING_(mutable_str_with_nul, "\"hello\\0 world\""); +} + #undef EXPECT_PRINT_TO_STRING_ TEST(UniversalTersePrintTest, WorksForNonReference) { @@ -1271,6 +1519,17 @@ TEST(UniversalPrintTest, WorksForCString) { EXPECT_EQ("NULL", ss3.str()); } +TEST(UniversalPrintTest, WorksForCharArray) { + const char str[] = "\"Line\0 1\"\nLine 2"; + ::std::stringstream ss1; + UniversalPrint(str, &ss1); + EXPECT_EQ("\"\\\"Line\\0 1\\\"\\nLine 2\"", ss1.str()); + + const char mutable_str[] = "\"Line\0 1\"\nLine 2"; + ::std::stringstream ss2; + UniversalPrint(mutable_str, &ss2); + EXPECT_EQ("\"\\\"Line\\0 1\\\"\\nLine 2\"", ss2.str()); +} #if GTEST_HAS_TR1_TUPLE diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-test-part_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-test-part_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest-test-part_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-test-part_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-tuple_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-tuple_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest-tuple_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-tuple_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-typed-test2_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-typed-test2_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest-typed-test2_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-typed-test2_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-typed-test_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-typed-test_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest-typed-test_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-typed-test_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-typed-test_test.h b/resources/3rdparty/gtest-1.7.0/test/gtest-typed-test_test.h similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest-typed-test_test.h rename to resources/3rdparty/gtest-1.7.0/test/gtest-typed-test_test.h diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest-unittest-api_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest-unittest-api_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest-unittest-api_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest-unittest-api_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_all_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_all_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_all_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_all_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_break_on_failure_unittest.py b/resources/3rdparty/gtest-1.7.0/test/gtest_break_on_failure_unittest.py similarity index 94% rename from resources/3rdparty/gtest-1.6.0/test/gtest_break_on_failure_unittest.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_break_on_failure_unittest.py index c81918331..78f3e0f53 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_break_on_failure_unittest.py +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_break_on_failure_unittest.py @@ -66,21 +66,15 @@ EXE_PATH = gtest_test_utils.GetTestExecutablePath( 'gtest_break_on_failure_unittest_') -# Utilities. - - -environ = os.environ.copy() - - -def SetEnvVar(env_var, value): - """Sets an environment variable to a given value; unsets it when the - given value is None. - """ - - if value is not None: - environ[env_var] = value - elif env_var in environ: - del environ[env_var] +environ = gtest_test_utils.environ +SetEnvVar = gtest_test_utils.SetEnvVar + +# Tests in this file run a Google-Test-based test program and expect it +# to terminate prematurely. Therefore they are incompatible with +# the premature-exit-file protocol by design. Unset the +# premature-exit filepath to prevent Google Test from creating +# the file. +SetEnvVar(gtest_test_utils.PREMATURE_EXIT_FILE_ENV_VAR, None) def Run(command): diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_break_on_failure_unittest_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_break_on_failure_unittest_.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_break_on_failure_unittest_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_break_on_failure_unittest_.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_catch_exceptions_test.py b/resources/3rdparty/gtest-1.7.0/test/gtest_catch_exceptions_test.py similarity index 87% rename from resources/3rdparty/gtest-1.6.0/test/gtest_catch_exceptions_test.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_catch_exceptions_test.py index 7fd7dbad6..e6fc22fd1 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_catch_exceptions_test.py +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_catch_exceptions_test.py @@ -57,14 +57,27 @@ EX_EXE_PATH = gtest_test_utils.GetTestExecutablePath( EXE_PATH = gtest_test_utils.GetTestExecutablePath( 'gtest_catch_exceptions_no_ex_test_') -TEST_LIST = gtest_test_utils.Subprocess([EXE_PATH, LIST_TESTS_FLAG]).output +environ = gtest_test_utils.environ +SetEnvVar = gtest_test_utils.SetEnvVar + +# Tests in this file run a Google-Test-based test program and expect it +# to terminate prematurely. Therefore they are incompatible with +# the premature-exit-file protocol by design. Unset the +# premature-exit filepath to prevent Google Test from creating +# the file. +SetEnvVar(gtest_test_utils.PREMATURE_EXIT_FILE_ENV_VAR, None) + +TEST_LIST = gtest_test_utils.Subprocess( + [EXE_PATH, LIST_TESTS_FLAG], env=environ).output SUPPORTS_SEH_EXCEPTIONS = 'ThrowsSehException' in TEST_LIST if SUPPORTS_SEH_EXCEPTIONS: - BINARY_OUTPUT = gtest_test_utils.Subprocess([EXE_PATH]).output + BINARY_OUTPUT = gtest_test_utils.Subprocess([EXE_PATH], env=environ).output + +EX_BINARY_OUTPUT = gtest_test_utils.Subprocess( + [EX_EXE_PATH], env=environ).output -EX_BINARY_OUTPUT = gtest_test_utils.Subprocess([EX_EXE_PATH]).output # The tests. if SUPPORTS_SEH_EXCEPTIONS: @@ -117,14 +130,17 @@ class CatchCxxExceptionsTest(gtest_test_utils.TestCase): '"CxxExceptionInConstructorTest" (no quotes) ' 'appears on the same line as words "called unexpectedly"') - def testCatchesCxxExceptionsInFixtureDestructor(self): - self.assert_('C++ exception with description ' - '"Standard C++ exception" thrown ' - 'in the test fixture\'s destructor' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInDestructorTest::TearDownTestCase() ' - 'called as expected.' - in EX_BINARY_OUTPUT) + if ('CxxExceptionInDestructorTest.ThrowsExceptionInDestructor' in + EX_BINARY_OUTPUT): + + def testCatchesCxxExceptionsInFixtureDestructor(self): + self.assert_('C++ exception with description ' + '"Standard C++ exception" thrown ' + 'in the test fixture\'s destructor' + in EX_BINARY_OUTPUT) + self.assert_('CxxExceptionInDestructorTest::TearDownTestCase() ' + 'called as expected.' + in EX_BINARY_OUTPUT) def testCatchesCxxExceptionsInSetUpTestCase(self): self.assert_('C++ exception with description "Standard C++ exception"' @@ -209,7 +225,8 @@ class CatchCxxExceptionsTest(gtest_test_utils.TestCase): uncaught_exceptions_ex_binary_output = gtest_test_utils.Subprocess( [EX_EXE_PATH, NO_CATCH_EXCEPTIONS_FLAG, - FITLER_OUT_SEH_TESTS_FLAG]).output + FITLER_OUT_SEH_TESTS_FLAG], + env=environ).output self.assert_('Unhandled C++ exception terminating the program' in uncaught_exceptions_ex_binary_output) diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_catch_exceptions_test_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_catch_exceptions_test_.cc similarity index 98% rename from resources/3rdparty/gtest-1.6.0/test/gtest_catch_exceptions_test_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_catch_exceptions_test_.cc index a35103f07..d0fc82c99 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_catch_exceptions_test_.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_catch_exceptions_test_.cc @@ -137,6 +137,8 @@ TEST_F(CxxExceptionInConstructorTest, ThrowsExceptionInConstructor) { << "called unexpectedly."; } +// Exceptions in destructors are not supported in C++11. +#if !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L class CxxExceptionInDestructorTest : public Test { public: static void TearDownTestCase() { @@ -153,6 +155,7 @@ class CxxExceptionInDestructorTest : public Test { }; TEST_F(CxxExceptionInDestructorTest, ThrowsExceptionInDestructor) {} +#endif // C++11 mode class CxxExceptionInSetUpTestCaseTest : public Test { public: diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_color_test.py b/resources/3rdparty/gtest-1.7.0/test/gtest_color_test.py similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_color_test.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_color_test.py diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_color_test_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_color_test_.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_color_test_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_color_test_.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_env_var_test.py b/resources/3rdparty/gtest-1.7.0/test/gtest_env_var_test.py similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_env_var_test.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_env_var_test.py diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_env_var_test_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_env_var_test_.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_env_var_test_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_env_var_test_.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_environment_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_environment_test.cc similarity index 99% rename from resources/3rdparty/gtest-1.6.0/test/gtest_environment_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_environment_test.cc index ec9aa2cda..3cff19e70 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_environment_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_environment_test.cc @@ -96,6 +96,7 @@ class MyEnvironment : public testing::Environment { // Was TearDown() run? bool tear_down_was_run() const { return tear_down_was_run_; } + private: FailureType failure_in_set_up_; bool set_up_was_run_; diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_filter_unittest.py b/resources/3rdparty/gtest-1.7.0/test/gtest_filter_unittest.py similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_filter_unittest.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_filter_unittest.py diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_filter_unittest_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_filter_unittest_.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_filter_unittest_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_filter_unittest_.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_help_test.py b/resources/3rdparty/gtest-1.7.0/test/gtest_help_test.py similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_help_test.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_help_test.py diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_help_test_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_help_test_.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_help_test_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_help_test_.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_list_tests_unittest.py b/resources/3rdparty/gtest-1.7.0/test/gtest_list_tests_unittest.py similarity index 66% rename from resources/3rdparty/gtest-1.6.0/test/gtest_list_tests_unittest.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_list_tests_unittest.py index ce8c3ef05..925b09d9c 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_list_tests_unittest.py +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_list_tests_unittest.py @@ -40,6 +40,7 @@ Google Test) the command line flags. __author__ = 'phanna@google.com (Patrick Hanna)' import gtest_test_utils +import re # Constants. @@ -52,38 +53,63 @@ EXE_PATH = gtest_test_utils.GetTestExecutablePath('gtest_list_tests_unittest_') # The expected output when running gtest_list_tests_unittest_ with # --gtest_list_tests -EXPECTED_OUTPUT_NO_FILTER = """FooDeathTest. +EXPECTED_OUTPUT_NO_FILTER_RE = re.compile(r"""FooDeathTest\. Test1 -Foo. +Foo\. Bar1 Bar2 DISABLED_Bar3 -Abc. +Abc\. Xyz Def -FooBar. +FooBar\. Baz -FooTest. +FooTest\. Test1 DISABLED_Test2 Test3 -""" +TypedTest/0\. # TypeParam = (VeryLo{245}|class VeryLo{239})\.\.\. + TestA + TestB +TypedTest/1\. # TypeParam = int\s*\* + TestA + TestB +TypedTest/2\. # TypeParam = .*MyArray<bool,\s*42> + TestA + TestB +My/TypeParamTest/0\. # TypeParam = (VeryLo{245}|class VeryLo{239})\.\.\. + TestA + TestB +My/TypeParamTest/1\. # TypeParam = int\s*\* + TestA + TestB +My/TypeParamTest/2\. # TypeParam = .*MyArray<bool,\s*42> + TestA + TestB +MyInstantiation/ValueParamTest\. + TestA/0 # GetParam\(\) = one line + TestA/1 # GetParam\(\) = two\\nlines + TestA/2 # GetParam\(\) = a very\\nlo{241}\.\.\. + TestB/0 # GetParam\(\) = one line + TestB/1 # GetParam\(\) = two\\nlines + TestB/2 # GetParam\(\) = a very\\nlo{241}\.\.\. +""") # The expected output when running gtest_list_tests_unittest_ with # --gtest_list_tests and --gtest_filter=Foo*. -EXPECTED_OUTPUT_FILTER_FOO = """FooDeathTest. +EXPECTED_OUTPUT_FILTER_FOO_RE = re.compile(r"""FooDeathTest\. Test1 -Foo. +Foo\. Bar1 Bar2 DISABLED_Bar3 -FooBar. +FooBar\. Baz -FooTest. +FooTest\. Test1 DISABLED_Test2 Test3 -""" +""") # Utilities. @@ -100,19 +126,18 @@ def Run(args): class GTestListTestsUnitTest(gtest_test_utils.TestCase): """Tests using the --gtest_list_tests flag to list all tests.""" - def RunAndVerify(self, flag_value, expected_output, other_flag): + def RunAndVerify(self, flag_value, expected_output_re, other_flag): """Runs gtest_list_tests_unittest_ and verifies that it prints the correct tests. Args: - flag_value: value of the --gtest_list_tests flag; - None if the flag should not be present. - - expected_output: the expected output after running command; - - other_flag: a different flag to be passed to command - along with gtest_list_tests; - None if the flag should not be present. + flag_value: value of the --gtest_list_tests flag; + None if the flag should not be present. + expected_output_re: regular expression that matches the expected + output after running command; + other_flag: a different flag to be passed to command + along with gtest_list_tests; + None if the flag should not be present. """ if flag_value is None: @@ -132,36 +157,41 @@ class GTestListTestsUnitTest(gtest_test_utils.TestCase): output = Run(args) - msg = ('when %s is %s, the output of "%s" is "%s".' % - (LIST_TESTS_FLAG, flag_expression, ' '.join(args), output)) - - if expected_output is not None: - self.assert_(output == expected_output, msg) + if expected_output_re: + self.assert_( + expected_output_re.match(output), + ('when %s is %s, the output of "%s" is "%s",\n' + 'which does not match regex "%s"' % + (LIST_TESTS_FLAG, flag_expression, ' '.join(args), output, + expected_output_re.pattern))) else: - self.assert_(output != EXPECTED_OUTPUT_NO_FILTER, msg) + self.assert_( + not EXPECTED_OUTPUT_NO_FILTER_RE.match(output), + ('when %s is %s, the output of "%s" is "%s"'% + (LIST_TESTS_FLAG, flag_expression, ' '.join(args), output))) def testDefaultBehavior(self): """Tests the behavior of the default mode.""" self.RunAndVerify(flag_value=None, - expected_output=None, + expected_output_re=None, other_flag=None) def testFlag(self): """Tests using the --gtest_list_tests flag.""" self.RunAndVerify(flag_value='0', - expected_output=None, + expected_output_re=None, other_flag=None) self.RunAndVerify(flag_value='1', - expected_output=EXPECTED_OUTPUT_NO_FILTER, + expected_output_re=EXPECTED_OUTPUT_NO_FILTER_RE, other_flag=None) def testOverrideNonFilterFlags(self): """Tests that --gtest_list_tests overrides the non-filter flags.""" self.RunAndVerify(flag_value='1', - expected_output=EXPECTED_OUTPUT_NO_FILTER, + expected_output_re=EXPECTED_OUTPUT_NO_FILTER_RE, other_flag='--gtest_break_on_failure') def testWithFilterFlags(self): @@ -169,7 +199,7 @@ class GTestListTestsUnitTest(gtest_test_utils.TestCase): --gtest_filter flag.""" self.RunAndVerify(flag_value='1', - expected_output=EXPECTED_OUTPUT_FILTER_FOO, + expected_output_re=EXPECTED_OUTPUT_FILTER_FOO_RE, other_flag='--gtest_filter=Foo*') diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_list_tests_unittest_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_list_tests_unittest_.cc similarity index 51% rename from resources/3rdparty/gtest-1.6.0/test/gtest_list_tests_unittest_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_list_tests_unittest_.cc index 2b1d0780b..907c176ba 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_list_tests_unittest_.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_list_tests_unittest_.cc @@ -40,8 +40,6 @@ #include "gtest/gtest.h" -namespace { - // Several different test cases and tests that will be listed. TEST(Foo, Bar1) { } @@ -76,7 +74,81 @@ TEST_F(FooTest, Test3) { TEST(FooDeathTest, Test1) { } -} // namespace +// A group of value-parameterized tests. + +class MyType { + public: + explicit MyType(const std::string& a_value) : value_(a_value) {} + + const std::string& value() const { return value_; } + + private: + std::string value_; +}; + +// Teaches Google Test how to print a MyType. +void PrintTo(const MyType& x, std::ostream* os) { + *os << x.value(); +} + +class ValueParamTest : public testing::TestWithParam<MyType> { +}; + +TEST_P(ValueParamTest, TestA) { +} + +TEST_P(ValueParamTest, TestB) { +} + +INSTANTIATE_TEST_CASE_P( + MyInstantiation, ValueParamTest, + testing::Values(MyType("one line"), + MyType("two\nlines"), + MyType("a very\nloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong line"))); // NOLINT + +// A group of typed tests. + +// A deliberately long type name for testing the line-truncating +// behavior when printing a type parameter. +class VeryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooogName { // NOLINT +}; + +template <typename T> +class TypedTest : public testing::Test { +}; + +template <typename T, int kSize> +class MyArray { +}; + +typedef testing::Types<VeryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooogName, // NOLINT + int*, MyArray<bool, 42> > MyTypes; + +TYPED_TEST_CASE(TypedTest, MyTypes); + +TYPED_TEST(TypedTest, TestA) { +} + +TYPED_TEST(TypedTest, TestB) { +} + +// A group of type-parameterized tests. + +template <typename T> +class TypeParamTest : public testing::Test { +}; + +TYPED_TEST_CASE_P(TypeParamTest); + +TYPED_TEST_P(TypeParamTest, TestA) { +} + +TYPED_TEST_P(TypeParamTest, TestB) { +} + +REGISTER_TYPED_TEST_CASE_P(TypeParamTest, TestA, TestB); + +INSTANTIATE_TYPED_TEST_CASE_P(My, TypeParamTest, MyTypes); int main(int argc, char **argv) { ::testing::InitGoogleTest(&argc, argv); diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_main_unittest.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_main_unittest.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_main_unittest.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_main_unittest.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_no_test_unittest.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_no_test_unittest.cc similarity index 99% rename from resources/3rdparty/gtest-1.6.0/test/gtest_no_test_unittest.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_no_test_unittest.cc index e3a85f12a..292599af8 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_no_test_unittest.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_no_test_unittest.cc @@ -34,7 +34,6 @@ #include "gtest/gtest.h" - int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_output_test.py b/resources/3rdparty/gtest-1.7.0/test/gtest_output_test.py similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_output_test.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_output_test.py diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_output_test_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_output_test_.cc similarity index 97% rename from resources/3rdparty/gtest-1.6.0/test/gtest_output_test_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_output_test_.cc index 13dbec477..07ab633d4 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_output_test_.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_output_test_.cc @@ -27,8 +27,11 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -// A unit test for Google Test itself. This verifies that the basic -// constructs of Google Test work. +// The purpose of this file is to generate Google Test output under +// various conditions. The output will then be verified by +// gtest_output_test.py to ensure that Google Test generates the +// desired messages. Therefore, most tests in this file are MEANT TO +// FAIL. // // Author: wan@google.com (Zhanyong Wan) @@ -55,7 +58,6 @@ using testing::internal::ThreadWithParam; #endif namespace posix = ::testing::internal::posix; -using testing::internal::String; using testing::internal::scoped_ptr; // Tests catching fatal failures. @@ -101,6 +103,16 @@ INSTANTIATE_TEST_CASE_P(PrintingFailingParams, FailingParamTest, testing::Values(2)); +static const char kGoldenString[] = "\"Line\0 1\"\nLine 2"; + +TEST(NonfatalFailureTest, EscapesStringOperands) { + std::string actual = "actual \"string\""; + EXPECT_EQ(kGoldenString, actual); + + const char* golden = kGoldenString; + EXPECT_EQ(golden, actual); +} + // Tests catching a fatal failure in a subroutine. TEST(FatalFailureTest, FatalFailureInSubroutine) { printf("(expecting a failure that x should be 1)\n"); @@ -221,13 +233,13 @@ TEST(SCOPED_TRACETest, CanBeRepeated) { { SCOPED_TRACE("C"); - ADD_FAILURE() << "This failure is expected, and should contain " - << "trace point A, B, and C."; + ADD_FAILURE() << "This failure is expected, and should " + << "contain trace point A, B, and C."; } SCOPED_TRACE("D"); - ADD_FAILURE() << "This failure is expected, and should contain " - << "trace point A, B, and D."; + ADD_FAILURE() << "This failure is expected, and should " + << "contain trace point A, B, and D."; } #if GTEST_IS_THREADSAFE @@ -378,6 +390,7 @@ class FatalFailureInFixtureConstructorTest : public testing::Test { << "We should never get here, as the test fixture c'tor " << "had a fatal failure."; } + private: void Init() { FAIL() << "Expected failure #1, in the test fixture c'tor."; @@ -991,7 +1004,8 @@ int main(int argc, char **argv) { // for it. testing::InitGoogleTest(&argc, argv); if (argc >= 2 && - String(argv[1]) == "--gtest_internal_skip_environment_and_ad_hoc_tests") + (std::string(argv[1]) == + "--gtest_internal_skip_environment_and_ad_hoc_tests")) GTEST_FLAG(internal_skip_environment_and_ad_hoc_tests) = true; #if GTEST_HAS_DEATH_TEST diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_output_test_golden_lin.txt b/resources/3rdparty/gtest-1.7.0/test/gtest_output_test_golden_lin.txt similarity index 97% rename from resources/3rdparty/gtest-1.6.0/test/gtest_output_test_golden_lin.txt rename to resources/3rdparty/gtest-1.7.0/test/gtest_output_test_golden_lin.txt index a1d342d9c..960eedce2 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_output_test_golden_lin.txt +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_output_test_golden_lin.txt @@ -7,7 +7,7 @@ Expected: true gtest_output_test_.cc:#: Failure Value of: 3 Expected: 2 -[0;32m[==========] [mRunning 62 tests from 27 test cases. +[0;32m[==========] [mRunning 63 tests from 28 test cases. [0;32m[----------] [mGlobal test environment set-up. FooEnvironment::SetUp() called. BarEnvironment::SetUp() called. @@ -31,6 +31,19 @@ BarEnvironment::SetUp() called. [0;32m[ OK ] [mPassingTest.PassingTest1 [0;32m[ RUN ] [mPassingTest.PassingTest2 [0;32m[ OK ] [mPassingTest.PassingTest2 +[0;32m[----------] [m1 test from NonfatalFailureTest +[0;32m[ RUN ] [mNonfatalFailureTest.EscapesStringOperands +gtest_output_test_.cc:#: Failure +Value of: actual + Actual: "actual \"string\"" +Expected: kGoldenString +Which is: "\"Line" +gtest_output_test_.cc:#: Failure +Value of: actual + Actual: "actual \"string\"" +Expected: golden +Which is: "\"Line" +[0;31m[ FAILED ] [mNonfatalFailureTest.EscapesStringOperands [0;32m[----------] [m3 tests from FatalFailureTest [0;32m[ RUN ] [mFatalFailureTest.FatalFailureInSubroutine (expecting a failure that x should be 1) @@ -586,9 +599,10 @@ FooEnvironment::TearDown() called. gtest_output_test_.cc:#: Failure Failed Expected fatal failure. -[0;32m[==========] [m62 tests from 27 test cases ran. +[0;32m[==========] [m63 tests from 28 test cases ran. [0;32m[ PASSED ] [m21 tests. -[0;31m[ FAILED ] [m41 tests, listed below: +[0;31m[ FAILED ] [m42 tests, listed below: +[0;31m[ FAILED ] [mNonfatalFailureTest.EscapesStringOperands [0;31m[ FAILED ] [mFatalFailureTest.FatalFailureInSubroutine [0;31m[ FAILED ] [mFatalFailureTest.FatalFailureInNestedSubroutine [0;31m[ FAILED ] [mFatalFailureTest.NonfatalFailureInSubroutine @@ -631,7 +645,7 @@ Expected fatal failure. [0;31m[ FAILED ] [mScopedFakeTestPartResultReporterTest.InterceptOnlyCurrentThread [0;31m[ FAILED ] [mPrintingFailingParams/FailingParamTest.Fails/0, where GetParam() = 2 -41 FAILED TESTS +42 FAILED TESTS [0;33m YOU HAVE 1 DISABLED TEST [mNote: Google Test filter = FatalFailureTest.*:LoggingTest.* @@ -685,8 +699,6 @@ Expected: (3) >= (a[i]), actual: 3 vs 6 [ FAILED ] LoggingTest.InterleavingLoggingAndAssertions 4 FAILED TESTS - YOU HAVE 1 DISABLED TEST - Note: Google Test filter = *DISABLED_* [==========] Running 1 test from 1 test case. [----------] Global test environment set-up. @@ -706,6 +718,3 @@ Note: This is test shard 2 of 2. [----------] Global test environment tear-down [==========] 1 test from 1 test case ran. [ PASSED ] 1 test. - - YOU HAVE 1 DISABLED TEST - diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_pred_impl_unittest.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_pred_impl_unittest.cc similarity index 99% rename from resources/3rdparty/gtest-1.6.0/test/gtest_pred_impl_unittest.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_pred_impl_unittest.cc index 35dc9bcf3..a84eff860 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_pred_impl_unittest.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_pred_impl_unittest.cc @@ -27,7 +27,7 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// This file is AUTOMATICALLY GENERATED on 09/24/2010 by command +// This file is AUTOMATICALLY GENERATED on 10/31/2011 by command // 'gen_gtest_pred_impl.py 5'. DO NOT EDIT BY HAND! // Regression test for gtest_pred_impl.h diff --git a/resources/3rdparty/gtest-1.7.0/test/gtest_premature_exit_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_premature_exit_test.cc new file mode 100644 index 000000000..f6b6be9ae --- /dev/null +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_premature_exit_test.cc @@ -0,0 +1,141 @@ +// Copyright 2013, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Author: wan@google.com (Zhanyong Wan) +// +// Tests that Google Test manipulates the premature-exit-detection +// file correctly. + +#include <stdio.h> + +#include "gtest/gtest.h" + +using ::testing::InitGoogleTest; +using ::testing::Test; +using ::testing::internal::posix::GetEnv; +using ::testing::internal::posix::Stat; +using ::testing::internal::posix::StatStruct; + +namespace { + +// Is the TEST_PREMATURE_EXIT_FILE environment variable expected to be +// set? +const bool kTestPrematureExitFileEnvVarShouldBeSet = false; + +class PrematureExitTest : public Test { + public: + // Returns true iff the given file exists. + static bool FileExists(const char* filepath) { + StatStruct stat; + return Stat(filepath, &stat) == 0; + } + + protected: + PrematureExitTest() { + premature_exit_file_path_ = GetEnv("TEST_PREMATURE_EXIT_FILE"); + + // Normalize NULL to "" for ease of handling. + if (premature_exit_file_path_ == NULL) { + premature_exit_file_path_ = ""; + } + } + + // Returns true iff the premature-exit file exists. + bool PrematureExitFileExists() const { + return FileExists(premature_exit_file_path_); + } + + const char* premature_exit_file_path_; +}; + +typedef PrematureExitTest PrematureExitDeathTest; + +// Tests that: +// - the premature-exit file exists during the execution of a +// death test (EXPECT_DEATH*), and +// - a death test doesn't interfere with the main test process's +// handling of the premature-exit file. +TEST_F(PrematureExitDeathTest, FileExistsDuringExecutionOfDeathTest) { + if (*premature_exit_file_path_ == '\0') { + return; + } + + EXPECT_DEATH_IF_SUPPORTED({ + // If the file exists, crash the process such that the main test + // process will catch the (expected) crash and report a success; + // otherwise don't crash, which will cause the main test process + // to report that the death test has failed. + if (PrematureExitFileExists()) { + exit(1); + } + }, ""); +} + +// Tests that TEST_PREMATURE_EXIT_FILE is set where it's expected to +// be set. +TEST_F(PrematureExitTest, TestPrematureExitFileEnvVarIsSet) { + if (kTestPrematureExitFileEnvVarShouldBeSet) { + const char* const filepath = GetEnv("TEST_PREMATURE_EXIT_FILE"); + ASSERT_TRUE(filepath != NULL); + ASSERT_NE(*filepath, '\0'); + } +} + +// Tests that the premature-exit file exists during the execution of a +// normal (non-death) test. +TEST_F(PrematureExitTest, PrematureExitFileExistsDuringTestExecution) { + if (*premature_exit_file_path_ == '\0') { + return; + } + + EXPECT_TRUE(PrematureExitFileExists()) + << " file " << premature_exit_file_path_ + << " should exist during test execution, but doesn't."; +} + +} // namespace + +int main(int argc, char **argv) { + InitGoogleTest(&argc, argv); + const int exit_code = RUN_ALL_TESTS(); + + // Test that the premature-exit file is deleted upon return from + // RUN_ALL_TESTS(). + const char* const filepath = GetEnv("TEST_PREMATURE_EXIT_FILE"); + if (filepath != NULL && *filepath != '\0') { + if (PrematureExitTest::FileExists(filepath)) { + printf( + "File %s shouldn't exist after the test program finishes, but does.", + filepath); + return 1; + } + } + + return exit_code; +} diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_prod_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_prod_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_prod_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_prod_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_repeat_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_repeat_test.cc similarity index 99% rename from resources/3rdparty/gtest-1.6.0/test/gtest_repeat_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_repeat_test.cc index 5223dc0ef..481012adc 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_repeat_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_repeat_test.cc @@ -71,7 +71,7 @@ namespace { << "Which is: " << expected_val << "\n";\ ::testing::internal::posix::Abort();\ }\ - } while(::testing::internal::AlwaysFalse()) + } while (::testing::internal::AlwaysFalse()) // Used for verifying that global environment set-up and tear-down are diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_shuffle_test.py b/resources/3rdparty/gtest-1.7.0/test/gtest_shuffle_test.py similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_shuffle_test.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_shuffle_test.py diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_shuffle_test_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_shuffle_test_.cc similarity index 98% rename from resources/3rdparty/gtest-1.6.0/test/gtest_shuffle_test_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_shuffle_test_.cc index 0752789ef..6fb441bd4 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_shuffle_test_.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_shuffle_test_.cc @@ -42,7 +42,6 @@ using ::testing::Test; using ::testing::TestEventListeners; using ::testing::TestInfo; using ::testing::UnitTest; -using ::testing::internal::String; using ::testing::internal::scoped_ptr; // The test methods are empty, as the sole purpose of this program is diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_sole_header_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_sole_header_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_sole_header_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_sole_header_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_stress_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_stress_test.cc similarity index 98% rename from resources/3rdparty/gtest-1.6.0/test/gtest_stress_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_stress_test.cc index 4e7d9bff1..e7daa430d 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_stress_test.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_stress_test.cc @@ -50,7 +50,6 @@ namespace testing { namespace { using internal::Notification; -using internal::String; using internal::TestPropertyKeyIs; using internal::ThreadWithParam; using internal::scoped_ptr; @@ -62,13 +61,13 @@ using internal::scoped_ptr; // How many threads to create? const int kThreadCount = 50; -String IdToKey(int id, const char* suffix) { +std::string IdToKey(int id, const char* suffix) { Message key; key << "key_" << id << "_" << suffix; return key.GetString(); } -String IdToString(int id) { +std::string IdToString(int id) { Message id_message; id_message << id; return id_message.GetString(); diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_test_utils.py b/resources/3rdparty/gtest-1.7.0/test/gtest_test_utils.py similarity index 96% rename from resources/3rdparty/gtest-1.6.0/test/gtest_test_utils.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_test_utils.py index 4e897bd3f..28884bdc1 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_test_utils.py +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_test_utils.py @@ -56,6 +56,21 @@ GTEST_OUTPUT_VAR_NAME = 'GTEST_OUTPUT' IS_WINDOWS = os.name == 'nt' IS_CYGWIN = os.name == 'posix' and 'CYGWIN' in os.uname()[0] +# The environment variable for specifying the path to the premature-exit file. +PREMATURE_EXIT_FILE_ENV_VAR = 'TEST_PREMATURE_EXIT_FILE' + +environ = os.environ.copy() + + +def SetEnvVar(env_var, value): + """Sets/unsets an environment variable to a given value.""" + + if value is not None: + environ[env_var] = value + elif env_var in environ: + del environ[env_var] + + # Here we expose a class from a particular module, depending on the # environment. The comment suppresses the 'Invalid variable name' lint # complaint. @@ -241,7 +256,7 @@ class Subprocess: # Changes made by os.environ.clear are not inheritable by child # processes until Python 2.6. To produce inheritable changes we have # to delete environment items with the del statement. - for key in dest: + for key in dest.keys(): del dest[key] dest.update(src) diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_throw_on_failure_ex_test.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_throw_on_failure_ex_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_throw_on_failure_ex_test.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_throw_on_failure_ex_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_throw_on_failure_test.py b/resources/3rdparty/gtest-1.7.0/test/gtest_throw_on_failure_test.py similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_throw_on_failure_test.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_throw_on_failure_test.py diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_throw_on_failure_test_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_throw_on_failure_test_.cc similarity index 79% rename from resources/3rdparty/gtest-1.6.0/test/gtest_throw_on_failure_test_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_throw_on_failure_test_.cc index 03776ecb3..2b88fe3d9 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_throw_on_failure_test_.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_throw_on_failure_test_.cc @@ -37,12 +37,28 @@ #include "gtest/gtest.h" +#include <stdio.h> // for fflush, fprintf, NULL, etc. +#include <stdlib.h> // for exit +#include <exception> // for set_terminate + +// This terminate handler aborts the program using exit() rather than abort(). +// This avoids showing pop-ups on Windows systems and core dumps on Unix-like +// ones. +void TerminateHandler() { + fprintf(stderr, "%s\n", "Unhandled C++ exception terminating the program."); + fflush(NULL); + exit(1); +} + int main(int argc, char** argv) { +#if GTEST_HAS_EXCEPTIONS + std::set_terminate(&TerminateHandler); +#endif testing::InitGoogleTest(&argc, argv); // We want to ensure that people can use Google Test assertions in // other testing frameworks, as long as they initialize Google Test - // properly and set the thrown-on-failure mode. Therefore, we don't + // properly and set the throw-on-failure mode. Therefore, we don't // use Google Test's constructs for defining and running tests // (e.g. TEST and RUN_ALL_TESTS) here. diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_uninitialized_test.py b/resources/3rdparty/gtest-1.7.0/test/gtest_uninitialized_test.py similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_uninitialized_test.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_uninitialized_test.py diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_uninitialized_test_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_uninitialized_test_.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_uninitialized_test_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_uninitialized_test_.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_unittest.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_unittest.cc similarity index 91% rename from resources/3rdparty/gtest-1.6.0/test/gtest_unittest.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_unittest.cc index 23d6860e1..0cab07d15 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_unittest.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_unittest.cc @@ -33,8 +33,6 @@ // Google Test work. #include "gtest/gtest.h" -#include <vector> -#include <ostream> // Verifies that the command line flag variables can be accessed // in code once <gtest/gtest.h> has been #included. @@ -58,6 +56,15 @@ TEST(CommandLineFlagsTest, CanBeAccessedInCodeOnceGTestHIsIncluded) { EXPECT_TRUE(dummy || !dummy); // Suppresses warning that dummy is unused. } +#include <limits.h> // For INT_MAX. +#include <stdlib.h> +#include <string.h> +#include <time.h> + +#include <map> +#include <vector> +#include <ostream> + #include "gtest/gtest-spi.h" // Indicates that this translation unit is part of Google Test's @@ -69,15 +76,84 @@ TEST(CommandLineFlagsTest, CanBeAccessedInCodeOnceGTestHIsIncluded) { #include "src/gtest-internal-inl.h" #undef GTEST_IMPLEMENTATION_ -#include <limits.h> // For INT_MAX. -#include <stdlib.h> -#include <time.h> - -#include <map> - namespace testing { namespace internal { +#if GTEST_CAN_STREAM_RESULTS_ + +class StreamingListenerTest : public Test { + public: + class FakeSocketWriter : public StreamingListener::AbstractSocketWriter { + public: + // Sends a string to the socket. + virtual void Send(const string& message) { output_ += message; } + + string output_; + }; + + StreamingListenerTest() + : fake_sock_writer_(new FakeSocketWriter), + streamer_(fake_sock_writer_), + test_info_obj_("FooTest", "Bar", NULL, NULL, 0, NULL) {} + + protected: + string* output() { return &(fake_sock_writer_->output_); } + + FakeSocketWriter* const fake_sock_writer_; + StreamingListener streamer_; + UnitTest unit_test_; + TestInfo test_info_obj_; // The name test_info_ was taken by testing::Test. +}; + +TEST_F(StreamingListenerTest, OnTestProgramEnd) { + *output() = ""; + streamer_.OnTestProgramEnd(unit_test_); + EXPECT_EQ("event=TestProgramEnd&passed=1\n", *output()); +} + +TEST_F(StreamingListenerTest, OnTestIterationEnd) { + *output() = ""; + streamer_.OnTestIterationEnd(unit_test_, 42); + EXPECT_EQ("event=TestIterationEnd&passed=1&elapsed_time=0ms\n", *output()); +} + +TEST_F(StreamingListenerTest, OnTestCaseStart) { + *output() = ""; + streamer_.OnTestCaseStart(TestCase("FooTest", "Bar", NULL, NULL)); + EXPECT_EQ("event=TestCaseStart&name=FooTest\n", *output()); +} + +TEST_F(StreamingListenerTest, OnTestCaseEnd) { + *output() = ""; + streamer_.OnTestCaseEnd(TestCase("FooTest", "Bar", NULL, NULL)); + EXPECT_EQ("event=TestCaseEnd&passed=1&elapsed_time=0ms\n", *output()); +} + +TEST_F(StreamingListenerTest, OnTestStart) { + *output() = ""; + streamer_.OnTestStart(test_info_obj_); + EXPECT_EQ("event=TestStart&name=Bar\n", *output()); +} + +TEST_F(StreamingListenerTest, OnTestEnd) { + *output() = ""; + streamer_.OnTestEnd(test_info_obj_); + EXPECT_EQ("event=TestEnd&passed=1&elapsed_time=0ms\n", *output()); +} + +TEST_F(StreamingListenerTest, OnTestPartResult) { + *output() = ""; + streamer_.OnTestPartResult(TestPartResult( + TestPartResult::kFatalFailure, "foo.cc", 42, "failed=\n&%")); + + // Meta characters in the failure message should be properly escaped. + EXPECT_EQ( + "event=TestPartResult&file=foo.cc&line=42&message=failed%3D%0A%26%25\n", + *output()); +} + +#endif // GTEST_CAN_STREAM_RESULTS_ + // Provides access to otherwise private parts of the TestEventListeners class // that are needed to test it. class TestEventListenersAccessor { @@ -104,6 +180,18 @@ class TestEventListenersAccessor { } }; +class UnitTestRecordPropertyTestHelper : public Test { + protected: + UnitTestRecordPropertyTestHelper() {} + + // Forwards to UnitTest::RecordProperty() to bypass access controls. + void UnitTestRecordProperty(const char* key, const std::string& value) { + unit_test_.RecordProperty(key, value); + } + + UnitTest unit_test_; +}; + } // namespace internal } // namespace testing @@ -112,6 +200,7 @@ using testing::AssertionResult; using testing::AssertionSuccess; using testing::DoubleLE; using testing::EmptyTestEventListener; +using testing::Environment; using testing::FloatLE; using testing::GTEST_FLAG(also_run_disabled_tests); using testing::GTEST_FLAG(break_on_failure); @@ -137,10 +226,12 @@ using testing::StaticAssertTypeEq; using testing::Test; using testing::TestCase; using testing::TestEventListeners; +using testing::TestInfo; using testing::TestPartResult; using testing::TestPartResultArray; using testing::TestProperty; using testing::TestResult; +using testing::TimeInMillis; using testing::UnitTest; using testing::kMaxStackTraceDepth; using testing::internal::AddReference; @@ -156,6 +247,7 @@ using testing::internal::CountIf; using testing::internal::EqFailure; using testing::internal::FloatingPoint; using testing::internal::ForEach; +using testing::internal::FormatEpochTimeInMillisAsIso8601; using testing::internal::FormatTimeInMillisAsSeconds; using testing::internal::GTestFlagSaver; using testing::internal::GetCurrentOsStackTraceExceptTop; @@ -163,6 +255,7 @@ using testing::internal::GetElementOr; using testing::internal::GetNextRandomSeed; using testing::internal::GetRandomSeedFromFlag; using testing::internal::GetTestTypeId; +using testing::internal::GetTimeInMillis; using testing::internal::GetTypeId; using testing::internal::GetUnitTestImpl; using testing::internal::ImplicitlyConvertible; @@ -308,6 +401,103 @@ TEST(FormatTimeInMillisAsSecondsTest, FormatsNegativeNumber) { EXPECT_EQ("-3", FormatTimeInMillisAsSeconds(-3000)); } +// Tests FormatEpochTimeInMillisAsIso8601(). The correctness of conversion +// for particular dates below was verified in Python using +// datetime.datetime.fromutctimestamp(<timetamp>/1000). + +// FormatEpochTimeInMillisAsIso8601 depends on the current timezone, so we +// have to set up a particular timezone to obtain predictable results. +class FormatEpochTimeInMillisAsIso8601Test : public Test { + public: + // On Cygwin, GCC doesn't allow unqualified integer literals to exceed + // 32 bits, even when 64-bit integer types are available. We have to + // force the constants to have a 64-bit type here. + static const TimeInMillis kMillisPerSec = 1000; + + private: + virtual void SetUp() { + saved_tz_ = NULL; +#if _MSC_VER +# pragma warning(push) // Saves the current warning state. +# pragma warning(disable:4996) // Temporarily disables warning 4996 + // (function or variable may be unsafe + // for getenv, function is deprecated for + // strdup). + if (getenv("TZ")) + saved_tz_ = strdup(getenv("TZ")); +# pragma warning(pop) // Restores the warning state again. +#else + if (getenv("TZ")) + saved_tz_ = strdup(getenv("TZ")); +#endif + + // Set up the time zone for FormatEpochTimeInMillisAsIso8601 to use. We + // cannot use the local time zone because the function's output depends + // on the time zone. + SetTimeZone("UTC+00"); + } + + virtual void TearDown() { + SetTimeZone(saved_tz_); + free(const_cast<char*>(saved_tz_)); + saved_tz_ = NULL; + } + + static void SetTimeZone(const char* time_zone) { + // tzset() distinguishes between the TZ variable being present and empty + // and not being present, so we have to consider the case of time_zone + // being NULL. +#if _MSC_VER + // ...Unless it's MSVC, whose standard library's _putenv doesn't + // distinguish between an empty and a missing variable. + const std::string env_var = + std::string("TZ=") + (time_zone ? time_zone : ""); + _putenv(env_var.c_str()); +# pragma warning(push) // Saves the current warning state. +# pragma warning(disable:4996) // Temporarily disables warning 4996 + // (function is deprecated). + tzset(); +# pragma warning(pop) // Restores the warning state again. +#else + if (time_zone) { + setenv(("TZ"), time_zone, 1); + } else { + unsetenv("TZ"); + } + tzset(); +#endif + } + + const char* saved_tz_; +}; + +const TimeInMillis FormatEpochTimeInMillisAsIso8601Test::kMillisPerSec; + +TEST_F(FormatEpochTimeInMillisAsIso8601Test, PrintsTwoDigitSegments) { + EXPECT_EQ("2011-10-31T18:52:42", + FormatEpochTimeInMillisAsIso8601(1320087162 * kMillisPerSec)); +} + +TEST_F(FormatEpochTimeInMillisAsIso8601Test, MillisecondsDoNotAffectResult) { + EXPECT_EQ( + "2011-10-31T18:52:42", + FormatEpochTimeInMillisAsIso8601(1320087162 * kMillisPerSec + 234)); +} + +TEST_F(FormatEpochTimeInMillisAsIso8601Test, PrintsLeadingZeroes) { + EXPECT_EQ("2011-09-03T05:07:02", + FormatEpochTimeInMillisAsIso8601(1315026422 * kMillisPerSec)); +} + +TEST_F(FormatEpochTimeInMillisAsIso8601Test, Prints24HourTime) { + EXPECT_EQ("2011-09-28T17:08:22", + FormatEpochTimeInMillisAsIso8601(1317229702 * kMillisPerSec)); +} + +TEST_F(FormatEpochTimeInMillisAsIso8601Test, PrintsEpochStart) { + EXPECT_EQ("1970-01-01T00:00:00", FormatEpochTimeInMillisAsIso8601(0)); +} + #if GTEST_CAN_COMPARE_NULL # ifdef __BORLANDC__ @@ -322,15 +512,6 @@ TEST(NullLiteralTest, IsTrueForNullLiterals) { EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(0)); EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(0U)); EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(0L)); - -# ifndef __BORLANDC__ - - // Some compilers may fail to detect some null pointer literals; - // as long as users of the framework don't use such literals, this - // is harmless. - EXPECT_TRUE(GTEST_IS_NULL_LITERAL_(1 - 1)); - -# endif } // Tests that GTEST_IS_NULL_LITERAL_(x) is false when x is not a null @@ -353,45 +534,41 @@ TEST(NullLiteralTest, IsFalseForNonNullLiterals) { // Tests that the NUL character L'\0' is encoded correctly. TEST(CodePointToUtf8Test, CanEncodeNul) { - char buffer[32]; - EXPECT_STREQ("", CodePointToUtf8(L'\0', buffer)); + EXPECT_EQ("", CodePointToUtf8(L'\0')); } // Tests that ASCII characters are encoded correctly. TEST(CodePointToUtf8Test, CanEncodeAscii) { - char buffer[32]; - EXPECT_STREQ("a", CodePointToUtf8(L'a', buffer)); - EXPECT_STREQ("Z", CodePointToUtf8(L'Z', buffer)); - EXPECT_STREQ("&", CodePointToUtf8(L'&', buffer)); - EXPECT_STREQ("\x7F", CodePointToUtf8(L'\x7F', buffer)); + EXPECT_EQ("a", CodePointToUtf8(L'a')); + EXPECT_EQ("Z", CodePointToUtf8(L'Z')); + EXPECT_EQ("&", CodePointToUtf8(L'&')); + EXPECT_EQ("\x7F", CodePointToUtf8(L'\x7F')); } // Tests that Unicode code-points that have 8 to 11 bits are encoded // as 110xxxxx 10xxxxxx. TEST(CodePointToUtf8Test, CanEncode8To11Bits) { - char buffer[32]; // 000 1101 0011 => 110-00011 10-010011 - EXPECT_STREQ("\xC3\x93", CodePointToUtf8(L'\xD3', buffer)); + EXPECT_EQ("\xC3\x93", CodePointToUtf8(L'\xD3')); // 101 0111 0110 => 110-10101 10-110110 // Some compilers (e.g., GCC on MinGW) cannot handle non-ASCII codepoints // in wide strings and wide chars. In order to accomodate them, we have to // introduce such character constants as integers. - EXPECT_STREQ("\xD5\xB6", - CodePointToUtf8(static_cast<wchar_t>(0x576), buffer)); + EXPECT_EQ("\xD5\xB6", + CodePointToUtf8(static_cast<wchar_t>(0x576))); } // Tests that Unicode code-points that have 12 to 16 bits are encoded // as 1110xxxx 10xxxxxx 10xxxxxx. TEST(CodePointToUtf8Test, CanEncode12To16Bits) { - char buffer[32]; // 0000 1000 1101 0011 => 1110-0000 10-100011 10-010011 - EXPECT_STREQ("\xE0\xA3\x93", - CodePointToUtf8(static_cast<wchar_t>(0x8D3), buffer)); + EXPECT_EQ("\xE0\xA3\x93", + CodePointToUtf8(static_cast<wchar_t>(0x8D3))); // 1100 0111 0100 1101 => 1110-1100 10-011101 10-001101 - EXPECT_STREQ("\xEC\x9D\x8D", - CodePointToUtf8(static_cast<wchar_t>(0xC74D), buffer)); + EXPECT_EQ("\xEC\x9D\x8D", + CodePointToUtf8(static_cast<wchar_t>(0xC74D))); } #if !GTEST_WIDE_STRING_USES_UTF16_ @@ -402,22 +579,19 @@ TEST(CodePointToUtf8Test, CanEncode12To16Bits) { // Tests that Unicode code-points that have 17 to 21 bits are encoded // as 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx. TEST(CodePointToUtf8Test, CanEncode17To21Bits) { - char buffer[32]; // 0 0001 0000 1000 1101 0011 => 11110-000 10-010000 10-100011 10-010011 - EXPECT_STREQ("\xF0\x90\xA3\x93", CodePointToUtf8(L'\x108D3', buffer)); + EXPECT_EQ("\xF0\x90\xA3\x93", CodePointToUtf8(L'\x108D3')); // 0 0001 0000 0100 0000 0000 => 11110-000 10-010000 10-010000 10-000000 - EXPECT_STREQ("\xF0\x90\x90\x80", CodePointToUtf8(L'\x10400', buffer)); + EXPECT_EQ("\xF0\x90\x90\x80", CodePointToUtf8(L'\x10400')); // 1 0000 1000 0110 0011 0100 => 11110-100 10-001000 10-011000 10-110100 - EXPECT_STREQ("\xF4\x88\x98\xB4", CodePointToUtf8(L'\x108634', buffer)); + EXPECT_EQ("\xF4\x88\x98\xB4", CodePointToUtf8(L'\x108634')); } // Tests that encoding an invalid code-point generates the expected result. TEST(CodePointToUtf8Test, CanEncodeInvalidCodePoint) { - char buffer[32]; - EXPECT_STREQ("(Invalid Unicode 0x1234ABCD)", - CodePointToUtf8(L'\x1234ABCD', buffer)); + EXPECT_EQ("(Invalid Unicode 0x1234ABCD)", CodePointToUtf8(L'\x1234ABCD')); } #endif // !GTEST_WIDE_STRING_USES_UTF16_ @@ -830,269 +1004,16 @@ TEST(AssertHelperTest, AssertHelperIsSmall) { EXPECT_LE(sizeof(testing::internal::AssertHelper), sizeof(void*)); } -// Tests the String class. - -// Tests String's constructors. -TEST(StringTest, Constructors) { - // Default ctor. - String s1; - // We aren't using EXPECT_EQ(NULL, s1.c_str()) because comparing - // pointers with NULL isn't supported on all platforms. - EXPECT_EQ(0U, s1.length()); - EXPECT_TRUE(NULL == s1.c_str()); - - // Implicitly constructs from a C-string. - String s2 = "Hi"; - EXPECT_EQ(2U, s2.length()); - EXPECT_STREQ("Hi", s2.c_str()); - - // Constructs from a C-string and a length. - String s3("hello", 3); - EXPECT_EQ(3U, s3.length()); - EXPECT_STREQ("hel", s3.c_str()); - - // The empty String should be created when String is constructed with - // a NULL pointer and length 0. - EXPECT_EQ(0U, String(NULL, 0).length()); - EXPECT_FALSE(String(NULL, 0).c_str() == NULL); - - // Constructs a String that contains '\0'. - String s4("a\0bcd", 4); - EXPECT_EQ(4U, s4.length()); - EXPECT_EQ('a', s4.c_str()[0]); - EXPECT_EQ('\0', s4.c_str()[1]); - EXPECT_EQ('b', s4.c_str()[2]); - EXPECT_EQ('c', s4.c_str()[3]); - - // Copy ctor where the source is NULL. - const String null_str; - String s5 = null_str; - EXPECT_TRUE(s5.c_str() == NULL); - - // Copy ctor where the source isn't NULL. - String s6 = s3; - EXPECT_EQ(3U, s6.length()); - EXPECT_STREQ("hel", s6.c_str()); - - // Copy ctor where the source contains '\0'. - String s7 = s4; - EXPECT_EQ(4U, s7.length()); - EXPECT_EQ('a', s7.c_str()[0]); - EXPECT_EQ('\0', s7.c_str()[1]); - EXPECT_EQ('b', s7.c_str()[2]); - EXPECT_EQ('c', s7.c_str()[3]); -} - -TEST(StringTest, ConvertsFromStdString) { - // An empty std::string. - const std::string src1(""); - const String dest1 = src1; - EXPECT_EQ(0U, dest1.length()); - EXPECT_STREQ("", dest1.c_str()); - - // A normal std::string. - const std::string src2("Hi"); - const String dest2 = src2; - EXPECT_EQ(2U, dest2.length()); - EXPECT_STREQ("Hi", dest2.c_str()); - - // An std::string with an embedded NUL character. - const char src3[] = "a\0b"; - const String dest3 = std::string(src3, sizeof(src3)); - EXPECT_EQ(sizeof(src3), dest3.length()); - EXPECT_EQ('a', dest3.c_str()[0]); - EXPECT_EQ('\0', dest3.c_str()[1]); - EXPECT_EQ('b', dest3.c_str()[2]); -} - -TEST(StringTest, ConvertsToStdString) { - // An empty String. - const String src1(""); - const std::string dest1 = src1; - EXPECT_EQ("", dest1); - - // A normal String. - const String src2("Hi"); - const std::string dest2 = src2; - EXPECT_EQ("Hi", dest2); - - // A String containing a '\0'. - const String src3("x\0y", 3); - const std::string dest3 = src3; - EXPECT_EQ(std::string("x\0y", 3), dest3); -} - -#if GTEST_HAS_GLOBAL_STRING - -TEST(StringTest, ConvertsFromGlobalString) { - // An empty ::string. - const ::string src1(""); - const String dest1 = src1; - EXPECT_EQ(0U, dest1.length()); - EXPECT_STREQ("", dest1.c_str()); - - // A normal ::string. - const ::string src2("Hi"); - const String dest2 = src2; - EXPECT_EQ(2U, dest2.length()); - EXPECT_STREQ("Hi", dest2.c_str()); - - // An ::string with an embedded NUL character. - const char src3[] = "x\0y"; - const String dest3 = ::string(src3, sizeof(src3)); - EXPECT_EQ(sizeof(src3), dest3.length()); - EXPECT_EQ('x', dest3.c_str()[0]); - EXPECT_EQ('\0', dest3.c_str()[1]); - EXPECT_EQ('y', dest3.c_str()[2]); -} - -TEST(StringTest, ConvertsToGlobalString) { - // An empty String. - const String src1(""); - const ::string dest1 = src1; - EXPECT_EQ("", dest1); - - // A normal String. - const String src2("Hi"); - const ::string dest2 = src2; - EXPECT_EQ("Hi", dest2); - - const String src3("x\0y", 3); - const ::string dest3 = src3; - EXPECT_EQ(::string("x\0y", 3), dest3); -} - -#endif // GTEST_HAS_GLOBAL_STRING - -// Tests String::ShowCStringQuoted(). -TEST(StringTest, ShowCStringQuoted) { - EXPECT_STREQ("(null)", - String::ShowCStringQuoted(NULL).c_str()); - EXPECT_STREQ("\"\"", - String::ShowCStringQuoted("").c_str()); - EXPECT_STREQ("\"foo\"", - String::ShowCStringQuoted("foo").c_str()); -} - -// Tests String::empty(). -TEST(StringTest, Empty) { - EXPECT_TRUE(String("").empty()); - EXPECT_FALSE(String().empty()); - EXPECT_FALSE(String(NULL).empty()); - EXPECT_FALSE(String("a").empty()); - EXPECT_FALSE(String("\0", 1).empty()); -} - -// Tests String::Compare(). -TEST(StringTest, Compare) { - // NULL vs NULL. - EXPECT_EQ(0, String().Compare(String())); - - // NULL vs non-NULL. - EXPECT_EQ(-1, String().Compare(String(""))); - - // Non-NULL vs NULL. - EXPECT_EQ(1, String("").Compare(String())); - - // The following covers non-NULL vs non-NULL. - - // "" vs "". - EXPECT_EQ(0, String("").Compare(String(""))); - - // "" vs non-"". - EXPECT_EQ(-1, String("").Compare(String("\0", 1))); - EXPECT_EQ(-1, String("").Compare(" ")); - - // Non-"" vs "". - EXPECT_EQ(1, String("a").Compare(String(""))); - - // The following covers non-"" vs non-"". - - // Same length and equal. - EXPECT_EQ(0, String("a").Compare(String("a"))); - - // Same length and different. - EXPECT_EQ(-1, String("a\0b", 3).Compare(String("a\0c", 3))); - EXPECT_EQ(1, String("b").Compare(String("a"))); - - // Different lengths. - EXPECT_EQ(-1, String("a").Compare(String("ab"))); - EXPECT_EQ(-1, String("a").Compare(String("a\0", 2))); - EXPECT_EQ(1, String("abc").Compare(String("aacd"))); -} - -// Tests String::operator==(). -TEST(StringTest, Equals) { - const String null(NULL); - EXPECT_TRUE(null == NULL); // NOLINT - EXPECT_FALSE(null == ""); // NOLINT - EXPECT_FALSE(null == "bar"); // NOLINT - - const String empty(""); - EXPECT_FALSE(empty == NULL); // NOLINT - EXPECT_TRUE(empty == ""); // NOLINT - EXPECT_FALSE(empty == "bar"); // NOLINT - - const String foo("foo"); - EXPECT_FALSE(foo == NULL); // NOLINT - EXPECT_FALSE(foo == ""); // NOLINT - EXPECT_FALSE(foo == "bar"); // NOLINT - EXPECT_TRUE(foo == "foo"); // NOLINT - - const String bar("x\0y", 3); - EXPECT_FALSE(bar == "x"); -} - -// Tests String::operator!=(). -TEST(StringTest, NotEquals) { - const String null(NULL); - EXPECT_FALSE(null != NULL); // NOLINT - EXPECT_TRUE(null != ""); // NOLINT - EXPECT_TRUE(null != "bar"); // NOLINT - - const String empty(""); - EXPECT_TRUE(empty != NULL); // NOLINT - EXPECT_FALSE(empty != ""); // NOLINT - EXPECT_TRUE(empty != "bar"); // NOLINT - - const String foo("foo"); - EXPECT_TRUE(foo != NULL); // NOLINT - EXPECT_TRUE(foo != ""); // NOLINT - EXPECT_TRUE(foo != "bar"); // NOLINT - EXPECT_FALSE(foo != "foo"); // NOLINT - - const String bar("x\0y", 3); - EXPECT_TRUE(bar != "x"); -} - -// Tests String::length(). -TEST(StringTest, Length) { - EXPECT_EQ(0U, String().length()); - EXPECT_EQ(0U, String("").length()); - EXPECT_EQ(2U, String("ab").length()); - EXPECT_EQ(3U, String("a\0b", 3).length()); -} - -// Tests String::EndsWith(). -TEST(StringTest, EndsWith) { - EXPECT_TRUE(String("foobar").EndsWith("bar")); - EXPECT_TRUE(String("foobar").EndsWith("")); - EXPECT_TRUE(String("").EndsWith("")); - - EXPECT_FALSE(String("foobar").EndsWith("foo")); - EXPECT_FALSE(String("").EndsWith("foo")); -} - // Tests String::EndsWithCaseInsensitive(). TEST(StringTest, EndsWithCaseInsensitive) { - EXPECT_TRUE(String("foobar").EndsWithCaseInsensitive("BAR")); - EXPECT_TRUE(String("foobaR").EndsWithCaseInsensitive("bar")); - EXPECT_TRUE(String("foobar").EndsWithCaseInsensitive("")); - EXPECT_TRUE(String("").EndsWithCaseInsensitive("")); + EXPECT_TRUE(String::EndsWithCaseInsensitive("foobar", "BAR")); + EXPECT_TRUE(String::EndsWithCaseInsensitive("foobaR", "bar")); + EXPECT_TRUE(String::EndsWithCaseInsensitive("foobar", "")); + EXPECT_TRUE(String::EndsWithCaseInsensitive("", "")); - EXPECT_FALSE(String("Foobar").EndsWithCaseInsensitive("foo")); - EXPECT_FALSE(String("foobar").EndsWithCaseInsensitive("Foo")); - EXPECT_FALSE(String("").EndsWithCaseInsensitive("foo")); + EXPECT_FALSE(String::EndsWithCaseInsensitive("Foobar", "foo")); + EXPECT_FALSE(String::EndsWithCaseInsensitive("foobar", "Foo")); + EXPECT_FALSE(String::EndsWithCaseInsensitive("", "foo")); } // C++Builder's preprocessor is buggy; it fails to expand macros that @@ -1112,88 +1033,6 @@ TEST(StringTest, CaseInsensitiveWideCStringEquals) { EXPECT_TRUE(String::CaseInsensitiveWideCStringEquals(L"FOOBAR", L"foobar")); } -// Tests that NULL can be assigned to a String. -TEST(StringTest, CanBeAssignedNULL) { - const String src(NULL); - String dest; - - dest = src; - EXPECT_STREQ(NULL, dest.c_str()); -} - -// Tests that the empty string "" can be assigned to a String. -TEST(StringTest, CanBeAssignedEmpty) { - const String src(""); - String dest; - - dest = src; - EXPECT_STREQ("", dest.c_str()); -} - -// Tests that a non-empty string can be assigned to a String. -TEST(StringTest, CanBeAssignedNonEmpty) { - const String src("hello"); - String dest; - dest = src; - EXPECT_EQ(5U, dest.length()); - EXPECT_STREQ("hello", dest.c_str()); - - const String src2("x\0y", 3); - String dest2; - dest2 = src2; - EXPECT_EQ(3U, dest2.length()); - EXPECT_EQ('x', dest2.c_str()[0]); - EXPECT_EQ('\0', dest2.c_str()[1]); - EXPECT_EQ('y', dest2.c_str()[2]); -} - -// Tests that a String can be assigned to itself. -TEST(StringTest, CanBeAssignedSelf) { - String dest("hello"); - - // Use explicit function call notation here to suppress self-assign warning. - dest.operator=(dest); - EXPECT_STREQ("hello", dest.c_str()); -} - -// Sun Studio < 12 incorrectly rejects this code due to an overloading -// ambiguity. -#if !(defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590) -// Tests streaming a String. -TEST(StringTest, Streams) { - EXPECT_EQ(StreamableToString(String()), "(null)"); - EXPECT_EQ(StreamableToString(String("")), ""); - EXPECT_EQ(StreamableToString(String("a\0b", 3)), "a\\0b"); -} -#endif - -// Tests that String::Format() works. -TEST(StringTest, FormatWorks) { - // Normal case: the format spec is valid, the arguments match the - // spec, and the result is < 4095 characters. - EXPECT_STREQ("Hello, 42", String::Format("%s, %d", "Hello", 42).c_str()); - - // Edge case: the result is 4095 characters. - char buffer[4096]; - const size_t kSize = sizeof(buffer); - memset(buffer, 'a', kSize - 1); - buffer[kSize - 1] = '\0'; - EXPECT_STREQ(buffer, String::Format("%s", buffer).c_str()); - - // The result needs to be 4096 characters, exceeding Format()'s limit. - EXPECT_STREQ("<formatting error or buffer exceeded>", - String::Format("x%s", buffer).c_str()); - -#if GTEST_OS_LINUX - // On Linux, invalid format spec should lead to an error message. - // In other environment (e.g. MSVC on Windows), String::Format() may - // simply ignore a bad format spec, so this assertion is run on - // Linux only. - EXPECT_STREQ("<formatting error or buffer exceeded>", - String::Format("%").c_str()); -#endif -} - #if GTEST_OS_WINDOWS // Tests String::ShowWideCString(). @@ -1204,16 +1043,6 @@ TEST(StringTest, ShowWideCString) { EXPECT_STREQ("foo", String::ShowWideCString(L"foo").c_str()); } -// Tests String::ShowWideCStringQuoted(). -TEST(StringTest, ShowWideCStringQuoted) { - EXPECT_STREQ("(null)", - String::ShowWideCStringQuoted(NULL).c_str()); - EXPECT_STREQ("L\"\"", - String::ShowWideCStringQuoted(L"").c_str()); - EXPECT_STREQ("L\"foo\"", - String::ShowWideCStringQuoted(L"foo").c_str()); -} - # if GTEST_OS_WINDOWS_MOBILE TEST(StringTest, AnsiAndUtf16Null) { EXPECT_EQ(NULL, String::AnsiToUtf16(NULL)); @@ -1623,7 +1452,7 @@ TEST(TestResultPropertyTest, NoPropertiesFoundWhenNoneAreAdded) { TEST(TestResultPropertyTest, OnePropertyFoundWhenAdded) { TestResult test_result; TestProperty property("key_1", "1"); - TestResultAccessor::RecordProperty(&test_result, property); + TestResultAccessor::RecordProperty(&test_result, "testcase", property); ASSERT_EQ(1, test_result.test_property_count()); const TestProperty& actual_property = test_result.GetTestProperty(0); EXPECT_STREQ("key_1", actual_property.key()); @@ -1635,8 +1464,8 @@ TEST(TestResultPropertyTest, MultiplePropertiesFoundWhenAdded) { TestResult test_result; TestProperty property_1("key_1", "1"); TestProperty property_2("key_2", "2"); - TestResultAccessor::RecordProperty(&test_result, property_1); - TestResultAccessor::RecordProperty(&test_result, property_2); + TestResultAccessor::RecordProperty(&test_result, "testcase", property_1); + TestResultAccessor::RecordProperty(&test_result, "testcase", property_2); ASSERT_EQ(2, test_result.test_property_count()); const TestProperty& actual_property_1 = test_result.GetTestProperty(0); EXPECT_STREQ("key_1", actual_property_1.key()); @@ -1654,10 +1483,10 @@ TEST(TestResultPropertyTest, OverridesValuesForDuplicateKeys) { TestProperty property_2_1("key_2", "2"); TestProperty property_1_2("key_1", "12"); TestProperty property_2_2("key_2", "22"); - TestResultAccessor::RecordProperty(&test_result, property_1_1); - TestResultAccessor::RecordProperty(&test_result, property_2_1); - TestResultAccessor::RecordProperty(&test_result, property_1_2); - TestResultAccessor::RecordProperty(&test_result, property_2_2); + TestResultAccessor::RecordProperty(&test_result, "testcase", property_1_1); + TestResultAccessor::RecordProperty(&test_result, "testcase", property_2_1); + TestResultAccessor::RecordProperty(&test_result, "testcase", property_1_2); + TestResultAccessor::RecordProperty(&test_result, "testcase", property_2_2); ASSERT_EQ(2, test_result.test_property_count()); const TestProperty& actual_property_1 = test_result.GetTestProperty(0); @@ -1670,14 +1499,14 @@ TEST(TestResultPropertyTest, OverridesValuesForDuplicateKeys) { } // Tests TestResult::GetTestProperty(). -TEST(TestResultPropertyDeathTest, GetTestProperty) { +TEST(TestResultPropertyTest, GetTestProperty) { TestResult test_result; TestProperty property_1("key_1", "1"); TestProperty property_2("key_2", "2"); TestProperty property_3("key_3", "3"); - TestResultAccessor::RecordProperty(&test_result, property_1); - TestResultAccessor::RecordProperty(&test_result, property_2); - TestResultAccessor::RecordProperty(&test_result, property_3); + TestResultAccessor::RecordProperty(&test_result, "testcase", property_1); + TestResultAccessor::RecordProperty(&test_result, "testcase", property_2); + TestResultAccessor::RecordProperty(&test_result, "testcase", property_3); const TestProperty& fetched_property_1 = test_result.GetTestProperty(0); const TestProperty& fetched_property_2 = test_result.GetTestProperty(1); @@ -1696,42 +1525,6 @@ TEST(TestResultPropertyDeathTest, GetTestProperty) { EXPECT_DEATH_IF_SUPPORTED(test_result.GetTestProperty(-1), ""); } -// When a property using a reserved key is supplied to this function, it tests -// that a non-fatal failure is added, a fatal failure is not added, and that the -// property is not recorded. -void ExpectNonFatalFailureRecordingPropertyWithReservedKey(const char* key) { - TestResult test_result; - TestProperty property(key, "1"); - EXPECT_NONFATAL_FAILURE( - TestResultAccessor::RecordProperty(&test_result, property), - "Reserved key"); - ASSERT_EQ(0, test_result.test_property_count()) << "Not recorded"; -} - -// Attempting to recording a property with the Reserved literal "name" -// should add a non-fatal failure and the property should not be recorded. -TEST(TestResultPropertyTest, AddFailureWhenUsingReservedKeyCalledName) { - ExpectNonFatalFailureRecordingPropertyWithReservedKey("name"); -} - -// Attempting to recording a property with the Reserved literal "status" -// should add a non-fatal failure and the property should not be recorded. -TEST(TestResultPropertyTest, AddFailureWhenUsingReservedKeyCalledStatus) { - ExpectNonFatalFailureRecordingPropertyWithReservedKey("status"); -} - -// Attempting to recording a property with the Reserved literal "time" -// should add a non-fatal failure and the property should not be recorded. -TEST(TestResultPropertyTest, AddFailureWhenUsingReservedKeyCalledTime) { - ExpectNonFatalFailureRecordingPropertyWithReservedKey("time"); -} - -// Attempting to recording a property with the Reserved literal "classname" -// should add a non-fatal failure and the property should not be recorded. -TEST(TestResultPropertyTest, AddFailureWhenUsingReservedKeyCalledClassname) { - ExpectNonFatalFailureRecordingPropertyWithReservedKey("classname"); -} - // Tests that GTestFlagSaver works on Windows and Mac. class GTestFlagSaverTest : public Test { @@ -1801,6 +1594,7 @@ class GTestFlagSaverTest : public Test { GTEST_FLAG(stream_result_to) = "localhost:1234"; GTEST_FLAG(throw_on_failure) = true; } + private: // For saving Google Test flags during this test case. static GTestFlagSaver* saver_; @@ -1833,15 +1627,16 @@ static void SetEnv(const char* name, const char* value) { // C++Builder's putenv only stores a pointer to its parameter; we have to // ensure that the string remains valid as long as it might be needed. // We use an std::map to do so. - static std::map<String, String*> added_env; + static std::map<std::string, std::string*> added_env; // Because putenv stores a pointer to the string buffer, we can't delete the // previous string (if present) until after it's replaced. - String *prev_env = NULL; + std::string *prev_env = NULL; if (added_env.find(name) != added_env.end()) { prev_env = added_env[name]; } - added_env[name] = new String((Message() << name << "=" << value).GetString()); + added_env[name] = new std::string( + (Message() << name << "=" << value).GetString()); // The standard signature of putenv accepts a 'char*' argument. Other // implementations, like C++Builder's, accept a 'const char*'. @@ -2130,6 +1925,173 @@ TEST(UnitTestTest, CanGetOriginalWorkingDir) { EXPECT_STRNE(UnitTest::GetInstance()->original_working_dir(), ""); } +TEST(UnitTestTest, ReturnsPlausibleTimestamp) { + EXPECT_LT(0, UnitTest::GetInstance()->start_timestamp()); + EXPECT_LE(UnitTest::GetInstance()->start_timestamp(), GetTimeInMillis()); +} + +// When a property using a reserved key is supplied to this function, it +// tests that a non-fatal failure is added, a fatal failure is not added, +// and that the property is not recorded. +void ExpectNonFatalFailureRecordingPropertyWithReservedKey( + const TestResult& test_result, const char* key) { + EXPECT_NONFATAL_FAILURE(Test::RecordProperty(key, "1"), "Reserved key"); + ASSERT_EQ(0, test_result.test_property_count()) << "Property for key '" << key + << "' recorded unexpectedly."; +} + +void ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest( + const char* key) { + const TestInfo* test_info = UnitTest::GetInstance()->current_test_info(); + ASSERT_TRUE(test_info != NULL); + ExpectNonFatalFailureRecordingPropertyWithReservedKey(*test_info->result(), + key); +} + +void ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase( + const char* key) { + const TestCase* test_case = UnitTest::GetInstance()->current_test_case(); + ASSERT_TRUE(test_case != NULL); + ExpectNonFatalFailureRecordingPropertyWithReservedKey( + test_case->ad_hoc_test_result(), key); +} + +void ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase( + const char* key) { + ExpectNonFatalFailureRecordingPropertyWithReservedKey( + UnitTest::GetInstance()->ad_hoc_test_result(), key); +} + +// Tests that property recording functions in UnitTest outside of tests +// functions correcly. Creating a separate instance of UnitTest ensures it +// is in a state similar to the UnitTest's singleton's between tests. +class UnitTestRecordPropertyTest : + public testing::internal::UnitTestRecordPropertyTestHelper { + public: + static void SetUpTestCase() { + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase( + "disabled"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase( + "errors"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase( + "failures"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase( + "name"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase( + "tests"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTestCase( + "time"); + + Test::RecordProperty("test_case_key_1", "1"); + const TestCase* test_case = UnitTest::GetInstance()->current_test_case(); + ASSERT_TRUE(test_case != NULL); + + ASSERT_EQ(1, test_case->ad_hoc_test_result().test_property_count()); + EXPECT_STREQ("test_case_key_1", + test_case->ad_hoc_test_result().GetTestProperty(0).key()); + EXPECT_STREQ("1", + test_case->ad_hoc_test_result().GetTestProperty(0).value()); + } +}; + +// Tests TestResult has the expected property when added. +TEST_F(UnitTestRecordPropertyTest, OnePropertyFoundWhenAdded) { + UnitTestRecordProperty("key_1", "1"); + + ASSERT_EQ(1, unit_test_.ad_hoc_test_result().test_property_count()); + + EXPECT_STREQ("key_1", + unit_test_.ad_hoc_test_result().GetTestProperty(0).key()); + EXPECT_STREQ("1", + unit_test_.ad_hoc_test_result().GetTestProperty(0).value()); +} + +// Tests TestResult has multiple properties when added. +TEST_F(UnitTestRecordPropertyTest, MultiplePropertiesFoundWhenAdded) { + UnitTestRecordProperty("key_1", "1"); + UnitTestRecordProperty("key_2", "2"); + + ASSERT_EQ(2, unit_test_.ad_hoc_test_result().test_property_count()); + + EXPECT_STREQ("key_1", + unit_test_.ad_hoc_test_result().GetTestProperty(0).key()); + EXPECT_STREQ("1", unit_test_.ad_hoc_test_result().GetTestProperty(0).value()); + + EXPECT_STREQ("key_2", + unit_test_.ad_hoc_test_result().GetTestProperty(1).key()); + EXPECT_STREQ("2", unit_test_.ad_hoc_test_result().GetTestProperty(1).value()); +} + +// Tests TestResult::RecordProperty() overrides values for duplicate keys. +TEST_F(UnitTestRecordPropertyTest, OverridesValuesForDuplicateKeys) { + UnitTestRecordProperty("key_1", "1"); + UnitTestRecordProperty("key_2", "2"); + UnitTestRecordProperty("key_1", "12"); + UnitTestRecordProperty("key_2", "22"); + + ASSERT_EQ(2, unit_test_.ad_hoc_test_result().test_property_count()); + + EXPECT_STREQ("key_1", + unit_test_.ad_hoc_test_result().GetTestProperty(0).key()); + EXPECT_STREQ("12", + unit_test_.ad_hoc_test_result().GetTestProperty(0).value()); + + EXPECT_STREQ("key_2", + unit_test_.ad_hoc_test_result().GetTestProperty(1).key()); + EXPECT_STREQ("22", + unit_test_.ad_hoc_test_result().GetTestProperty(1).value()); +} + +TEST_F(UnitTestRecordPropertyTest, + AddFailureInsideTestsWhenUsingTestCaseReservedKeys) { + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest( + "name"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest( + "value_param"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest( + "type_param"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest( + "status"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest( + "time"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyForCurrentTest( + "classname"); +} + +TEST_F(UnitTestRecordPropertyTest, + AddRecordWithReservedKeysGeneratesCorrectPropertyList) { + EXPECT_NONFATAL_FAILURE( + Test::RecordProperty("name", "1"), + "'classname', 'name', 'status', 'time', 'type_param', and 'value_param'" + " are reserved"); +} + +class UnitTestRecordPropertyTestEnvironment : public Environment { + public: + virtual void TearDown() { + ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase( + "tests"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase( + "failures"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase( + "disabled"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase( + "errors"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase( + "name"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase( + "timestamp"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase( + "time"); + ExpectNonFatalFailureRecordingPropertyWithReservedKeyOutsideOfTestCase( + "random_seed"); + } +}; + +// This will test property recording outside of any test or test case. +static Environment* record_property_env = + AddGlobalTestEnvironment(new UnitTestRecordPropertyTestEnvironment); + // This group of tests is for predicate assertions (ASSERT_PRED*, etc) // of various arities. They do not attempt to be exhaustive. Rather, // view them as smoke tests that can be easily reviewed and verified. @@ -2535,6 +2497,11 @@ TEST(StringAssertionTest, STREQ_Wide) { // Strings containing wide characters. EXPECT_NONFATAL_FAILURE(EXPECT_STREQ(L"abc\x8119", L"abc\x8120"), "abc"); + + // The streaming variation. + EXPECT_NONFATAL_FAILURE({ // NOLINT + EXPECT_STREQ(L"abc\x8119", L"abc\x8121") << "Expected failure"; + }, "Expected failure"); } // Tests *_STRNE on wide strings. @@ -2561,6 +2528,9 @@ TEST(StringAssertionTest, STRNE_Wide) { // Strings containing wide characters. EXPECT_NONFATAL_FAILURE(EXPECT_STRNE(L"abc\x8119", L"abc\x8119"), "abc"); + + // The streaming variation. + ASSERT_STRNE(L"abc\x8119", L"abc\x8120") << "This shouldn't happen"; } // Tests for ::testing::IsSubstring(). @@ -2691,7 +2661,6 @@ TEST(IsNotSubstringTest, ReturnsCorrectResultForStdWstring) { template <typename RawType> class FloatingPointTest : public Test { protected: - // Pre-calculated numbers to be used by the tests. struct TestValues { RawType close_to_positive_zero; @@ -3474,8 +3443,8 @@ TEST_F(NoFatalFailureTest, MessageIsStreamable) { // Tests EqFailure(), used for implementing *EQ* assertions. TEST(AssertionTest, EqFailure) { - const String foo_val("5"), bar_val("6"); - const String msg1( + const std::string foo_val("5"), bar_val("6"); + const std::string msg1( EqFailure("foo", "bar", foo_val, bar_val, false) .failure_message()); EXPECT_STREQ( @@ -3485,7 +3454,7 @@ TEST(AssertionTest, EqFailure) { "Which is: 5", msg1.c_str()); - const String msg2( + const std::string msg2( EqFailure("foo", "6", foo_val, bar_val, false) .failure_message()); EXPECT_STREQ( @@ -3494,7 +3463,7 @@ TEST(AssertionTest, EqFailure) { "Which is: 5", msg2.c_str()); - const String msg3( + const std::string msg3( EqFailure("5", "bar", foo_val, bar_val, false) .failure_message()); EXPECT_STREQ( @@ -3503,16 +3472,16 @@ TEST(AssertionTest, EqFailure) { "Expected: 5", msg3.c_str()); - const String msg4( + const std::string msg4( EqFailure("5", "6", foo_val, bar_val, false).failure_message()); EXPECT_STREQ( "Value of: 6\n" "Expected: 5", msg4.c_str()); - const String msg5( + const std::string msg5( EqFailure("foo", "bar", - String("\"x\""), String("\"y\""), + std::string("\"x\""), std::string("\"y\""), true).failure_message()); EXPECT_STREQ( "Value of: bar\n" @@ -3524,7 +3493,7 @@ TEST(AssertionTest, EqFailure) { // Tests AppendUserMessage(), used for implementing the *EQ* macros. TEST(AssertionTest, AppendUserMessage) { - const String foo("foo"); + const std::string foo("foo"); Message msg; EXPECT_STREQ("foo", @@ -3934,10 +3903,10 @@ TEST(HRESULTAssertionTest, EXPECT_HRESULT_FAILED) { EXPECT_NONFATAL_FAILURE(EXPECT_HRESULT_FAILED(OkHRESULTSuccess()), "Expected: (OkHRESULTSuccess()) fails.\n" - " Actual: 0x00000000"); + " Actual: 0x0"); EXPECT_NONFATAL_FAILURE(EXPECT_HRESULT_FAILED(FalseHRESULTSuccess()), "Expected: (FalseHRESULTSuccess()) fails.\n" - " Actual: 0x00000001"); + " Actual: 0x1"); } TEST(HRESULTAssertionTest, ASSERT_HRESULT_FAILED) { @@ -3948,12 +3917,12 @@ TEST(HRESULTAssertionTest, ASSERT_HRESULT_FAILED) { // ICE's in C++Builder 2007 and 2009. EXPECT_FATAL_FAILURE(ASSERT_HRESULT_FAILED(OkHRESULTSuccess()), "Expected: (OkHRESULTSuccess()) fails.\n" - " Actual: 0x00000000"); + " Actual: 0x0"); # endif EXPECT_FATAL_FAILURE(ASSERT_HRESULT_FAILED(FalseHRESULTSuccess()), "Expected: (FalseHRESULTSuccess()) fails.\n" - " Actual: 0x00000001"); + " Actual: 0x1"); } // Tests that streaming to the HRESULT macros works. @@ -4105,7 +4074,7 @@ TEST(AssertionSyntaxTest, WorksWithSwitch) { #if GTEST_HAS_EXCEPTIONS void ThrowAString() { - throw "String"; + throw "std::string"; } // Test that the exception assertion macros compile and work with const @@ -4157,8 +4126,109 @@ TEST(SuccessfulAssertionTest, ASSERT_STR) { namespace { +// Tests the message streaming variation of assertions. + +TEST(AssertionWithMessageTest, EXPECT) { + EXPECT_EQ(1, 1) << "This should succeed."; + EXPECT_NONFATAL_FAILURE(EXPECT_NE(1, 1) << "Expected failure #1.", + "Expected failure #1"); + EXPECT_LE(1, 2) << "This should succeed."; + EXPECT_NONFATAL_FAILURE(EXPECT_LT(1, 0) << "Expected failure #2.", + "Expected failure #2."); + EXPECT_GE(1, 0) << "This should succeed."; + EXPECT_NONFATAL_FAILURE(EXPECT_GT(1, 2) << "Expected failure #3.", + "Expected failure #3."); + + EXPECT_STREQ("1", "1") << "This should succeed."; + EXPECT_NONFATAL_FAILURE(EXPECT_STRNE("1", "1") << "Expected failure #4.", + "Expected failure #4."); + EXPECT_STRCASEEQ("a", "A") << "This should succeed."; + EXPECT_NONFATAL_FAILURE(EXPECT_STRCASENE("a", "A") << "Expected failure #5.", + "Expected failure #5."); + + EXPECT_FLOAT_EQ(1, 1) << "This should succeed."; + EXPECT_NONFATAL_FAILURE(EXPECT_DOUBLE_EQ(1, 1.2) << "Expected failure #6.", + "Expected failure #6."); + EXPECT_NEAR(1, 1.1, 0.2) << "This should succeed."; +} + +TEST(AssertionWithMessageTest, ASSERT) { + ASSERT_EQ(1, 1) << "This should succeed."; + ASSERT_NE(1, 2) << "This should succeed."; + ASSERT_LE(1, 2) << "This should succeed."; + ASSERT_LT(1, 2) << "This should succeed."; + ASSERT_GE(1, 0) << "This should succeed."; + EXPECT_FATAL_FAILURE(ASSERT_GT(1, 2) << "Expected failure.", + "Expected failure."); +} + +TEST(AssertionWithMessageTest, ASSERT_STR) { + ASSERT_STREQ("1", "1") << "This should succeed."; + ASSERT_STRNE("1", "2") << "This should succeed."; + ASSERT_STRCASEEQ("a", "A") << "This should succeed."; + EXPECT_FATAL_FAILURE(ASSERT_STRCASENE("a", "A") << "Expected failure.", + "Expected failure."); +} + +TEST(AssertionWithMessageTest, ASSERT_FLOATING) { + ASSERT_FLOAT_EQ(1, 1) << "This should succeed."; + ASSERT_DOUBLE_EQ(1, 1) << "This should succeed."; + EXPECT_FATAL_FAILURE(ASSERT_NEAR(1,1.2, 0.1) << "Expect failure.", // NOLINT + "Expect failure."); + // To work around a bug in gcc 2.95.0, there is intentionally no + // space after the first comma in the previous statement. +} + +// Tests using ASSERT_FALSE with a streamed message. +TEST(AssertionWithMessageTest, ASSERT_FALSE) { + ASSERT_FALSE(false) << "This shouldn't fail."; + EXPECT_FATAL_FAILURE({ // NOLINT + ASSERT_FALSE(true) << "Expected failure: " << 2 << " > " << 1 + << " evaluates to " << true; + }, "Expected failure"); +} + +// Tests using FAIL with a streamed message. +TEST(AssertionWithMessageTest, FAIL) { + EXPECT_FATAL_FAILURE(FAIL() << 0, + "0"); +} + +// Tests using SUCCEED with a streamed message. +TEST(AssertionWithMessageTest, SUCCEED) { + SUCCEED() << "Success == " << 1; +} + +// Tests using ASSERT_TRUE with a streamed message. +TEST(AssertionWithMessageTest, ASSERT_TRUE) { + ASSERT_TRUE(true) << "This should succeed."; + ASSERT_TRUE(true) << true; + EXPECT_FATAL_FAILURE({ // NOLINT + ASSERT_TRUE(false) << static_cast<const char *>(NULL) + << static_cast<char *>(NULL); + }, "(null)(null)"); +} + +#if GTEST_OS_WINDOWS +// Tests using wide strings in assertion messages. +TEST(AssertionWithMessageTest, WideStringMessage) { + EXPECT_NONFATAL_FAILURE({ // NOLINT + EXPECT_TRUE(false) << L"This failure is expected.\x8119"; + }, "This failure is expected."); + EXPECT_FATAL_FAILURE({ // NOLINT + ASSERT_EQ(1, 2) << "This failure is " + << L"expected too.\x8120"; + }, "This failure is expected too."); +} +#endif // GTEST_OS_WINDOWS + // Tests EXPECT_TRUE. TEST(ExpectTest, EXPECT_TRUE) { + EXPECT_TRUE(true) << "Intentional success"; + EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(false) << "Intentional failure #1.", + "Intentional failure #1."); + EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(false) << "Intentional failure #2.", + "Intentional failure #2."); EXPECT_TRUE(2 > 1); // NOLINT EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(2 < 1), "Value of: 2 < 1\n" @@ -4182,9 +4252,14 @@ TEST(ExpectTest, ExpectTrueWithAssertionResult) { "Expected: true"); } -// Tests EXPECT_FALSE. +// Tests EXPECT_FALSE with a streamed message. TEST(ExpectTest, EXPECT_FALSE) { EXPECT_FALSE(2 < 1); // NOLINT + EXPECT_FALSE(false) << "Intentional success"; + EXPECT_NONFATAL_FAILURE(EXPECT_FALSE(true) << "Intentional failure #1.", + "Intentional failure #1."); + EXPECT_NONFATAL_FAILURE(EXPECT_FALSE(true) << "Intentional failure #2.", + "Intentional failure #2."); EXPECT_NONFATAL_FAILURE(EXPECT_FALSE(2 > 1), "Value of: 2 > 1\n" " Actual: true\n" @@ -4458,7 +4533,7 @@ TEST(StreamableTest, BasicIoManip) { void AddFailureHelper(bool* aborted) { *aborted = true; - ADD_FAILURE() << "Failure"; + ADD_FAILURE() << "Intentional failure."; *aborted = false; } @@ -4466,7 +4541,7 @@ void AddFailureHelper(bool* aborted) { TEST(MacroTest, ADD_FAILURE) { bool aborted = true; EXPECT_NONFATAL_FAILURE(AddFailureHelper(&aborted), - "Failure"); + "Intentional failure."); EXPECT_FALSE(aborted); } @@ -4499,7 +4574,6 @@ TEST(MacroTest, SUCCEED) { SUCCEED() << "Explicit success."; } - // Tests for EXPECT_EQ() and ASSERT_EQ(). // // These tests fail *intentionally*, s.t. the failure messages can be @@ -4575,7 +4649,7 @@ TEST(EqAssertionTest, StdString) { // Compares a const char* to an std::string that has different // content EXPECT_NONFATAL_FAILURE(EXPECT_EQ("Test", ::std::string("test")), - "::std::string(\"test\")"); + "\"test\""); // Compares an std::string to a char* that has different content. char* const p1 = const_cast<char*>("foo"); @@ -5420,7 +5494,7 @@ class InitGoogleTestTest : public Test { internal::ParseGoogleTestFlagsOnly(&argc1, const_cast<CharType**>(argv1)); #if GTEST_HAS_STREAM_REDIRECTION - const String captured_stdout = GetCapturedStdout(); + const std::string captured_stdout = GetCapturedStdout(); #endif // Verifies the flag values. @@ -6486,6 +6560,9 @@ TEST(ColoredOutputTest, UsesColorsWhenTermSupportsColors) { SetEnv("TERM", "screen"); // TERM supports colors. EXPECT_TRUE(ShouldUseColor(true)); // Stdout is a TTY. + SetEnv("TERM", "screen-256color"); // TERM supports colors. + EXPECT_TRUE(ShouldUseColor(true)); // Stdout is a TTY. + SetEnv("TERM", "linux"); // TERM supports colors. EXPECT_TRUE(ShouldUseColor(true)); // Stdout is a TTY. @@ -6692,7 +6769,7 @@ TEST(TestEventListenersTest, Append) { // order. class SequenceTestingListener : public EmptyTestEventListener { public: - SequenceTestingListener(std::vector<String>* vector, const char* id) + SequenceTestingListener(std::vector<std::string>* vector, const char* id) : vector_(vector), id_(id) {} protected: @@ -6715,20 +6792,20 @@ class SequenceTestingListener : public EmptyTestEventListener { } private: - String GetEventDescription(const char* method) { + std::string GetEventDescription(const char* method) { Message message; message << id_ << "." << method; return message.GetString(); } - std::vector<String>* vector_; + std::vector<std::string>* vector_; const char* const id_; GTEST_DISALLOW_COPY_AND_ASSIGN_(SequenceTestingListener); }; TEST(EventListenerTest, AppendKeepsOrder) { - std::vector<String> vec; + std::vector<std::string> vec; TestEventListeners listeners; listeners.Append(new SequenceTestingListener(&vec, "1st")); listeners.Append(new SequenceTestingListener(&vec, "2nd")); @@ -7114,7 +7191,7 @@ TEST(GTestReferenceToConstTest, Works) { TestGTestReferenceToConst<const char&, char>(); TestGTestReferenceToConst<const int&, const int>(); TestGTestReferenceToConst<const double&, double>(); - TestGTestReferenceToConst<const String&, const String&>(); + TestGTestReferenceToConst<const std::string&, const std::string&>(); } // Tests that ImplicitlyConvertible<T1, T2>::value is a compile-time constant. @@ -7172,6 +7249,7 @@ TEST(ArrayEqTest, WorksForDegeneratedArrays) { } TEST(ArrayEqTest, WorksForOneDimensionalArrays) { + // Note that a and b are distinct but compatible types. const int a[] = { 0, 1 }; long b[] = { 0, 1 }; EXPECT_TRUE(ArrayEq(a, b)); diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_xml_outfile1_test_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_xml_outfile1_test_.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_xml_outfile1_test_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_xml_outfile1_test_.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_xml_outfile2_test_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_xml_outfile2_test_.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/gtest_xml_outfile2_test_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_xml_outfile2_test_.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_xml_outfiles_test.py b/resources/3rdparty/gtest-1.7.0/test/gtest_xml_outfiles_test.py similarity index 98% rename from resources/3rdparty/gtest-1.6.0/test/gtest_xml_outfiles_test.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_xml_outfiles_test.py index 0fe947f08..524e437e6 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_xml_outfiles_test.py +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_xml_outfiles_test.py @@ -45,7 +45,7 @@ GTEST_OUTPUT_1_TEST = "gtest_xml_outfile1_test_" GTEST_OUTPUT_2_TEST = "gtest_xml_outfile2_test_" EXPECTED_XML_1 = """<?xml version="1.0" encoding="UTF-8"?> -<testsuites tests="1" failures="0" disabled="0" errors="0" time="*" name="AllTests"> +<testsuites tests="1" failures="0" disabled="0" errors="0" time="*" timestamp="*" name="AllTests"> <testsuite name="PropertyOne" tests="1" failures="0" disabled="0" errors="0" time="*"> <testcase name="TestSomeProperties" status="run" time="*" classname="PropertyOne" SetUpProp="1" TestSomeProperty="1" TearDownProp="1" /> </testsuite> @@ -53,7 +53,7 @@ EXPECTED_XML_1 = """<?xml version="1.0" encoding="UTF-8"?> """ EXPECTED_XML_2 = """<?xml version="1.0" encoding="UTF-8"?> -<testsuites tests="1" failures="0" disabled="0" errors="0" time="*" name="AllTests"> +<testsuites tests="1" failures="0" disabled="0" errors="0" time="*" timestamp="*" name="AllTests"> <testsuite name="PropertyTwo" tests="1" failures="0" disabled="0" errors="0" time="*"> <testcase name="TestSomeProperties" status="run" time="*" classname="PropertyTwo" SetUpProp="2" TestSomeProperty="2" TearDownProp="2" /> </testsuite> diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_xml_output_unittest.py b/resources/3rdparty/gtest-1.7.0/test/gtest_xml_output_unittest.py similarity index 63% rename from resources/3rdparty/gtest-1.6.0/test/gtest_xml_output_unittest.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_xml_output_unittest.py index bdd503533..f605d4ee2 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_xml_output_unittest.py +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_xml_output_unittest.py @@ -33,8 +33,10 @@ __author__ = 'eefacm@gmail.com (Sean Mcafee)' +import datetime import errno import os +import re import sys from xml.dom import minidom, Node @@ -42,6 +44,8 @@ import gtest_test_utils import gtest_xml_test_utils +GTEST_FILTER_FLAG = '--gtest_filter' +GTEST_LIST_TESTS_FLAG = '--gtest_list_tests' GTEST_OUTPUT_FLAG = "--gtest_output" GTEST_DEFAULT_OUTPUT_FILE = "test_detail.xml" GTEST_PROGRAM_NAME = "gtest_xml_output_unittest_" @@ -49,18 +53,18 @@ GTEST_PROGRAM_NAME = "gtest_xml_output_unittest_" SUPPORTS_STACK_TRACES = False if SUPPORTS_STACK_TRACES: - STACK_TRACE_TEMPLATE = "\nStack trace:\n*" + STACK_TRACE_TEMPLATE = '\nStack trace:\n*' else: - STACK_TRACE_TEMPLATE = "" + STACK_TRACE_TEMPLATE = '' EXPECTED_NON_EMPTY_XML = """<?xml version="1.0" encoding="UTF-8"?> -<testsuites tests="23" failures="4" disabled="2" errors="0" time="*" name="AllTests"> +<testsuites tests="23" failures="4" disabled="2" errors="0" time="*" timestamp="*" name="AllTests" ad_hoc_property="42"> <testsuite name="SuccessfulTest" tests="1" failures="0" disabled="0" errors="0" time="*"> <testcase name="Succeeds" status="run" time="*" classname="SuccessfulTest"/> </testsuite> <testsuite name="FailedTest" tests="1" failures="1" disabled="0" errors="0" time="*"> <testcase name="Fails" status="run" time="*" classname="FailedTest"> - <failure message="Value of: 2
Expected: 1" type=""><![CDATA[gtest_xml_output_unittest_.cc:* + <failure message="gtest_xml_output_unittest_.cc:*
Value of: 2
Expected: 1" type=""><![CDATA[gtest_xml_output_unittest_.cc:* Value of: 2 Expected: 1%(stack)s]]></failure> </testcase> @@ -68,10 +72,10 @@ Expected: 1%(stack)s]]></failure> <testsuite name="MixedResultTest" tests="3" failures="1" disabled="1" errors="0" time="*"> <testcase name="Succeeds" status="run" time="*" classname="MixedResultTest"/> <testcase name="Fails" status="run" time="*" classname="MixedResultTest"> - <failure message="Value of: 2
Expected: 1" type=""><![CDATA[gtest_xml_output_unittest_.cc:* + <failure message="gtest_xml_output_unittest_.cc:*
Value of: 2
Expected: 1" type=""><![CDATA[gtest_xml_output_unittest_.cc:* Value of: 2 Expected: 1%(stack)s]]></failure> - <failure message="Value of: 3
Expected: 2" type=""><![CDATA[gtest_xml_output_unittest_.cc:* + <failure message="gtest_xml_output_unittest_.cc:*
Value of: 3
Expected: 2" type=""><![CDATA[gtest_xml_output_unittest_.cc:* Value of: 3 Expected: 2%(stack)s]]></failure> </testcase> @@ -79,14 +83,14 @@ Expected: 2%(stack)s]]></failure> </testsuite> <testsuite name="XmlQuotingTest" tests="1" failures="1" disabled="0" errors="0" time="*"> <testcase name="OutputsCData" status="run" time="*" classname="XmlQuotingTest"> - <failure message="Failed
XML output: <?xml encoding="utf-8"><top><![CDATA[cdata text]]></top>" type=""><![CDATA[gtest_xml_output_unittest_.cc:* + <failure message="gtest_xml_output_unittest_.cc:*
Failed
XML output: <?xml encoding="utf-8"><top><![CDATA[cdata text]]></top>" type=""><![CDATA[gtest_xml_output_unittest_.cc:* Failed XML output: <?xml encoding="utf-8"><top><![CDATA[cdata text]]>]]><![CDATA[</top>%(stack)s]]></failure> </testcase> </testsuite> <testsuite name="InvalidCharactersTest" tests="1" failures="1" disabled="0" errors="0" time="*"> <testcase name="InvalidCharactersInMessage" status="run" time="*" classname="InvalidCharactersTest"> - <failure message="Failed
Invalid characters in brackets []" type=""><![CDATA[gtest_xml_output_unittest_.cc:* + <failure message="gtest_xml_output_unittest_.cc:*
Failed
Invalid characters in brackets []" type=""><![CDATA[gtest_xml_output_unittest_.cc:* Failed Invalid characters in brackets []%(stack)s]]></failure> </testcase> @@ -94,7 +98,7 @@ Invalid characters in brackets []%(stack)s]]></failure> <testsuite name="DisabledTest" tests="1" failures="0" disabled="1" errors="0" time="*"> <testcase name="DISABLED_test_not_run" status="notrun" time="*" classname="DisabledTest"/> </testsuite> - <testsuite name="PropertyRecordingTest" tests="4" failures="0" disabled="0" errors="0" time="*"> + <testsuite name="PropertyRecordingTest" tests="4" failures="0" disabled="0" errors="0" time="*" SetUpTestCase="yes" TearDownTestCase="aye"> <testcase name="OneProperty" status="run" time="*" classname="PropertyRecordingTest" key_1="1"/> <testcase name="IntValuedProperty" status="run" time="*" classname="PropertyRecordingTest" key_int="1"/> <testcase name="ThreeProperties" status="run" time="*" classname="PropertyRecordingTest" key_1="1" key_2="2" key_3="3"/> @@ -125,32 +129,74 @@ Invalid characters in brackets []%(stack)s]]></failure> </testsuite> </testsuites>""" % {'stack': STACK_TRACE_TEMPLATE} +EXPECTED_FILTERED_TEST_XML = """<?xml version="1.0" encoding="UTF-8"?> +<testsuites tests="1" failures="0" disabled="0" errors="0" time="*" + timestamp="*" name="AllTests" ad_hoc_property="42"> + <testsuite name="SuccessfulTest" tests="1" failures="0" disabled="0" + errors="0" time="*"> + <testcase name="Succeeds" status="run" time="*" classname="SuccessfulTest"/> + </testsuite> +</testsuites>""" EXPECTED_EMPTY_XML = """<?xml version="1.0" encoding="UTF-8"?> -<testsuites tests="0" failures="0" disabled="0" errors="0" time="*" name="AllTests"> +<testsuites tests="0" failures="0" disabled="0" errors="0" time="*" + timestamp="*" name="AllTests"> </testsuites>""" +GTEST_PROGRAM_PATH = gtest_test_utils.GetTestExecutablePath(GTEST_PROGRAM_NAME) + +SUPPORTS_TYPED_TESTS = 'TypedTest' in gtest_test_utils.Subprocess( + [GTEST_PROGRAM_PATH, GTEST_LIST_TESTS_FLAG], capture_stderr=False).output + class GTestXMLOutputUnitTest(gtest_xml_test_utils.GTestXMLTestCase): """ Unit test for Google Test's XML output functionality. """ - def testNonEmptyXmlOutput(self): - """ - Runs a test program that generates a non-empty XML output, and - tests that the XML output is expected. - """ - self._TestXmlOutput(GTEST_PROGRAM_NAME, EXPECTED_NON_EMPTY_XML, 1) + # This test currently breaks on platforms that do not support typed and + # type-parameterized tests, so we don't run it under them. + if SUPPORTS_TYPED_TESTS: + def testNonEmptyXmlOutput(self): + """ + Runs a test program that generates a non-empty XML output, and + tests that the XML output is expected. + """ + self._TestXmlOutput(GTEST_PROGRAM_NAME, EXPECTED_NON_EMPTY_XML, 1) def testEmptyXmlOutput(self): - """ + """Verifies XML output for a Google Test binary without actual tests. + Runs a test program that generates an empty XML output, and tests that the XML output is expected. """ - self._TestXmlOutput("gtest_no_test_unittest", - EXPECTED_EMPTY_XML, 0) + self._TestXmlOutput('gtest_no_test_unittest', EXPECTED_EMPTY_XML, 0) + + def testTimestampValue(self): + """Checks whether the timestamp attribute in the XML output is valid. + + Runs a test program that generates an empty XML output, and checks if + the timestamp attribute in the testsuites tag is valid. + """ + actual = self._GetXmlOutput('gtest_no_test_unittest', [], 0) + date_time_str = actual.documentElement.getAttributeNode('timestamp').value + # datetime.strptime() is only available in Python 2.5+ so we have to + # parse the expected datetime manually. + match = re.match(r'(\d+)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)', date_time_str) + self.assertTrue( + re.match, + 'XML datettime string %s has incorrect format' % date_time_str) + date_time_from_xml = datetime.datetime( + year=int(match.group(1)), month=int(match.group(2)), + day=int(match.group(3)), hour=int(match.group(4)), + minute=int(match.group(5)), second=int(match.group(6))) + + time_delta = abs(datetime.datetime.now() - date_time_from_xml) + # timestamp value should be near the current local time + self.assertTrue(time_delta < datetime.timedelta(seconds=600), + 'time_delta is %s' % time_delta) + actual.unlink() def testDefaultOutputFile(self): """ @@ -160,7 +206,7 @@ class GTestXMLOutputUnitTest(gtest_xml_test_utils.GTestXMLTestCase): output_file = os.path.join(gtest_test_utils.GetTempDir(), GTEST_DEFAULT_OUTPUT_FILE) gtest_prog_path = gtest_test_utils.GetTestExecutablePath( - "gtest_no_test_unittest") + 'gtest_no_test_unittest') try: os.remove(output_file) except OSError, e: @@ -168,7 +214,7 @@ class GTestXMLOutputUnitTest(gtest_xml_test_utils.GTestXMLTestCase): raise p = gtest_test_utils.Subprocess( - [gtest_prog_path, "%s=xml" % GTEST_OUTPUT_FLAG], + [gtest_prog_path, '%s=xml' % GTEST_OUTPUT_FLAG], working_dir=gtest_test_utils.GetTempDir()) self.assert_(p.exited) self.assertEquals(0, p.exit_code) @@ -181,60 +227,79 @@ class GTestXMLOutputUnitTest(gtest_xml_test_utils.GTestXMLTestCase): """ xml_path = os.path.join(gtest_test_utils.GetTempDir(), - GTEST_PROGRAM_NAME + "out.xml") + GTEST_PROGRAM_NAME + 'out.xml') if os.path.isfile(xml_path): os.remove(xml_path) - gtest_prog_path = gtest_test_utils.GetTestExecutablePath(GTEST_PROGRAM_NAME) - - command = [gtest_prog_path, - "%s=xml:%s" % (GTEST_OUTPUT_FLAG, xml_path), - "--shut_down_xml"] + command = [GTEST_PROGRAM_PATH, + '%s=xml:%s' % (GTEST_OUTPUT_FLAG, xml_path), + '--shut_down_xml'] p = gtest_test_utils.Subprocess(command) if p.terminated_by_signal: - self.assert_(False, - "%s was killed by signal %d" % (gtest_prog_name, p.signal)) + # p.signal is avalable only if p.terminated_by_signal is True. + self.assertFalse( + p.terminated_by_signal, + '%s was killed by signal %d' % (GTEST_PROGRAM_NAME, p.signal)) else: self.assert_(p.exited) self.assertEquals(1, p.exit_code, "'%s' exited with code %s, which doesn't match " - "the expected exit code %s." + 'the expected exit code %s.' % (command, p.exit_code, 1)) self.assert_(not os.path.isfile(xml_path)) + def testFilteredTestXmlOutput(self): + """Verifies XML output when a filter is applied. - def _TestXmlOutput(self, gtest_prog_name, expected_xml, expected_exit_code): + Runs a test program that executes only some tests and verifies that + non-selected tests do not show up in the XML output. """ - Asserts that the XML document generated by running the program - gtest_prog_name matches expected_xml, a string containing another - XML document. Furthermore, the program's exit code must be - expected_exit_code. + + self._TestXmlOutput(GTEST_PROGRAM_NAME, EXPECTED_FILTERED_TEST_XML, 0, + extra_args=['%s=SuccessfulTest.*' % GTEST_FILTER_FLAG]) + + def _GetXmlOutput(self, gtest_prog_name, extra_args, expected_exit_code): + """ + Returns the xml output generated by running the program gtest_prog_name. + Furthermore, the program's exit code must be expected_exit_code. """ xml_path = os.path.join(gtest_test_utils.GetTempDir(), - gtest_prog_name + "out.xml") + gtest_prog_name + 'out.xml') gtest_prog_path = gtest_test_utils.GetTestExecutablePath(gtest_prog_name) - command = [gtest_prog_path, "%s=xml:%s" % (GTEST_OUTPUT_FLAG, xml_path)] + command = ([gtest_prog_path, '%s=xml:%s' % (GTEST_OUTPUT_FLAG, xml_path)] + + extra_args) p = gtest_test_utils.Subprocess(command) if p.terminated_by_signal: self.assert_(False, - "%s was killed by signal %d" % (gtest_prog_name, p.signal)) + '%s was killed by signal %d' % (gtest_prog_name, p.signal)) else: self.assert_(p.exited) self.assertEquals(expected_exit_code, p.exit_code, "'%s' exited with code %s, which doesn't match " - "the expected exit code %s." + 'the expected exit code %s.' % (command, p.exit_code, expected_exit_code)) + actual = minidom.parse(xml_path) + return actual + def _TestXmlOutput(self, gtest_prog_name, expected_xml, + expected_exit_code, extra_args=None): + """ + Asserts that the XML document generated by running the program + gtest_prog_name matches expected_xml, a string containing another + XML document. Furthermore, the program's exit code must be + expected_exit_code. + """ + + actual = self._GetXmlOutput(gtest_prog_name, extra_args or [], + expected_exit_code) expected = minidom.parseString(expected_xml) - actual = minidom.parse(xml_path) self.NormalizeXml(actual.documentElement) self.AssertEquivalentNodes(expected.documentElement, actual.documentElement) expected.unlink() - actual .unlink() - + actual.unlink() if __name__ == '__main__': diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_xml_output_unittest_.cc b/resources/3rdparty/gtest-1.7.0/test/gtest_xml_output_unittest_.cc similarity index 89% rename from resources/3rdparty/gtest-1.6.0/test/gtest_xml_output_unittest_.cc rename to resources/3rdparty/gtest-1.7.0/test/gtest_xml_output_unittest_.cc index 741a88748..48b8771b5 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_xml_output_unittest_.cc +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_xml_output_unittest_.cc @@ -45,7 +45,6 @@ using ::testing::TestEventListeners; using ::testing::TestWithParam; using ::testing::UnitTest; using ::testing::Test; -using ::testing::Types; using ::testing::Values; class SuccessfulTest : public Test { @@ -96,6 +95,9 @@ TEST(InvalidCharactersTest, InvalidCharactersInMessage) { } class PropertyRecordingTest : public Test { + public: + static void SetUpTestCase() { RecordProperty("SetUpTestCase", "yes"); } + static void TearDownTestCase() { RecordProperty("TearDownTestCase", "aye"); } }; TEST_F(PropertyRecordingTest, OneProperty) { @@ -121,12 +123,12 @@ TEST(NoFixtureTest, RecordProperty) { RecordProperty("key", "1"); } -void ExternalUtilityThatCallsRecordProperty(const char* key, int value) { +void ExternalUtilityThatCallsRecordProperty(const std::string& key, int value) { testing::Test::RecordProperty(key, value); } -void ExternalUtilityThatCallsRecordProperty(const char* key, - const char* value) { +void ExternalUtilityThatCallsRecordProperty(const std::string& key, + const std::string& value) { testing::Test::RecordProperty(key, value); } @@ -145,23 +147,27 @@ TEST_P(ValueParamTest, HasValueParamAttribute) {} TEST_P(ValueParamTest, AnotherTestThatHasValueParamAttribute) {} INSTANTIATE_TEST_CASE_P(Single, ValueParamTest, Values(33, 42)); +#if GTEST_HAS_TYPED_TEST // Verifies that the type parameter name is output in the 'type_param' // XML attribute for typed tests. template <typename T> class TypedTest : public Test {}; -typedef Types<int, long> TypedTestTypes; +typedef testing::Types<int, long> TypedTestTypes; TYPED_TEST_CASE(TypedTest, TypedTestTypes); TYPED_TEST(TypedTest, HasTypeParamAttribute) {} +#endif +#if GTEST_HAS_TYPED_TEST_P // Verifies that the type parameter name is output in the 'type_param' // XML attribute for type-parameterized tests. template <typename T> class TypeParameterizedTestCase : public Test {}; TYPED_TEST_CASE_P(TypeParameterizedTestCase); TYPED_TEST_P(TypeParameterizedTestCase, HasTypeParamAttribute) {} REGISTER_TYPED_TEST_CASE_P(TypeParameterizedTestCase, HasTypeParamAttribute); -typedef Types<int, long> TypeParameterizedTestCaseTypes; +typedef testing::Types<int, long> TypeParameterizedTestCaseTypes; INSTANTIATE_TYPED_TEST_CASE_P(Single, TypeParameterizedTestCase, TypeParameterizedTestCaseTypes); +#endif int main(int argc, char** argv) { InitGoogleTest(&argc, argv); @@ -170,5 +176,6 @@ int main(int argc, char** argv) { TestEventListeners& listeners = UnitTest::GetInstance()->listeners(); delete listeners.Release(listeners.default_xml_generator()); } + testing::Test::RecordProperty("ad_hoc_property", "42"); return RUN_ALL_TESTS(); } diff --git a/resources/3rdparty/gtest-1.6.0/test/gtest_xml_test_utils.py b/resources/3rdparty/gtest-1.7.0/test/gtest_xml_test_utils.py similarity index 73% rename from resources/3rdparty/gtest-1.6.0/test/gtest_xml_test_utils.py rename to resources/3rdparty/gtest-1.7.0/test/gtest_xml_test_utils.py index 0f55c1642..3d0c3b2c2 100644 --- a/resources/3rdparty/gtest-1.6.0/test/gtest_xml_test_utils.py +++ b/resources/3rdparty/gtest-1.7.0/test/gtest_xml_test_utils.py @@ -39,8 +39,8 @@ from xml.dom import minidom, Node import gtest_test_utils -GTEST_OUTPUT_FLAG = "--gtest_output" -GTEST_DEFAULT_OUTPUT_FILE = "test_detail.xml" +GTEST_OUTPUT_FLAG = '--gtest_output' +GTEST_DEFAULT_OUTPUT_FILE = 'test_detail.xml' class GTestXMLTestCase(gtest_test_utils.TestCase): """ @@ -80,23 +80,27 @@ class GTestXMLTestCase(gtest_test_utils.TestCase): actual_attributes = actual_node .attributes self.assertEquals( expected_attributes.length, actual_attributes.length, - "attribute numbers differ in element " + actual_node.tagName) + 'attribute numbers differ in element %s:\nExpected: %r\nActual: %r' % ( + actual_node.tagName, expected_attributes.keys(), + actual_attributes.keys())) for i in range(expected_attributes.length): expected_attr = expected_attributes.item(i) actual_attr = actual_attributes.get(expected_attr.name) self.assert_( actual_attr is not None, - "expected attribute %s not found in element %s" % + 'expected attribute %s not found in element %s' % (expected_attr.name, actual_node.tagName)) - self.assertEquals(expected_attr.value, actual_attr.value, - " values of attribute %s in element %s differ" % - (expected_attr.name, actual_node.tagName)) + self.assertEquals( + expected_attr.value, actual_attr.value, + ' values of attribute %s in element %s differ: %s vs %s' % + (expected_attr.name, actual_node.tagName, + expected_attr.value, actual_attr.value)) expected_children = self._GetChildren(expected_node) actual_children = self._GetChildren(actual_node) self.assertEquals( len(expected_children), len(actual_children), - "number of child elements differ in element " + actual_node.tagName) + 'number of child elements differ in element ' + actual_node.tagName) for child_id, child in expected_children.iteritems(): self.assert_(child_id in actual_children, '<%s> is not in <%s> (in element %s)' % @@ -104,10 +108,10 @@ class GTestXMLTestCase(gtest_test_utils.TestCase): self.AssertEquivalentNodes(child, actual_children[child_id]) identifying_attribute = { - "testsuites": "name", - "testsuite": "name", - "testcase": "name", - "failure": "message", + 'testsuites': 'name', + 'testsuite': 'name', + 'testcase': 'name', + 'failure': 'message', } def _GetChildren(self, element): @@ -127,20 +131,20 @@ class GTestXMLTestCase(gtest_test_utils.TestCase): for child in element.childNodes: if child.nodeType == Node.ELEMENT_NODE: self.assert_(child.tagName in self.identifying_attribute, - "Encountered unknown element <%s>" % child.tagName) + 'Encountered unknown element <%s>' % child.tagName) childID = child.getAttribute(self.identifying_attribute[child.tagName]) self.assert_(childID not in children) children[childID] = child elif child.nodeType in [Node.TEXT_NODE, Node.CDATA_SECTION_NODE]: - if "detail" not in children: + if 'detail' not in children: if (child.nodeType == Node.CDATA_SECTION_NODE or not child.nodeValue.isspace()): - children["detail"] = child.ownerDocument.createCDATASection( + children['detail'] = child.ownerDocument.createCDATASection( child.nodeValue) else: - children["detail"].nodeValue += child.nodeValue + children['detail'].nodeValue += child.nodeValue else: - self.fail("Encountered unexpected node type %d" % child.nodeType) + self.fail('Encountered unexpected node type %d' % child.nodeType) return children def NormalizeXml(self, element): @@ -151,29 +155,40 @@ class GTestXMLTestCase(gtest_test_utils.TestCase): * The "time" attribute of <testsuites>, <testsuite> and <testcase> elements is replaced with a single asterisk, if it contains only digit characters. + * The "timestamp" attribute of <testsuites> elements is replaced with a + single asterisk, if it contains a valid ISO8601 datetime value. * The "type_param" attribute of <testcase> elements is replaced with a single asterisk (if it sn non-empty) as it is the type name returned by the compiler and is platform dependent. - * The line number reported in the first line of the "message" - attribute of <failure> elements is replaced with a single asterisk. + * The line info reported in the first line of the "message" + attribute and CDATA section of <failure> elements is replaced with the + file's basename and a single asterisk for the line number. * The directory names in file paths are removed. * The stack traces are removed. """ - if element.tagName in ("testsuites", "testsuite", "testcase"): - time = element.getAttributeNode("time") - time.value = re.sub(r"^\d+(\.\d+)?$", "*", time.value) - type_param = element.getAttributeNode("type_param") + if element.tagName == 'testsuites': + timestamp = element.getAttributeNode('timestamp') + timestamp.value = re.sub(r'^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d$', + '*', timestamp.value) + if element.tagName in ('testsuites', 'testsuite', 'testcase'): + time = element.getAttributeNode('time') + time.value = re.sub(r'^\d+(\.\d+)?$', '*', time.value) + type_param = element.getAttributeNode('type_param') if type_param and type_param.value: - type_param.value = "*" - elif element.tagName == "failure": + type_param.value = '*' + elif element.tagName == 'failure': + source_line_pat = r'^.*[/\\](.*:)\d+\n' + # Replaces the source line information with a normalized form. + message = element.getAttributeNode('message') + message.value = re.sub(source_line_pat, '\\1*\n', message.value) for child in element.childNodes: if child.nodeType == Node.CDATA_SECTION_NODE: - # Removes the source line number. - cdata = re.sub(r"^.*[/\\](.*:)\d+\n", "\\1*\n", child.nodeValue) + # Replaces the source line information with a normalized form. + cdata = re.sub(source_line_pat, '\\1*\n', child.nodeValue) # Removes the actual stack trace. - child.nodeValue = re.sub(r"\nStack trace:\n(.|\n)*", - "", cdata) + child.nodeValue = re.sub(r'\nStack trace:\n(.|\n)*', + '', cdata) for child in element.childNodes: if child.nodeType == Node.ELEMENT_NODE: self.NormalizeXml(child) diff --git a/resources/3rdparty/gtest-1.6.0/test/production.cc b/resources/3rdparty/gtest-1.7.0/test/production.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/production.cc rename to resources/3rdparty/gtest-1.7.0/test/production.cc diff --git a/resources/3rdparty/gtest-1.6.0/test/production.h b/resources/3rdparty/gtest-1.7.0/test/production.h similarity index 100% rename from resources/3rdparty/gtest-1.6.0/test/production.h rename to resources/3rdparty/gtest-1.7.0/test/production.h diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Config/DebugProject.xcconfig b/resources/3rdparty/gtest-1.7.0/xcode/Config/DebugProject.xcconfig similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Config/DebugProject.xcconfig rename to resources/3rdparty/gtest-1.7.0/xcode/Config/DebugProject.xcconfig diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Config/FrameworkTarget.xcconfig b/resources/3rdparty/gtest-1.7.0/xcode/Config/FrameworkTarget.xcconfig similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Config/FrameworkTarget.xcconfig rename to resources/3rdparty/gtest-1.7.0/xcode/Config/FrameworkTarget.xcconfig diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Config/General.xcconfig b/resources/3rdparty/gtest-1.7.0/xcode/Config/General.xcconfig similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Config/General.xcconfig rename to resources/3rdparty/gtest-1.7.0/xcode/Config/General.xcconfig diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Config/ReleaseProject.xcconfig b/resources/3rdparty/gtest-1.7.0/xcode/Config/ReleaseProject.xcconfig similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Config/ReleaseProject.xcconfig rename to resources/3rdparty/gtest-1.7.0/xcode/Config/ReleaseProject.xcconfig diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Config/StaticLibraryTarget.xcconfig b/resources/3rdparty/gtest-1.7.0/xcode/Config/StaticLibraryTarget.xcconfig similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Config/StaticLibraryTarget.xcconfig rename to resources/3rdparty/gtest-1.7.0/xcode/Config/StaticLibraryTarget.xcconfig diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Config/TestTarget.xcconfig b/resources/3rdparty/gtest-1.7.0/xcode/Config/TestTarget.xcconfig similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Config/TestTarget.xcconfig rename to resources/3rdparty/gtest-1.7.0/xcode/Config/TestTarget.xcconfig diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Resources/Info.plist b/resources/3rdparty/gtest-1.7.0/xcode/Resources/Info.plist similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Resources/Info.plist rename to resources/3rdparty/gtest-1.7.0/xcode/Resources/Info.plist diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/Info.plist b/resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/Info.plist similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/Info.plist rename to resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/Info.plist diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj b/resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj rename to resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/runtests.sh b/resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/runtests.sh similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/runtests.sh rename to resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/runtests.sh diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/widget.cc b/resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/widget.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/widget.cc rename to resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/widget.cc diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/widget.h b/resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/widget.h similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/widget.h rename to resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/widget.h diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/widget_test.cc b/resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/widget_test.cc similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Samples/FrameworkSample/widget_test.cc rename to resources/3rdparty/gtest-1.7.0/xcode/Samples/FrameworkSample/widget_test.cc diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Scripts/runtests.sh b/resources/3rdparty/gtest-1.7.0/xcode/Scripts/runtests.sh similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Scripts/runtests.sh rename to resources/3rdparty/gtest-1.7.0/xcode/Scripts/runtests.sh diff --git a/resources/3rdparty/gtest-1.6.0/xcode/Scripts/versiongenerate.py b/resources/3rdparty/gtest-1.7.0/xcode/Scripts/versiongenerate.py similarity index 100% rename from resources/3rdparty/gtest-1.6.0/xcode/Scripts/versiongenerate.py rename to resources/3rdparty/gtest-1.7.0/xcode/Scripts/versiongenerate.py diff --git a/resources/3rdparty/gtest-1.6.0/xcode/gtest.xcodeproj/project.pbxproj b/resources/3rdparty/gtest-1.7.0/xcode/gtest.xcodeproj/project.pbxproj similarity index 95% rename from resources/3rdparty/gtest-1.6.0/xcode/gtest.xcodeproj/project.pbxproj rename to resources/3rdparty/gtest-1.7.0/xcode/gtest.xcodeproj/project.pbxproj index 74a78153c..0452a63d0 100644 --- a/resources/3rdparty/gtest-1.6.0/xcode/gtest.xcodeproj/project.pbxproj +++ b/resources/3rdparty/gtest-1.7.0/xcode/gtest.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 42; + objectVersion = 46; objects = { /* Begin PBXAggregateTarget section */ @@ -54,7 +54,7 @@ 404884A40E2F7BE600CF7658 /* gtest-string.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 404883E60E2F799B00CF7658 /* gtest-string.h */; }; 404884AC0E2F7CD900CF7658 /* CHANGES in Resources */ = {isa = PBXBuildFile; fileRef = 404884A90E2F7CD900CF7658 /* CHANGES */; }; 404884AD0E2F7CD900CF7658 /* CONTRIBUTORS in Resources */ = {isa = PBXBuildFile; fileRef = 404884AA0E2F7CD900CF7658 /* CONTRIBUTORS */; }; - 404884AE0E2F7CD900CF7658 /* COPYING in Resources */ = {isa = PBXBuildFile; fileRef = 404884AB0E2F7CD900CF7658 /* COPYING */; }; + 404884AE0E2F7CD900CF7658 /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 404884AB0E2F7CD900CF7658 /* LICENSE */; }; 40899F3A0FFA70D4000B29AE /* gtest-all.cc in Sources */ = {isa = PBXBuildFile; fileRef = 224A12A10E9EADA700BD17FD /* gtest-all.cc */; }; 40899F500FFA7281000B29AE /* gtest-tuple.h in Copy Headers Internal */ = {isa = PBXBuildFile; fileRef = 40899F4D0FFA7271000B29AE /* gtest-tuple.h */; }; 40899F530FFA72A0000B29AE /* gtest_unittest.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3B238C120E7FE13C00846E11 /* gtest_unittest.cc */; }; @@ -221,7 +221,7 @@ 4048840D0E2F799B00CF7658 /* gtest_main.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gtest_main.cc; sourceTree = "<group>"; }; 404884A90E2F7CD900CF7658 /* CHANGES */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CHANGES; path = ../CHANGES; sourceTree = SOURCE_ROOT; }; 404884AA0E2F7CD900CF7658 /* CONTRIBUTORS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CONTRIBUTORS; path = ../CONTRIBUTORS; sourceTree = SOURCE_ROOT; }; - 404884AB0E2F7CD900CF7658 /* COPYING */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = COPYING; path = ../COPYING; sourceTree = SOURCE_ROOT; }; + 404884AB0E2F7CD900CF7658 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = SOURCE_ROOT; }; 40899F430FFA7184000B29AE /* gtest_unittest-framework */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "gtest_unittest-framework"; sourceTree = BUILT_PRODUCTS_DIR; }; 40899F4D0FFA7271000B29AE /* gtest-tuple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gtest-tuple.h"; sourceTree = "<group>"; }; 40899FB30FFA7567000B29AE /* StaticLibraryTarget.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = StaticLibraryTarget.xcconfig; sourceTree = "<group>"; }; @@ -317,7 +317,7 @@ children = ( 404884A90E2F7CD900CF7658 /* CHANGES */, 404884AA0E2F7CD900CF7658 /* CONTRIBUTORS */, - 404884AB0E2F7CD900CF7658 /* COPYING */, + 404884AB0E2F7CD900CF7658 /* LICENSE */, 404883F60E2F799B00CF7658 /* README */, 404883D90E2F799B00CF7658 /* include */, 4089A02F0FFACF84000B29AE /* samples */, @@ -580,8 +580,12 @@ /* Begin PBXProject section */ 0867D690FE84028FC02AAC07 /* Project object */ = { isa = PBXProject; + attributes = { + LastUpgradeCheck = 0460; + }; buildConfigurationList = 4FADC24608B4156D00ABE55E /* Build configuration list for PBXProject "gtest" */; - compatibilityVersion = "Xcode 2.4"; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( English, @@ -616,7 +620,7 @@ 404884500E2F799B00CF7658 /* README in Resources */, 404884AC0E2F7CD900CF7658 /* CHANGES in Resources */, 404884AD0E2F7CD900CF7658 /* CONTRIBUTORS in Resources */, - 404884AE0E2F7CD900CF7658 /* COPYING in Resources */, + 404884AE0E2F7CD900CF7658 /* LICENSE in Resources */, 40C84978101A36540083642A /* libgtest_main.a in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -789,20 +793,25 @@ 3B238F600E828B5400846E11 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; PRODUCT_NAME = Check; + SDKROOT = macosx; }; name = Debug; }; 3B238F610E828B5400846E11 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; PRODUCT_NAME = Check; + SDKROOT = macosx; ZERO_LINK = NO; }; name = Release; @@ -810,37 +819,49 @@ 40899F450FFA7185000B29AE /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ../; PRODUCT_NAME = "gtest_unittest-framework"; + SDKROOT = macosx; }; name = Debug; }; 40899F460FFA7185000B29AE /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ../; PRODUCT_NAME = "gtest_unittest-framework"; + SDKROOT = macosx; }; name = Release; }; 4089A0150FFACEFD000B29AE /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; PRODUCT_NAME = "sample1_unittest-framework"; + SDKROOT = macosx; }; name = Debug; }; 4089A0160FFACEFD000B29AE /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; PRODUCT_NAME = "sample1_unittest-framework"; + SDKROOT = macosx; }; name = Release; }; 40C44ADF0E3798F4008FCC51 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + MACOSX_DEPLOYMENT_TARGET = 10.7; PRODUCT_NAME = gtest; + SDKROOT = macosx; TARGET_NAME = gtest; }; name = Debug; @@ -848,7 +869,11 @@ 40C44AE00E3798F4008FCC51 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + MACOSX_DEPLOYMENT_TARGET = 10.7; PRODUCT_NAME = gtest; + SDKROOT = macosx; TARGET_NAME = gtest; }; name = Release; @@ -857,13 +882,16 @@ isa = XCBuildConfiguration; baseConfigurationReference = 40899FB30FFA7567000B29AE /* StaticLibraryTarget.xcconfig */; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( ../, ../include/, ); PRODUCT_NAME = gtest; + SDKROOT = macosx; }; name = Debug; }; @@ -871,13 +899,16 @@ isa = XCBuildConfiguration; baseConfigurationReference = 40899FB30FFA7567000B29AE /* StaticLibraryTarget.xcconfig */; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( ../, ../include/, ); PRODUCT_NAME = gtest; + SDKROOT = macosx; }; name = Release; }; @@ -885,11 +916,14 @@ isa = XCBuildConfiguration; baseConfigurationReference = 40899FB30FFA7567000B29AE /* StaticLibraryTarget.xcconfig */; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( ../, ../include/, ); PRODUCT_NAME = gtest_main; + SDKROOT = macosx; }; name = Debug; }; @@ -897,41 +931,52 @@ isa = XCBuildConfiguration; baseConfigurationReference = 40899FB30FFA7567000B29AE /* StaticLibraryTarget.xcconfig */; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( ../, ../include/, ); PRODUCT_NAME = gtest_main; + SDKROOT = macosx; }; name = Release; }; 40C84985101A36850083642A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ../; PRODUCT_NAME = gtest_unittest; + SDKROOT = macosx; }; name = Debug; }; 40C84986101A36850083642A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ../; PRODUCT_NAME = gtest_unittest; + SDKROOT = macosx; }; name = Release; }; 40C84995101A36A60083642A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; PRODUCT_NAME = "sample1_unittest-static"; + SDKROOT = macosx; }; name = Debug; }; 40C84996101A36A60083642A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; PRODUCT_NAME = "sample1_unittest-static"; + SDKROOT = macosx; }; name = Release; }; @@ -939,8 +984,10 @@ isa = XCBuildConfiguration; baseConfigurationReference = 40D4CDF20E30E07400294801 /* FrameworkTarget.xcconfig */; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( ../, ../include/, @@ -949,6 +996,7 @@ INFOPLIST_PREFIX_HEADER = "$(PROJECT_TEMP_DIR)/Version.h"; INFOPLIST_PREPROCESS = YES; PRODUCT_NAME = gtest; + SDKROOT = macosx; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -957,8 +1005,10 @@ isa = XCBuildConfiguration; baseConfigurationReference = 40D4CDF20E30E07400294801 /* FrameworkTarget.xcconfig */; buildSettings = { + COMBINE_HIDPI_IMAGES = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; HEADER_SEARCH_PATHS = ( ../, ../include/, @@ -967,6 +1017,7 @@ INFOPLIST_PREFIX_HEADER = "$(PROJECT_TEMP_DIR)/Version.h"; INFOPLIST_PREPROCESS = YES; PRODUCT_NAME = gtest; + SDKROOT = macosx; VERSIONING_SYSTEM = "apple-generic"; }; name = Release;